gpt4 book ai didi

ruby - 无法在 Mac OS 上安装任何 ruby​​ gem - SSL_connect 错误

转载 作者:数据小太阳 更新时间:2023-10-29 07:25:30 31 4
gpt4 key购买 nike

我的环境是Mac OS 10.10.5,ruby版本2.2.4(或2.2.2或2.2.0)gem(升级后)是2.6.7,rvm版本1.27.0。

即使在最近几天,它也有几个重复项,但这些信息比我在评论中所能提供的要多。

在任何版本的 ruby​​ 上安装任何 gem 时,我得到以下信息:

$ gem install bundler
ERROR: Could not find a valid gem 'bundler' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://api.rubygems.org/specs.4.8.gz)

有很多关于此的可用信息,尤其是针对 Windows 上的问题。参见 http://guides.rubygems.org/ssl-certificate-update/对于建议的解决方案。我遵循这个,但我继续得到同样的错误。

问题似乎在于将文件 GlobalSignRootCA.pem 放在适当的位置,这并不完全清楚。上面的链接解释了如何找到合适的 ssl_certs 目录,我的系统中有 2 个目录,但都不起作用。

我忘了我是从哪里学来的:

$ ruby -ropenssl -e 'puts OpenSSL::X509::DEFAULT_CERT_DIR'
/etc/openssl/certs
$ ruby -ropenssl -e 'puts OpenSSL::X509::DEFAULT_CERT_FILE'
/etc/openssl/cert.pem

这可能给出了提示,但将 .pem 文件附加到后者或复制到前者没有任何效果。

当我重新安装 openssl(自制软件)时,它会告诉我:

A CA file has been bootstrapped using certificates from the system
keychain. To add additional certificates, place .pem files in
/usr/local/etc/openssl/certs

and run
/usr/local/opt/openssl/bin/c_rehash

但这也没有解决问题。

来自另一个SO问题:

rvm osx-ssl-certs update all

没用。也没有:

security find-certificate -a -p /Library/Keychains/System.keychain > "$cert_file"
security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain >> "$cert_file"

有谁知道如何了解 ruby​​gems 在这里的期望?它在哪里需要这个文件,或者这甚至是它想要的文件?我应该将 .pem 文件导入 OSX 钥匙串(keychain)吗?如何做到这一点?

或者有没有办法获取gem文件并在本地安装? rubygems 这样做对 ruby​​gems 本身很有帮助,但据我所知对单个 gems 没有帮助。

-- 解决方法

好的 - 在哪里获取 gem 的问题的答案:转到 https://rubygems.org/gems/[package name] 并选择一个版本并去下载 - 当前在右侧的链接下。下载文件和 gem install --local [下载的 gem 文件]。加上所有依赖项。

自动化:

# start by adding insecure source for --explain - thanks to @tnum
gem source -a http://rubygems.org/
while read x
do
wget https://rubygems.org/downloads/$x.gem
gem install --local $x.gem
rm $x.gem
done < <(gem install --explain [package name] | grep "^ ")
# remove insecure source
gem source -r http://rubygems.org/

一些缺乏安全性的问题可以通过更好的 grep 正则表达式来缓解,但它仍然不安全。请注意,wget https:// 有效,因此 ssl 问题肯定出在 ruby​​gems 上。

最佳答案

根据 https://rvm.io/support/fixing-broken-ssl-certificates ,运行上面的命令将解决你的问题:

rvm osx-ssl-certs update all

关于ruby - 无法在 Mac OS 上安装任何 ruby​​ gem - SSL_connect 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40029184/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com