Ошибка sudo: gem: команда не найдена

ruby linux gem sudo

19579 просмотра

4 ответа

437 Репутация автора

Я пытаюсь установить rubyrep на CentOS, и при выполнении sudo gem install rubyrepя получаю сообщение об ошибке sudo: gem: command not found. Sudo и gem установлены и работают, но не в сочетании.

Моя настройка:

[rubyrep]# which sudo
/usr/bin/sudo
[rubyrep]# which gem
/usr/local/rvm/rubies/ruby-2.1.2/bin/gem
[rubyrep]# which ruby
/usr/local/rvm/rubies/ruby-2.1.2/bin/ruby
[rubyrep]# $PATH
-bash: /usr/local/rvm/gems/ruby-2.1.2/bin:/usr/local/rvm/gems/ruby-2.1.2@global/bin:/usr/local/rvm/rubies/ruby-2.1.2/bin:/usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin: No such file or directory
Автор: Kate Источник Размещён: 11.07.2014 08:45

Ответы (4)


19 плюса

6041 Репутация автора

Решение

Попробуй без sudo. Вы должны использовать только sudoесли вы сделали корневую установку ruby, что не рекомендуется.

Автор: nicooga Размещён: 15.07.2014 12:12

1 плюс

119 Репутация автора

Если кто-то сталкивается с этим, как я, и без sudo не вариант. Возможно, вы захотите проверить свои sudoers на «secure_path».

Если это не включает путь вашей установки / драгоценный камень / рубин (какой драгоценный камень). Тогда вы также получите эту ошибку.

Fedora 23, построена из исходного кода.

Автор: Dishcandanty Размещён: 05.04.2016 05:38

6 плюса

898 Репутация автора

С http://web.archive.org/web/20130405074724/http://www.kleinfelter.com/node/188 :

В сети есть сотни сообщений о "sudo: gem: команда не найдена". Из дюжины или около того, на что я смотрел, предлагаемое решение составило «убедиться, что« драгоценный камень »находится в вашем PATH».

Ага. Это на моем пути. То есть следующие работы:

драгоценный камень - помощь

но следующее терпит неудачу:

судо драгоценный камень - помощь

Еще более запутанная вещь, драгоценный камень находится на пути, показанном:

sudo echo $ PATH

Хитрость в том, что sudo не использует $ PATH для своего пути в некоторых выпусках Linux. Такое поведение считается «более безопасным». (Видите, что sudo изменяет PATH - почему? ).

Ба! Это все еще боль, чтобы обойти. Вы должны включить 'gem' в путь (а не просто $ PATH!). Вы прочтете об опциях, которые вы можете передать sudo, и это прекрасно, когда вы сами набираете командную строку. Когда чей-то скрипт вызывает sudo для вас, вы застреваете в командной строке, которую он использует.

Я исправил это, выполнив:

alias sudo='sudo env PATH=$PATH'

как предложено в sudo изменяет PATH - почему? ,

Автор: user4975679 Размещён: 04.05.2017 12:53

1 плюс

103 Репутация автора

sudo env PATH = $ PATH gem install rails

Меня устраивает.

Автор: scrapy Размещён: 12.05.2017 07:38
Вопросы из категории :
32x32