章節連結
近期在安裝卡巴斯基 ( Kaspersky ) 的 MAC 版後,要使用終端機 Terminal 來進行 curl 連線下載遠端資料時,就屢屢被阻擋連線。這篇筆記一下解決方法和如何在 MAC 版本安裝兩個以上的 curl。
引發原因
卡巴斯基的 Web Anti-Virus ,會阻擋 curl 連線中的未安全加密連線、憑證無效的連線…等,所以最簡單的解決方法就是要使用 curl 前暫時關掉它。另外在使用 nvm ls-remote –lts 查看 node.js 版本一樣會出現問題,推測其背後也是使用 curl 的緣故
Mac 上的 curl
系統內建版本
若你想同時使用 Web Anti-Virus 和 curl,得先了解到 Mac 作業系統有一個內建的 curl 版本於 /usr/bin/cur 中。這個版本是預設值,也不建議修改它。要查看目前使用的 curl 版本,可以使用 which curl 來看路徑位置。
- 這個內建版本多半會較舊一些 (使用 TLS 1.0 ),所以會無法通過 Web Anti-Virus
Homebrew 版本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
// homebrew 安裝流程 brew uninstall curl brew install curl-openssl echo 'export PATH="/usr/local/opt/curl-openssl/bin:$PATH"' >> ~/.zshrc /* 上面所提及的 /.zshrc,是 zsh 的設定檔位置,若你是使用 bash * 那要將設定檔寫在 .bash_profile 或是 .bashrc 內 * 你可以使用 vim 指令來進行編輯 */ // 印出 $PATH 來看是否新增好路徑 echo $PATH // 最後,要用 source 指令來更新環境變數。若是 .bash_profile 者,請自行更換檔名 source ~/.zshrc // 重新開啟 Terminal 後,請輸入 which curl 來檢查是否修改成功 // 預設值為 /usr/bin/curl |
curl 的下載指令,以 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash 為例子,要改成 curl -k -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash ,來避過 SSL 的憑證檢查。
相關連結
1. nvm:安裝、切換不同 Node.js 版本的管理器
2. Install the openSSL version of cURL on Mac
3. How to solve [curl: (60) SSL certificate problem: self signed certificate in certificate chain]
4. MacOS 安装curl和wget