我有一个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本身的问题:
所以,在你的情况下,根据这个regexp不接受@字符,你应该修改你的/usr/lib/ruby/1.8/uri/common.rb:这个问题与Ruby本身的uri组件有关尝试匹配URI
的userinfo部分
-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日为我工作