Как проверить, удовлетворены ли все зависимости моих установленных камней 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