Cygwin 版本的 Curl 安装,提取,使用笔记

Cygwin 版本的 Curl 安装,提取,使用笔记

Cygwin 版本的 Curl 使其恢复 HTTPS 请求功能

假如仅把依赖的DLL复制出来,正常HTTP请求是没问题的.也能正确上传中文到PHP服务器不乱码. 
但是无法正确访问HTTPS服务器.提示以下错误:

>curl https://baidu.com
curl: (77) error setting certificate verify locations:
CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none

于是使用排除法一个文件夹一个文件夹的排除,删除.最终确定了一下文件夹结构及其文件是必须的:

├─bin
│ curl.exe
│ cygcom_err-2.dll
│ cygcrypto-1.0.0.dll
│ cygcurl-4.dll
│ cygexpat-1.dll
│ cyggcc_s-seh-1.dll
│ cyggssapi_krb5-2.dll
│ cygiconv-2.dll
│ cygidn-11.dll
│ cygintl-8.dll
│ cygk5crypto-3.dll
│ cygkrb5-3.dll
│ cygkrb5support-0.dll
│ cyglber-2-4-2.dll
│ cygldap-2-4-2.dll
│ cygmetalink-3.dll
│ cygnghttp2-14.dll
│ cygpsl-5.dll
│ cygsasl2-3.dll
│ cygssh2-1.dll
│ cygssl-1.0.0.dll
│ cygunistring-2.dll
│ cygwin1.dll
│ cygz.dll
├─etc
│ └─pki
│ ├─ca-trust
│ │ └─extracted
│ │ └─pem
│ │ tls-ca-bundle.pem
│ └─tls
│ cert.pem(必须是系统属性 attrib +s)
│ certs(必须是系统属性 attrib +s)
└─usr
└─ssl
└─certs
ca-bundle.crt(必须是系统属性 attrib +s)
ca-bundle.trust.crt(必须是系统属性 attrib +s)

Cygwin 版本的 Curl 依赖的 DLL 清单

  1. cygcom_err-2.dll
  2. cygcrypto-1.0.0.dll
  3. cygcurl-4.dll
  4. cygexpat-1.dll
  5. cyggcc_s-seh-1.dll
  6. cyggssapi_krb5-2.dll
  7. cygiconv-2.dll
  8. cygidn-11.dll
  9. cygintl-8.dll
  10. cygk5crypto-3.dll
  11. cygkrb5-3.dll
  12. cygkrb5support-0.dll
  13. cyglber-2-4-2.dll
  14. cygldap-2-4-2.dll
  15. cygmetalink-3.dll
  16. cygnghttp2-14.dll
  17. cygpsl-5.dll
  18. cygsasl2-3.dll
  19. cygssh2-1.dll
  20. cygssl-1.0.0.dll
  21. cygunistring-2.dll
  22. cygwin1.dll
  23. cygz.dll

提取 Cygwin 版本的 Curl 工具

提取方法1(笨办法)

  1. 把 \cygwin64\bin 目录里的 curl.exe 复制到 新文件夹.
  2. 在 新文件夹 运行 curl ,此时会提示缺少 XXX.dll ,然后把缺少的 dll 复制到新文件夹.
  3. 循环 步骤2 直到能正常运行 curl 为止.

提取方法2(推荐方法)

  1. 下载软件 Dependency Walker
  2. 用该软件打开 curl 程序
  3. 再 File - Save As - 保存类型 - .txt
  4. 用 高级文本编辑器 打开保存的文本
  5. 提取所有在 \cygwin64\bin 目录的DLL 路径字符串
  6. 用 Excel软件 把重复的 路径字符串 清除掉.
  7. 再在 高级文本编辑器 里在 所有 路径字符串 前面加上 COPY /Y 字符串 并全部复制
  8. 再在 新文件夹 里空白处 按住 Shift 打开 右键菜单 - 在此处打开命令窗口
  9. 粘帖 - Enter - 搞定所有DLL!

精简 Cygwin

可精简工具包列表(个人笔记)

  1. gawk: GNU awk, a pattern scanning and processing language
  2. groff: GNU roff formatter
  3. libdb5.3: Oracle Berkeley D (runtime)

