Как проверить, что все зависимости моих установленных гемов Ruby удовлетворены? - PullRequest
13 голосов
/ 09 ноября 2010

Я, должно быть, что-то упустил, потому что прошлой ночью я был удивлен, обнаружив, что поиск в Google для check gem dependencies и тому подобное не дал ответа на этот вопрос.* - команда, которая пройдет через некоторые или все мои установленные гемы и убедится, что их зависимости также установлены.Поскольку gem install по умолчанию устанавливает любые зависимые гемы, обычно это не требуется;однако, если вы gem uninstall драгоценный камень и скажете ему продолжить удаление, даже если другие драгоценные камни зависят от удаляемого, тогда, очевидно, у вас будут нарушенные зависимости.Вопрос в том, как вы перечислите эти нарушенные зависимости без установки / удаления / обновления каких-либо драгоценных камней?

NB ответы, которые касаются Bundler, мне не очень полезны, поскольку я все еще застрял на Rails 2.xпо разным причинам.

Ответы [ 4 ]

16 голосов
/ 12 ноября 2010

в оболочке bash:

gem list --no-version > list
gem dependency --pipe > depends
grep -v -f list depends > failed.txt
rm list
rm depends

failed.txt теперь будет иметь список всех неустановленных зависимостей.

5 голосов
/ 09 ноября 2010

Я знаю, вы сказали, что вас не интересуют ответы о Бандлере, но ...

Bundler будет обрабатывать разрешение гем-зависимостей для вас и совместим с Rails 2.3. Я использовал Bundler с несколькими приложениями на Rails 2, и у меня не было проблем с ним.

Инструкции по установке Bundler на Rails 2.3 можно найти здесь: http://gembundler.com/rails23.html

3 голосов
/ 09 ноября 2010

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

[править] Кроме того, что происходит, когда вы запускаете gem check? gem dependency перечислит все зависимости гемов. Я уверен, что если он не скажет вам, установлено ли что-то, вы можете передать вывод команде типа check, чтобы посмотреть, установлены ли эти гемы. [/ Править]

1 голос
/ 04 августа 2011

Я определенно согласен с переходом на Bundler для приложений. Если вам явно нужен способ быстрого определения неудовлетворенных зависимостей гемов для установленных гемов в системе (как я), то вы можете попробовать этот скрипт.

https://gist.github.com/1124953

...