Комплект Force bundle для использования https://вместо git://для драгоценных камней GitHub
Я пытаюсь создать проект рельсов и потому что хост, над которым я работаю, не имеет доступа к Интернету для протокола 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 'jasmine', :github => 'pivotal/jasmine-gem'
Что мне нужно сделать, чтобы заставить bundler использовать https://вместо git://для вытаскивания драгоценных камней из GitHub?
Edit:
Есть ли способ, кроме редактирования каждой затронутой строки в GemFile? Я бы предпочел избежать проблем с слиянием, если проект GemFile обновлен.
Ответы
Ответ 1
Git предоставляет функцию перезаписи URL-адресов с помощью параметра конфигурации url..insteadOf.
Итак, чтобы все подключения к github.com использовали https://вместо git://
git config --global url."https://github.com".insteadOf git://github.com
Коммутатор --global
устанавливает параметр конфигурации для всех операций git текущим пользователем, поэтому бывают случаи, когда это может быть слишком навязчивым. Но он избегает изменения конфигурации git в текущем проекте.
Ответ 2
Используйте bundle config github.https true
Ответ 3
Вы можете сделать:
gem 'jasmine', git: 'https://github.com/pivotal/jasmine-gem.git'
Ответ 4
Если вы хотите это только для всех драгоценных камней в одном Gemfile, вы можете добавить эти строки вверху файла:
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.
Ответ 5
если вы развертываете в heroku, вы можете просто добавить BUNDLE_GITHUB__HTTPS
(обратите внимание на двойное подчеркивание) как переменную окружения и установить его на true
(в панели инструментов вашего героя на вкладке Settings
в Config Vars
). это приведет к переключению протокола от git://
до https://
для всех таких запросов.
Ответ 6
Вы можете разместить полный Git URL-адрес в своем Gemfile. Например:
gem 'jasmine', :git => 'https://github.com/pivotal/jasmine-gem.git'
Ответ 7
Если решение, которое требует особой непонятной настройки для каждой инсталляции, которую вы делаете для небольшого небольшого количества синтаксического сахара, не является решением.
Вот почему я предлагаю это в качестве ответа:
просто используйте :https
и сообщите об ошибке безопасности с помощью упаковщика, что по умолчанию используется незашифрованный протокол.