手动卸载工具包步骤

鉴于使用setup工具无法正常卸载某些工具包(如某些核心工具包),于是只好手动删除相关文件来卸载了. 
此步骤要能脚本化才方便.否则要删除文件多的话,手工比对非常麻烦. 
初期可用 BeyondCompare 软件的文件夹比对功能来删除.

  1. 进入 缓存文件夹(Local Package Directory) 
    如: 缓存文件夹\网址\x86_64\release
  2. 找到需要卸载的工具包 
    如: gawk\gawk-4.1.4-1.tar.xz
  3. 根据.tar.xz包里的文件夹结构,去删除 Cygwin安装文件夹(Root Directory)对应的文件即可.

正常卸载工具包步骤

  1. 参照 安装 Cygwin 工具包 步骤 到达 Select Packages 步骤
  2. 单击待精简工具包New状态 Keep 为 Uninstall 即可卸载.

安装 Cygwin 工具包 步骤

1.本地检索 工具包

理论上 使用 Install From Local Directory 也是可行的,因为记录所有可安装的工具数据库文件 setup.ini已经下载完毕.但是实际使用时却无法正确读取出可安装的列表供检索.只能走在线检索了.

经过摸索,终于发现可以直接本地检索的方法了!

  1. 和 “安装 Cygwin 步骤” 一样
  2. 但是选择 Install From Local Directory
  3. 到达 Select Packages 步骤
  4. 此时选择 View 为 Full
  5. 然后回退到上一步
  6. 再进入 Select Packages 步骤
  7. 此时就发现滚动条明显变长了.说明成功列举出所有可供安装的工具包列表了.

猜测是 setup 的一个Bug? 或者是一个未声明的”优化”,第一遍只显示”已安装的工具包”,第二遍才显示所有可供安装的工具包列表?

2.在线检索 工具包

  1. 打开 setup-x86_64.exe
  2. 和 “安装 Cygwin 步骤” 一样到达 Select Packages 步骤
  3. 检索 想要安装的工具名称 即可.

安装 Cygwin 步骤

    1. 打开官网 安装指南 界面
    2. 下载最新安装包 setup-x86_64.exe
    3. 打开 Cygwin下载镜像列表网站选择最近的国家. 
      如中国的:http://mirrors.ustc.edu.cn/cygwin/http://mirrors.neusoft.edu.cn/cygwin/
    4. 选择 Install From Internet
    5. 在 Cygwin Setup - Choose Download Site 时 添加选择的镜像网址.
    6. 在 Cygwin Setup - Select Packages 时 先不选择任何包
    7. 即可得到一个干净的单纯的 Cygwin 环境了.

Cygwin 版本的 Curl 安装,提取,使用笔记的更多相关文章

  1. cURL安装和使用笔记

    0.前言     cURL是一个利用URL语法在命令行下工作的文件传输工具.它支持文件上传和下载,所以是综合传输工具,但习惯称cURL为下载工具.cURL还包含了用于程序开发的libcurl.cURL ...

  2. Dubbo入门到精通学习笔记(三):持续集成管理平台之SVN版本管理系统的安装和使用

    文章目录 持续集成管理平台介绍 持续集成介绍 持续集成管理平台的组成 持续集成实践介绍 即将学习 SVN版本管理系统的安装 安装 Subversion + Apache 安装 jsvnadmin 简单 ...

  3. 浅析py-faster-rcnn中不同版本caffe的安装及其对应不同版本cudnn的解决方案

    浅析py-faster-rcnn中不同版本caffe的安装及其对应不同版本cudnn的解决方案 本文是截止目前为止最强攻略,按照本文方法基本可以无压力应对caffe和Ross B. Girshick的 ...

  4. debain 8安装为知笔记(how to install wiznote in debain 8)

    刚装了debain8后想安装为知笔记,百度之后发现为知笔记原来是开源软件.代码托管在github上:https://github.com/WizTeam/WizQTClient 但是上面只有Ubunt ...

  5. windows环境下curl 安装和使用

    原文:https://blog.csdn.net/qq_21126979/article/details/78690960?locationNum=10&fps=1 一.curl 安装 cur ...

  6. redis 安装配置学习笔记

    redis 安装配置学习笔记 //wget http://download.redis.io/releases/redis-2.8.17.tar.gz 下载最新版本 wget http://downl ...

  7. Centos7 安装 Python 的笔记

    Centos7 安装 Python 的笔记 注意:系统自带的Python2.7不要改动,最好也不要出错,不然yum之类的工具可能会出错. 安装Python3.7.0 TensorFlow对Python ...

  8. Ubuntu 及衍生版本用户如何安装 SmartGit/HG

    http://www.linuxidc.com/Linux/2014-06/102621.htm Ubuntu 及衍生版本用户如何安装 SmartGit/HG 6.0.0 [日期:2014-06-03 ...

  9. TortoiseGit和msysGit安装及使用笔记(windows下使用上传数据到GitHub)[转]

    TortoiseGit和msysGit安装及使用笔记(windows下使用上传数据到GitHub) Git-1.7.11-preview+GitExtensions244SetupComplete+T ...

