Новая установка Ruby Enterprise Edition - «gem» распознается, но «sudo gem» не - PullRequest
2 голосов
/ 14 февраля 2011

Я только что установил Ruby Enterprise Edition на новый сервер Ubuntu 10.04. Я пошел, чтобы установить свой первый драгоценный камень, и столкнулся со странной проблемой, которую я никогда не видел прежде.

Без sudo, если я просто наберу 'gem', я получу рекламу о самоцвете. Я могу переключиться на root и сделать gem install gemname или указать полный путь к файлу exe, но если я сделаю sudo gem install gemname, я получу странную ошибку sudo: gem: command not found.

Если я делаю gem install gemname без sudo, это говорит мне, что у меня нет разрешения изменять папку gem (что достаточно справедливо). Похоже, что-то смешное происходит, когда я sudo, в основном.

Я добавил путь к корзине Ruby в переменную PATH в моем файле .bashrc, например:

export PATH=/opt/ruby-enterprise-1.8.7-2011.01/bin:$PATH

затем перезагрузил .bashrc с source. Любые идеи, кто-нибудь?

Ответы [ 4 ]

0 голосов
/ 30 марта 2012

Если вы используете RVM, используйте rvmsudo gem install gemname.

0 голосов
/ 14 февраля 2011

Это проблема с sudo, так как ken.li156 упоминал, что sudo не сохраняет переменную $ PATH, смотрите здесь для получения дополнительной информации: sudo изменяет PATH - почему?

Размещение обновленного экспорта PATH в / etc / profile должно позволить всем пользователям, включая команды, запускаемые через sudo, видеть каталог REE bin.

0 голосов
/ 15 июня 2011

Попробуйте это:

gem install sqlite3-ruby
0 голосов
/ 14 февраля 2011

try sudo -s, а затем gem install gemname.

Длинный ответ .bashrc файл влияет только на оболочку bash, в которой вы находитесь, и sudo не знает об этом, потому что sudo этого не делаетпрямо посмотри на свой .bashrc.Вы можете использовать sudo -s, чтобы обойти это.Вы также можете использовать sudo -E, чтобы попытаться сохранить среду при выполнении команд sudo.

Использование / etc / profile для изменения вашего PATH вместо .bashrc также может работать.

...