Rails: gem.config & rake gems: install - нет такого файла для загрузки - PullRequest
1 голос
/ 15 августа 2011

Я пытаюсь использовать config / environment.rb для установки зависимости от ruby ​​gem (поскольку у меня нет доступа sudo к нашему серверу; следовательно, я не могу просто позвонить gem install hpricot).

Я попытался включить различные аргументы (:version, :source, :lib), но я все еще получаю rake aborted! no such file to load -- hpricot

Обновление: Оказывается, когда я удаляюплагин, который требует hpricot, тогда я могу успешно выполнить rake gems:install.Но это не очень полезно.Это означает, что если я когда-нибудь переместлю свое приложение, я столкнусь с проблемой невозможности разгрести его драгоценные камни (потому что я переустановлю плагин и добавлю функции, которые зависят от него).

Как это должноработа?

Sys: WinXP, Ruby 1.8.7, Rails 2.3.5

Ответы [ 2 ]

2 голосов
/ 15 августа 2011

Rails пытается загрузить гем перед выполнением задачи rake.Это известная проблема с рельсами 2.x.Единственное решение, которое я знаю, это переключиться на использование bundler для управления гемами или управления вручную.

Bundler можно использовать с rails 2, но он требует некоторых изменений в вашем приложении и сценариях развертывания.Это хорошее место для начала: http://gembundler.com/rails23.html

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

rake gems:install устарела, потому что никогда не работала.Вы можете себе представить, что установщик гемов с зависимостями от тех самоцветов, которые он пытается установить, - плохая идея.

Вместо этого рекомендуется использовать bundler , если это вариант.

Bundler позволяет вам устанавливать гемы в любое место, куда вы хотите, что-то специально предназначенное для обхода всей проблемы «требует sudo», которую вы описываете.Часто это так просто:

bundle install --path ~/my_gems/

Вы можете заставить свое приложение Rails 2.3.x использовать Bundler, выполнив несколько простых шагов , и оттуда ваша жизнь станет намного проще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...