随机推荐

  1. yii2实现WebService 使用 SoapDiscovery

    结合SoapDiscovery实现简单的WebService服务 1 修改php.ini文件 php_soap.dll extension=php_soap.dll 2 WebService 实现主要 ...

  2. 计蒜客 28319.Interesting Integers-类似斐波那契数列-递推思维题 (Benelux Algorithm Programming Contest 2014 Final ACM-ICPC Asia Training League 暑假第一阶段第二场 I)

    I. Interesting Integers 传送门 应该是叫思维题吧,反正敲一下脑壳才知道自己哪里写错了.要敢于暴力. 这个题的题意就是给你一个数,让你逆推出递推的最开始的两个数(假设一开始的两个 ...

  3. (7)java基础知识-原码、反码、补码、运算符

    一.原码.反码.补码 原码 一个数转化成二进制. 用最高位来表示正负,最高位为0表示正数,最高位为1表示负数. 例如: short i=5: 因为在java里short占2个字节转化成二进制就是 00 ...

  4. Codeforces Round #262 (Div. 2) A. Vasya and Socks【暴力/模拟/袜子在可以在合法情况下增加后用几天】

    A. Vasya and Socks time limit per test 1 second memory limit per test 256 megabytes input standard i ...

  5. Python的Web编程[0] -> Web客户端[0] -> 统一资源定位符 URL

    统一资源定位符 / URL 目录 URL 构成 URL 解析 URL 处理 1 URL构成 统一资源定位符(Uniform Resource Locator) 是对可以从互联网上得到的资源的位置和访问 ...

  6. Uva 11077 Find the Permutation

    可以发现最优的方案就是一个循环节内互换. 所以一个有n个元素,c个循环节的置换的交换次数(最少)是n-c. 然后就可以递推了,把i插入到前i-1个元素构成的置换中,要么新成立一个循环,要么加入到之前的 ...

  7. Winform打砖块游戏制作step by step第三节---移动挡板

    一 引子 为了让更多的编程初学者,轻松愉快地掌握面向对象的思考方法,对象继承和多态的妙用,故推出此系列随笔,还望大家多多支持. 预备知识,无GDI画图基础的童鞋请先阅读一篇文章让你彻底弄懂WinFor ...

  8. 本地缓存localstorage使用

    最近做项目遇到一个问题,即从“个人中心”点击进入“修改支付宝”,需要自动获取用户手机号怎么做? 修改支付宝的api不提供用户手机号数据,但是发现个人中心提供,于是想通过localstorage在个人中 ...

  9. Linux下自动监测并重启Apache服务脚本

    为了达到一个高可用的基于Apache的网站环境,在Apache由于种种原因自动停止运行之后,想立即恢复网站访问,这就需要有个工具实时监测Apache的运行状态并能够自动重启httpd服务,写了一个简单 ...

  10. Linux 常见安全检查方法

    Linux 常见安全检查方法进行概要说明: 一.检查系统密码文件,查看文件修改日期 # ls -l /etc/passwd 二.查看 passwd 文件中有哪些特权用户 # awk -F: '$3= ...