每当我尝试运行
brew install <app>
,例如 brew install git
,我都会收到以下错误:
$ brew install git
Updating Homebrew...
Warning: You are using macOS 10.10.
We (and Apple) do not provide support for this old version.
You will encounter build failures with some formulae.
Please create pull requests instead of asking for help on Homebrew's GitHub,
Discourse, Twitter or IRC. You are responsible for resolving any issues you
experience while you are running this old version.
==> Downloading https://ftp.gnu.org/gnu/gettext/gettext-0.21.tar.xz
Already downloaded: /Users/admin/Library/Caches/Homebrew/downloads/fbd8967fd8256b2e1856b74e8ff0f3d8371cb652c5768e47649613a69d4dc841--gettext-0.21.tar.xz
==> Downloading https://ftp.pcre.org/pub/pcre/pcre2-10.35.tar.bz2
Already downloaded: /Users/admin/Library/Caches/Homebrew/downloads/48997c77a7dae2fb85d52234e92e9032019609e091e23d72529d1e552978a260--pcre2-10.35.tar.bz2
==> Downloading https://mirrors.edge.kernel.org/pub/software/scm/git/git-htmldoc
curl: (60) SSL certificate problem: Invalid certificate chain
More details here: http://curl.haxx.se/docs/sslcerts.html
curl performs SSL certificate verification by default, using a "bundle"
of Certificate Authority (CA) public keys (CA certs). If the default
bundle file isn't adequate, you can specify an alternate file
using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
the bundle, the certificate verification probably failed due to a
problem with the certificate (it might be expired, or the name might
not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
the -k (or --insecure) option.
Error: Failed to download resource "git--html"
Download failed: https://mirrors.edge.kernel.org/pub/software/scm/git/git-htmldocs-2.28.0.tar.xz
Warning: You are using macOS 10.10.
We (and Apple) do not provide support for this old version.
You will encounter build failures with some formulae.
Please create pull requests instead of asking for help on Homebrew's GitHub,
Discourse, Twitter or IRC. You are responsible for resolving any issues you
experience while you are running this old version.
==> Downloading https://ftp.gnu.org/gnu/gettext/gettext-0.21.tar.xz
Already downloaded: /Users/admin/Library/Caches/Homebrew/downloads/fbd8967fd8256b2e1856b74e8ff0f3d8371cb652c5768e47649613a69d4dc841--gettext-0.21.tar.xz
==> Downloading https://ftp.pcre.org/pub/pcre/pcre2-10.35.tar.bz2
Already downloaded: /Users/admin/Library/Caches/Homebrew/downloads/48997c77a7dae2fb85d52234e92e9032019609e091e23d72529d1e552978a260--pcre2-10.35.tar.bz2
==> Downloading https://mirrors.edge.kernel.org/pub/software/scm/git/git-htmldoc
curl: (60) SSL certificate problem: Invalid certificate chain
More details here: http://curl.haxx.se/docs/sslcerts.html
curl performs SSL certificate verification by default, using a "bundle"
of Certificate Authority (CA) public keys (CA certs). If the default
bundle file isn't adequate, you can specify an alternate file
using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
the bundle, the certificate verification probably failed due to a
problem with the certificate (it might be expired, or the name might
not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
the -k (or --insecure) option.
Error: Failed to download resource "git--html"
Download failed: https://mirrors.edge.kernel.org/pub/software/scm/git/git-htmldocs-2.28.0.tar.xz
我已经尝试了这篇文章的答案,但没有运气。我也不想使用curl的-k或--insecure
我正在使用
更新:我尝试卸载并重新安装自制程序,在重新安装时我再次收到此消息:
curl: (60) SSL certificate problem: Invalid certificate chain
More details here: http://curl.haxx.se/docs/sslcerts.html
curl performs SSL certificate verification by default, using a "bundle"
of Certificate Authority (CA) public keys (CA certs). If the default
bundle file isn't adequate, you can specify an alternate file
using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
the bundle, the certificate verification probably failed due to a
problem with the certificate (it might be expired, or the name might
not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
the -k (or --insecure) option.
Error: Failed to download resource "git--html"
Download failed: https://mirrors.edge.kernel.org/pub/software/scm/git/git-htmldocs-2.28.0.tar.xz
更新2: 当我运行brew doctor时,我得到了一个不合理的冗长的意外头文件列表。这些与我的问题有关吗?如果是这样,删除所有内容的最佳方法是什么?
更新3:我最终求助于使用curl的-k。唯一的麻烦是,当我这样做时,终端给了我数百行,其中似乎是随机字符作为回报。有人知道这是什么吗?不知道在这里做什么
更新 4: 不确定这是否相关,但是当我尝试安装 ruby 2.3 时,出现此错误:
Error running '__rvm_make -j4',
please read /Users/admin/.rvm/log/1596996566_ruby-2.3.8/make.log
curl (60)
问题的解决方法。运行以下命令:
MacBook:~ leetbacoon$ nano ~/.curlrc
-k
(我没有
.curlrc
文件,所以整个文件当然只是
-k
带有换行符)
brew install
/
upgrade
,它应该从
mirrors.edge.kernel.org
或任何其他有 SSL 证书问题的网站下载
curl
,默认情况下,从
~/.curlrc
读取作为配置文件。
-k
指示
curl
忽略SSL证书问题,这正是我们在本例中想要的。我建议之后从您的配置文件中删除
-k
。我的设置使用El Capitan 10.11.6 / Homebrew 2.5.2 / ruby 2.0.0p648,但没有
rvm
。巧合的是,我也在尝试安装
git
并遇到了这个问题。
https://mirrors.edge.kernel.org域上的CA证书。您可以尝试导入此网络服务器提供的 CA(取决于您是否真的信任该 CA)。
要导入证书,您可以下载证书,然后双击证书。 MacOS 默认会通过 Keychain 打开它并询问您是否要导入它。您可以参考官方文档。
wget http://crt.sectigo.com/SectigoRSADomainValidationSecureServerCA.crt
您可以查看服务器颁发的证书来获取上述链接。例如:
$ echo | openssl s_client -connect mirrors.edge.kernel.org:443 2>/dev/null \
| openssl x509 -noout -text | grep "CA Issuers"
CA Issuers - URI:http://crt.sectigo.com/SectigoRSADomainValidationSecureServerCA.crt
PS:我无法让我的 -ext
标志在 libressl 上工作,因此很 hacky
grep
。注意网址。这是您需要信任的证书的位置,以便信任brew 安装。此 URL 可能出现在证书的
权威信息访问部分。
brew update
,然后重试了
brew install git
。成功了。