强制捆绑安装使用https://而不是git://用于基于GitHub的gem
我正在试图build立一个rails项目,因为我正在工作的主机没有访问互联网的git://协议(端口9418)我得到的错误
Fetching git://github.com/pivotal/jasmine.git fatal: unable to connect to github.com: github.com[0: 192.30.252.130]: errno=Connection refused
运行bundle install
。
GemFile中的相关行没有指定git://作为协议,它只是指向GitHub作为gem的源代码
gem 'jasmine', :github => 'pivotal/jasmine-gem'
我需要做什么才能使捆绑使用https://而不是git:/ /从GitHub拉gem?
编辑:
除了编辑GemFile中的每一个受影响的行之外,还有其他的方法吗? 如果项目的GemFile更新,我宁愿避免任何合并问题。
Git使用url..insteadOfconfiguration选项提供URL重写function。
因此,要使所有连接到github.com使用https://而不是git://
git config --global url."https://github.com".insteadOf git://github.com
--global
开关为当前用户设置所有git操作的configuration选项,所以有时可能会造成太大的干扰。 但是它避免了改变当前项目中的gitconfiguration。
你可以做:
gem 'jasmine', git: 'https://github.com/pivotal/jasmine-gem.git'
使用bundle config github.https true
如果你只想为一个Gemfile中的所有gem,你可以在文件顶部添加这些行:
git_source(:github) do |repo_name| repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/") "https://github.com/#{repo_name}.git" end
或者你可以使用bundle config github.https true
。 但这只影响你当前的环境。
Bundler 2.0不再需要这个了。
如果您正在部署到heroku,则可以将BUNDLE_GITHUB__HTTPS
(注意双下划线)添加为环境variables,并将其设置为true
(在configurationvariables部分的Settings
选项卡下的heroku应用程序仪表板中)。 这将会把协议从git://
切换到https://
。
你应该能够把一个完整的Git URL放在你的Gemfile中。 例如:
gem 'jasmine', :git => 'https://github.com/pivotal/jasmine-gem.git'