天天看點

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

 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 清單

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

轉載于:https://www.cnblogs.com/AsionTang/p/6008449.html

繼續閱讀