Cygwin 版本的 Curl 安裝,提取,使用筆記
Cygwin 版本的 Curl 使其恢複 HTTPS 請求功能
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(笨辦法)
- 把
目錄裡的 curl.exe 複制到 新檔案夾.\cygwin64\bin
- 在 新檔案夾 運作 curl ,此時會提示缺少 XXX.dll ,然後把缺少的 dll 複制到新檔案夾.
- 循環 步驟2 直到能正常運作 curl 為止.
提取方法2(推薦方法)
- 下載下傳軟體
Dependency Walker
- 用該軟體打開 curl 程式
- 再 File - Save As - 儲存類型 - .txt
- 用
打開儲存的文本進階文本編輯器
- 提取所有在
目錄的DLL\cygwin64\bin
路徑字元串
- 用
把重複的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 環境了.
轉載于:https://www.cnblogs.com/AsionTang/p/6008449.html