Ошибки установки RubyGems как при использовании 'sudo', так и без использования sudo - PullRequest
5 голосов
/ 21 апреля 2010

У меня есть машина с Ubuntu Hardy, которая предоставляет собственный пакет RubyGems. К сожалению, эта версия RubyGems (1.1.1) слишком старая, чтобы делать что-либо полезное, поэтому я решил вручную обновить RubyGems до текущей версии (1.3.6). Эта часть прошла гладко, и если я сделаю gem -v, я получу 1.3.6, что ожидается. Проблема, когда я пытаюсь сделать: sudo gem install rack, он возвращает эту ошибку:

ERROR:  While executing gem ... (Errno::EACCES)
Permission denied - /home/username/.gem

Обычно, когда я устанавливаю gems как root, он знает, как установить его в /usr/lib/ruby/gems, так почему он вообще проверяет мой домашний каталог? Еще одна странность, когда я делаю gem install rack (не как root), он говорит:

ERROR:  While executing gem ... (Gem::FilePermissionError)
You don't have write permissions into the /usr/lib/ruby/gems/1.8 directory.

вот куда я хочу это пойти. Я уже пытался очистить source_caches, пробовал разные версии RubyGems (1.3.5), заставляя установку в /usr/lib с -i безрезультатно. Любые идеи о том, почему RubyGems так настойчиво проверяет мой каталог /home при установке от имени пользователя root *

Ответы [ 4 ]

2 голосов
/ 22 апреля 2010

Похоже, это может быть проблема с путём установки нескольких версий.

Любая разница в выходе между:

sudo gem env

и

gem env
0 голосов
/ 02 января 2012

Я сам столкнулся с той же проблемой на Fedora 15, поэтому я запустил 'gem install' с опцией --backtrace ', чтобы посмотреть, что происходит.

Оказалось, что это не удалось/usr/lib/ruby/site_ruby/1.8/rubygems/doc_manager.rb:203, где он пытался выполнить chdir в ранее сохраненный каталог (домашний каталог пользователя, под которым я запускал sudo)

Iне проводил тщательной отладки, чтобы выяснить причину, а использовал быстрый обходной путь, чтобы я мог продолжать двигаться вперед.Обходным путем было просто перейти к корневому каталогу, например cd / , перед запуском команды gem install.

Надеюсь, это поможет / решит вашу проблему.

0 голосов
/ 02 декабря 2011

Было бы проще su (пароль), чем chmod 755 /usr/lib/ruby/gems/1.8

0 голосов
/ 22 апреля 2010

Попробуйте запустить:

gem environment

и проверить значения для ПУТИ ДЖЕМ.Больше информации на http://docs.rubygems.org/read/chapter/10#page31

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