我有一台 Gandi Debian 9 服务器,用于网页托管。
我正在尝试在系统上安装 Ruby gem,但看起来我要么被阻止安装 gem,要么我需要设置我的系统来安装 gem。
这是我为调试系统所做的工作
- 对 www.google.com 执行 ping 操作(成功)
- Ping api.rubygems.org(网络不可达)
- gem install selected-package(网络无法访问 - “api.rubygems.org”端口 443 的连接(2))
- 获得https://rubygems.org/downloads/selected-package.gem(连接到 rubygems.org (rubygems.org)|151.101.66.2|:443...失败:网络无法访问。)
- 我在这里列出了一个解决方法https://gist.github.com/luislavena/f064211759ee0f806c88,但我无法使用它,因为我想要使用的 gem 有很多依赖项。
- 我浏览了这个问题https://gist.github.com/luislavena/f064211759ee0f806c88(但这似乎不适用于我)
- 我查看了我的 hosts 文件,看看这个链接中是否有任何条目http://help.rubygems.org/discussions/problems/504-cannot-connect-to-rubygems在那里。我的 hosts 文件中没有违规条目。
gem install 错误消息
Could not find a valid gem 'selected-package' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - Errno::ENETUNREACH: Failed to open TCP connection to api.rubygems.org:443 (Network is unreachable - connect(2) for "api.rubygems.org" port 443) (https://api.rubygems.org/specs.4.8.gz)
netstat -nr 命令的结果
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
实际问题 经过一些调试,问题似乎与我的 VPS 上 443 端口上的安全连接有关。从机器生成的所有 443 连接都失败了。正在寻找解决此问题的方法。
问题
1. 如何在我的 Gandi 服务器上启用 Ruby gem 安装(例如更改主机配置)?
答案1
在我的服务器上安装 gem 时出现的问题与 gem 安装程序不支持 IPv6 有关。我的服务器没有连接 IPv4 接口。但是,连接 IPv4 接口解决了这个问题。
这两个 Ruby gem 线程解决了这个问题。
http://help.rubygems.org/discussions/suggestions/8062-ipv6-support-for-rubygems
http://help.rubygems.org/discussions/suggestions/44-ipv6