Драгоценные камни REE rake: установка работает некорректно

#rake #gem #ruby-enterprise-edition

#грабли #rubygems #ruby-enterprise-edition

Вопрос:

Я установил REE на CentOS 5 для совершенно особой задачи (используя rails 2.3.10 и ruby 1.8), и мне действительно нужно, чтобы он был изолирован

В этом случае я не буду использовать bundler или что-то в этом роде.

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

 /opt/ree/bin/gem install agem
  

Но когда я запускаю

 /opt/ree/bin/rake gems:install
  

в подготовленном для этой команды проекте — все (или большинство, я не проверял каждую зависимость) драгоценные камни устанавливаются через /usr / bin / gem в общий путь к драгоценным камням, где мне ни один из них не нужен

Это проблема, и я не хочу устанавливать все драгоценные камни вручную. Сталкивался ли smb когда-нибудь с этой проблемой и, вероятно, знает решение?

Ответ №1:

Решение, которое действительно помогло мне, заключалось в временной замене /usr/bin/gem символической ссылкой на /opt/ree/bin/gem

С этой заменой /opt/ree/bin/rake gems:intall все сработало как ожидалось — все необходимые драгоценные камни были установлены по пути REE — возврат /usr/bin/gem к исходному исполняемому файлу gem снова сделал систему стабильной

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

Ответ №2:

Либо где-то в среде есть GEM_HOME переменная, либо вызываемая ruby среда выполнения не является ree. Поэтому я бы посоветовал попробовать как минимум 3 вещи:

  • Начните с почти пустой среды (например, run env -i sh ) и снова запустите команду rake, посмотрите, по-прежнему ли она устанавливает gems в общий путь к gem. Будьте осторожны, поскольку env -i это пустое окружение, вы можете увидеть жалобы от rubygems (потому что не HOME или вообще ничего не установлено)…
  • Убедитесь, что строка shebang (первая строка программы rake) действительно указывает на ваш двоичный файл REE, а не на что-то другое
  • Наконец, запустите rake, используя двоичный файл REE с /opt/ree/bin/ruby /opt/ree/bin/rake gems:install

Это должно дать вам представление о том, что происходит не так. В целом, я думаю, что проблема с окружающей средой, вероятно, является наиболее вероятной причиной этого

Комментарии:

1. Спасибо, но ни одно из ваших предложений не работает — я перепробовал все пункты: 1. env -i sh возникли проблемы с path; 2. shebang строка rake ведет к REE; 3. /opt/ree/bin/ruby /opt/ree/bin/rake gems:install вообще не сработало (с ошибкой, что ruby не может запустить двоичный файл — странно, но это факт)