Cygwin 版本的 Curl 使其恢復 HTTPS 請求功能
Cygwin 版本的 Curl 依賴的 DLL 清單
提取 Cygwin 版本的 Curl 工具
提取方法1(笨辦法)
提取方法2(推薦方法)
精簡 Cygwin
可精簡工具包列表(個人筆記)
手動卸載工具包步驟
正常卸載工具包步驟
安裝 Cygwin 工具包 步驟
1.本地檢索 工具包
2.在線檢索 工具包
安裝 Cygwin 步驟
Cygwin 版本的 Curl 依賴的 DLL 清單
提取 Cygwin 版本的 Curl 工具
提取方法1(笨辦法)
提取方法2(推薦方法)
精簡 Cygwin
可精簡工具包列表(個人筆記)
手動卸載工具包步驟
正常卸載工具包步驟
安裝 Cygwin 工具包 步驟
1.本地檢索 工具包
2.在線檢索 工具包
安裝 Cygwin 步驟
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 清單
- 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
提取 Cygwin 版本的 Curl 工具
提取方法1(笨辦法)
- 把
\cygwin64\bin
目錄里的 curl.exe 復制到 新文件夾. - 在 新文件夾 運行 curl ,此時會提示缺少 XXX.dll ,然后把缺少的 dll 復制到新文件夾.
- 循環 步驟2 直到能正常運行 curl 為止.
提取方法2(推薦方法)
- 下載軟件
Dependency Walker
- 用該軟件打開 curl 程序
- 再 File - Save As - 保存類型 - .txt
- 用
高級文本編輯器
打開保存的文本 - 提取所有在
\cygwin64\bin
目錄的DLL路徑字符串
- 用
Excel軟件
把重復的路徑字符串
清除掉. - 再在
高級文本編輯器
里在 所有路徑字符串
前面加上COPY /Y
字符串 並全部復制 - 再在
新文件夾
里空白處 按住 Shift 打開 右鍵菜單 - 在此處打開命令窗口 - 粘帖 - Enter - 搞定所有DLL!
精簡 Cygwin
可精簡工具包列表(個人筆記)
- gawk: GNU awk, a pattern scanning and processing language
- groff: GNU roff formatter
- libdb5.3: Oracle Berkeley D (runtime)
手動卸載工具包步驟
鑒於使用setup工具無法正常卸載某些工具包(如某些核心工具包),於是只好手動刪除相關文件來卸載了.
此步驟要能腳本化才方便.否則要刪除文件多的話,手工比對非常麻煩.
初期可用 BeyondCompare 軟件的文件夾比對功能來刪除.
- 進入 緩存文件夾(Local Package Directory)
如: 緩存文件夾\網址\x86_64\release - 找到需要卸載的工具包
如: gawk\gawk-4.1.4-1.tar.xz - 根據.tar.xz包里的文件夾結構,去刪除 Cygwin安裝文件夾(Root Directory)對應的文件即可.
正常卸載工具包步驟
- 參照 安裝 Cygwin 工具包 步驟 到達 Select Packages 步驟
- 單擊待精簡工具包New狀態 Keep 為 Uninstall 即可卸載.
安裝 Cygwin 工具包 步驟
1.本地檢索 工具包
理論上 使用 Install From Local Directory 也是可行的,因為記錄所有可安裝的工具數據庫文件 setup.ini已經下載完畢.但是實際使用時卻無法正確讀取出可安裝的列表供檢索.只能走在線檢索了.
經過摸索,終於發現可以直接本地檢索的方法了!
- 和 “安裝 Cygwin 步驟” 一樣
- 但是選擇 Install From Local Directory
- 到達 Select Packages 步驟
- 此時選擇 View 為 Full
- 然后回退到上一步
- 再進入 Select Packages 步驟
- 此時就發現滾動條明顯變長了.說明成功列舉出所有可供安裝的工具包列表了.
猜測是 setup 的一個Bug? 或者是一個未聲明的”優化”,第一遍只顯示”已安裝的工具包”,第二遍才顯示所有可供安裝的工具包列表?
2.在線檢索 工具包
- 打開 setup-x86_64.exe
- 和 “安裝 Cygwin 步驟” 一樣到達 Select Packages 步驟
- 檢索 想要安裝的工具名稱 即可.
安裝 Cygwin 步驟
- 打開官網 安裝指南 界面
- 下載最新安裝包 setup-x86_64.exe
- 打開 Cygwin下載鏡像列表網站 選擇最近的國家.
如中國的:http://mirrors.ustc.edu.cn/cygwin/
,http://mirrors.neusoft.edu.cn/cygwin/
- 選擇 Install From Internet
- 在 Cygwin Setup - Choose Download Site 時 添加選擇的鏡像網址.
- 在 Cygwin Setup - Select Packages 時 先不選擇任何包
- 即可得到一個干凈的單純的 Cygwin 環境了.