chruby и ruby ​​недоступны, когда я использую sudo

Я установил chruby на Ubuntu 14.04 и установил ruby-install и установил ruby ​​2.1.1 в /opt/rubies/

Я поместил следующее в /etc/profile.d/chruby.sh

if [ -n "$BASH_VERSION" ] || [ -n "$ZSH_VERSION" ]; then
  source /usr/local/share/chruby/chruby.sh
  chruby ruby-2.1.2
fi

Я хочу, чтобы все пользователи использовали этот ruby, и пакет ruby ​​по умолчанию не установлен.

Если я вхожу в Chruby как сам, я получаю:

ubuntuserver ~: chruby
 * ruby-2.1.2

И ruby ​​-v дает:

ubuntuserver ~: ruby -v
ruby 2.1.2p95 (2014-05-08 revision 45877) [i686-linux]

Однако, если я делаю sudo chruby, я получаю:

sudo: chruby: command not found

И если я сделаю что-то вроде sudo rmate myfile.txt, я получу:

ubuntuserver ~: sudo rmate test.txt

/usr/bin/env: ruby: No such file or directory

Я хочу знать, как сделать этот ruby ​​универсальным для пользователей сеансов работы веб-сервера и т. Д.

1 ответ

Решение

Этот вопрос, кажется, был дан ответ на Chruby Wiki

По сути, вам нужно получить приглашение с правами root, а затем запустить скрипт установки chruby, переключить рубины, а затем выполнить команду.

В качестве альтернативы вы можете использовать sudo chruby-exec ruby-nnn - [команда]

например. Если я бегу

sudo chruby-exec ruby-2.1.2 -- rmate test.txt

он вызывает textmate по мере необходимости.

Другие вопросы по тегам