Как проверить, удовлетворены ли все зависимости моих установленных камней Ruby?

Мне нужно что-то пропустить, потому что вчера вечером я был поражен, обнаружив, что поисковая система для check gem dependencies и тому подобное не обнаружили ответа для этого.

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

N.B. ответы, которые связаны с Bundler, мне не очень нравятся, так как я по-прежнему остаюсь на Rails 2.x по разным причинам.

Ответ 1

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

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

Ниже приведены инструкции по установке Bundler on Rails 2.3: http://gembundler.com/rails23.html

Ответ 2

в оболочке bash:

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

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

Ответ 3

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

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

Ответ 4

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

https://gist.github.com/1124953