Cygwin 版本的 Curl 安裝,提取,使用筆記


 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 環境了.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM