由于代理设置,Bundle命令不工作



我有一个rails应用程序,我设置使用代理,这样我就可以更新我学校局域网中的gem。

但是现在我没有使用学校的网络,当我使用时

 bundle install

我得到这个错误

 Unfortunately, a fatal error has occurred. Please see the Bundler
 troubleshooting documentation at http://bit.ly/bundler-issues. Thanks!
 /home/me/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/uri/generic.rb:214:in `initialize': the scheme http does not accept registry part: cavs@students:cavsuon@proxy.uonbi.ac.ke:80 (or bad hostname?) (URI::InvalidURIError)

当我也做

 gem update bundler

 gem update --system

我得到这个错误

 ERROR:  While executing gem ... (URI::InvalidURIError)
the scheme https does not accept registry part: cavs@students:cavsuon@proxy.uonbi.ac.ke:80 (or bad hostname?

我不记得我是如何设置我的应用程序使用代理的,但即使我这样做了,它也从未工作过,所以我认为它从一开始就没有使用代理。

如果我在学校的网络上,我如何取消这个代理配置并重新设置它

 echo $http_proxy
根据建议,我得到
 http://cavs@students:cavsuon@proxy.uonbi.ac.ke:80

如何取消设置$http_proxy

默认情况下,它可能会选择http_proxy环境变量。

试着运行

echo $http_proxy

,看看它会给你什么。您可以使用

设置该值
export http_proxy=http://user:password@host:port

如果这不起作用,还可以查看HTTP_PROXY设置为什么。

您可以使用unset http_proxy暂时取消对变量的设置。如果它是你需要永久更改的东西(即每次打开终端时它都在那里),你需要检查主目录中的各种隐藏文件(即.profile或.bashrc)以找到并删除它。

我有过类似的问题,后来发现这是Ruby本身的问题:

这个问题与Ruby本身的uri组件有关尝试匹配URI

的userinfo部分
所以,在你的情况下,根据这个regexp不接受@字符,你应该修改你的/usr/lib/ruby/1.8/uri/common.rb:
   -ret[:USERINFO] = userinfo = "(?:[#{unreserved};:&=+$,]|#{escaped})*"
   +ret[:USERINFO] = userinfo = "(?:[#{unreserved};:&=+$,@]|#{escaped})*"

在命令行上运行export http_proxy=http://x.x.x.x:8080,然后检查使用echo $http_proxy是否已更改。这在2018年12月18日为我工作

最新更新