【发布时间】:2020-02-27 19:14:22
【问题描述】:
这一直让我发疯 - 在过去的三天里,我到处寻找解决方案......但到目前为止没有任何效果。
周一,我在尝试安装 watir 时遇到此错误:
C:\Users\dan>gem install watir
ERROR: Could not find a valid gem 'watir' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - timed out
(https://api.rubygems.org/specs.4.8.gz)
所以认为这是防火墙/代理错误。为了尝试绕过它,我使用了--http-proxy 选项:
C:\Ruby24-x64\bin>gem install watir --http-proxy http://my.awesome.proxy:port
ERROR: While executing gem ... (Net::HTTPServerException)
407 "Proxy Authentication Required"
然后我尝试使用定义的用户名和密码运行它,但我读过如果我的密码包含特殊字符(确实如此),它将无法工作:
C:\Ruby24-x64\bin>gem install --http-proxy http://myusername:mypassword@my.awesome.proxy:port watir
ERROR: While executing gem ... (Net::HTTPServerException)
407 "Proxy Authentication Required"
然后我尝试使用 set 选项为 HTTP 和 HTTPS 设置代理、用户名和密码,如下所示:
set HTTP_PROXY=my.awesome.proxy:port
set HTTP_PROXY_USER=myusername
set HTTP_PROXY_PASS=mypassword
set HTTPS_PROXY=my.awesome.proxy:port
set HTTPS_PROXY_USER=myusername
set HTTPS_PROXY_PASS=mypassword
...但我仍然收到 407 错误。有什么想法吗?
我在 Windows 10 上,我的 gem 环境详细信息如下:
C:\Ruby24-x64\bin>gem env
RubyGems Environment:
- RUBYGEMS VERSION: 2.7.2
- RUBY VERSION: 2.4.2 (2017-09-14 patchlevel 198) [x64-mingw32]
- INSTALLATION DIRECTORY: C:/Ruby24-x64/lib/ruby/gems/2.4.0
- USER INSTALLATION DIRECTORY: C:/Users/dan/.gem/ruby/2.4.0
- RUBY EXECUTABLE: C:/Ruby24-x64/bin/ruby.exe
- EXECUTABLE DIRECTORY: C:/Ruby24-x64/bin
- SPEC CACHE DIRECTORY: C:/Users/dan/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: C:/ProgramData
- RUBYGEMS PLATFORMS:
- ruby
- x64-mingw32
- GEM PATHS:
- C:/Ruby24-x64/lib/ruby/gems/2.4.0
- C:/Users/dan/.gem/ruby/2.4.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
@Beartech:
C:\Ruby24-x64>ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION'
OpenSSL 1.0.2l 25 May 2017
MINGW64 ~
$ openssl s_client -host rubygems.org -port 443
connect: Connection timed out
connect:errno=116
【问题讨论】:
-
您可以运行
ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION'并在您的问题中发布输出,也可以运行openssl s_client -host rubygems.org -port 443并在您的问题中发布吗? -
另外,如果您在浏览器中访问
https://api.rubygems.org/specs.4.8.gz,它会下载.gz 文件吗?还是它会给你一个证书警告或错误? -
嗨@Beartech,很抱歉延迟回复。我在问题中添加了更多信息。而且,如果我转到
https://api.rubygems.org/specs.4.8.gz,它会下载 .gz 文件 - 尽管我无法使用--local选项安装它,因为它需要连接到给我相同的 407 响应的网络。 -
好吧,我猜“简单”的答案是将您的密码更改为没有安装特殊字符的密码,然后再改回来。
-
您的代理是否使用 NTLM 身份验证?有关 NTLM 身份验证的问题,请参阅此线程:ruby-forum.com/topic/163889
标签: ruby proxy permissions rubygems