Я пытаюсь установить драгоценный камень из разветвленного репозитория aws-sdk-ruby
, куда я добавил несколько новых коммитов.
Ниже приведен контент, который я добавил в свой Gemfile:
gem 'aws-sdk', :git => 'https://github.com/suvrat-joshi/aws-sdk-ruby.git', :branch => 'retry-throttled-cf-requests'
Но когда я пытаюсь запустить bundle install
, я получаю следующую ошибку:
Could not find gem 'aws-sdk' in [email protected]:suvrat-joshi/aws-sdk-ruby.git (at
retry-throttled-cf-requests@b77de6d).
Кроме того, я могу установить этот драгоценный камень из исходного кода, запустив gem install aws-sdk -s https://github.com/suvrat-joshi/aws-sdk-ruby.git
. Однако я хотел бы установить это через bundle install
.
Обратите внимание, что я уже попробовал некоторые ответы, которые нашел в Интернете. Но ни один из них не пригодился в моем случае. Нравиться:
Добавление
require 'bundler/setup'
в config.ru
файл.
Добавление
require 'bundler'
Bundler.setup(:default)
в config.ru
файл.
Использование команды specific_install
gem install specific_install
gem specific_install -l https://github.com/suvrat-joshi/aws-sdk-ruby.git
Создайте драгоценный камень из файла aws-sdk.gemspec (gem build aws-sdk.gemspec
), представленного по ссылке , а затем скопируйте сгенерированный файл драгоценного камня в статический путь другого проекта и затем добавьте следующее в файл Gemfile
.
gem 'aws-sdk-3.2.0.gem', path: 'vendor/gems/aws-sdk'
Но для моего случая этот вариант не подходит, так как для каждого нового обновления мне придется собирать гем заново и копировать его по статическому пути.
Может ли кто-нибудь с опытом работы с Ruby помочь мне понять, почему это не работает и как это исправить?
🤔 А знаете ли вы, что...
Ruby имеет динамическую систему исключений, что упрощает обработку ошибок.
Согласно https://bundler.io/guides/git.html:
If the gem is located within a subdirectory of a git repository,
you can use the :glob option to specify the location of its .gemspec
На той же странице приведен пример:
gem 'cf-copilot',
git: 'https://github.com/cloudfoundry/copilot',
glob: 'sdk/ruby/*.gemspec'
Итак, в вашем случае это должно быть:
gem 'aws-sdk',
:git => 'https://github.com/suvrat-joshi/aws-sdk-ruby.git',
:branch => 'retry-throttled-cf-requests',
:glob => 'gems/aws-sdk/aws-sdk.gemspec'