Подтвердить что ты не робот

Как заставить обновление драгоценного камня с помощью комплектатора?

У меня есть частный git хостинг камня, который мы разработали. Драгоценный камень получил некоторые коммиты, но версия на самом деле не изменилась.

Как я могу заставить bundler обновить мой драгоценный камень, даже если версия не изменилась?

Я попробовал "updateer mygemname", но ничего не обновлял.

Спасибо

4b9b3361

Ответ 1

который не будет работать - нет опции "force" - вам придется изменить свой файл .gemspec и увеличить номер версии, затем gem build ... и bundle install

Очень важно, чтобы связной мог читать номер версии из вашего драгоценного камня, который был введен в файл .gemspec. Это запутывает не только связки или gem update, но и сбивает с толку людей, если вы забудете обновить номер версии в файле .gemspec. В итоге у них появятся gem файлы, и они не смогут определить, какие версии они, например. какой из них новее? (конечно, вы могли бы использовать md5-sum, но это не так).

Самое лучшее, что нужно сделать, это исправить ошибку в файле .gemspec и повторно освободить драгоценный камень.

Проверьте исходный код поставщика для доступных параметров:

Например: bundler-1.0.15/lib/bundler/cli.rb

(поиск desc "install")

Ответ 2

вы также можете поместить git hashref прямо в Gemfile с опцией :ref

gem 'foo', :git => 'git://github.com/foobar/foo.git', :branch => '0.9-beta', :ref => '9af382ed'

особенно полезно, если у вас нет контроля над этим драгоценным камнем, и держит связку от предоставления вам более новой версии в случае нарушения изменений.

Ответ 3

Прежде всего, не делайте этого. Если вы измените свой драгоценный камень, вы должны обновить его номер версии. В противном случае это просто запутывает.

Если вы действительно хотите это сделать, однако, вы можете применить гигантский молот для удаления своего драгоценного камня.

$ gem uninstall foo
$ bundle update

Ответ 4

Это не отвечает на точный вопрос выше, но я искал "Как заставить обновить драгоценный камень в комплекте" в Google, и это пришло.

Я не пытаюсь принудительно обновить gem до rubygems.org, но я пытаюсь переустановить драгоценный камень, который установлен на путь пакета в моей локальной системе. В частности, я пытаюсь переустановить камень с родным расширением (nokogiri).

Как я удалил его из своего проекта: если ваш --path равен vendor/bundle, и вы находитесь в корне проекта, запустите:

find vendor/bundle/ruby/2.0.0 -name "*nokogiri*" -depth 2

Проверьте, что эти файлы/каталоги относятся к nokogiri, а затем удаляют их с помощью:

find vendor/bundle/ruby/2.0.0 -name "*nokogiri*" -depth 2 | xargs rm -rf

Теперь вы можете запустить команду установки пакета как обычно:

bundle install --path vendor/bundle

Примечание: Вам, конечно, нужно будет изменить 2.0.0 выше на вашу рубиновую версию. ls vendor/bundle/ruby, чтобы узнать, в каком пакете версии установлены драгоценные камни.

Ответ 5

Из версии 1.11 bundle install просто есть опция --force, которая будет перезагружать каждый камень, даже если они уже установлены.