Я новичок в Linux.И в настоящее время я использую Ubuntu 18.04 LTS.На самом деле у меня есть проблема.Я установил Ruby с помощью rbenv.Когда я запускал команды типа rbenv install 2.6.3
и gem install bundler
.Я не использовал sudo
как sudo rbenv install 2.6.3
и sudo gem install bundler
.
Теперь проблема заключается в том, что я запускаю команду в /var/www/mydirectory/code
, что bundle install --deployment --without development production
.Затем я получаю следующий вывод
There was an error while trying to write to `/var/www/mydirectory/code/.bundle/config`. It is likely that you need to grant write permissions for that path.
, и если я делаю sudo bundle install --deployment --without development production
, тогда я получаю следующий вывод
sudo: bundle: command not found
Для команды which bundle
.Я получаю следующий вывод
/home/NHLSAdmin/.rbenv/shims/bundle
Теперь, если я наберу команду echo 'echo $PATH' | sh
.Тогда я получаю следующий вывод
/home/NHLSAdmin/.rbenv/plugins/ruby-build/bin:/home/NHLSAdmin/.rbenv/shims:/home/NHLSAdmin/.rbenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Если я наберу команду echo 'echo $PATH' | sudo sh
.Затем я получаю следующий вывод
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
Как я вижу, для пути sudo не было каталогов, таких как /home/NHLSAdmin/.rbenv/shims/bundle
, /home/NHLSAdmin/.rbenv/plugins/ruby-build/bin
.Вот почему sudo
не может его найти.
Теперь я хочу сделать эти переменные доступными для sudo.На самом деле я буду использовать какой-то инструмент автоматизации, который будет запускать команды и использовать ruby.Поэтому я хочу, чтобы эти переменные также были доступны для sudo.
Теперь я провел небольшое исследование и нашел одно решение:
1) изменил /etc/sudoers
, выполнив команду sudo visudo
и отредактируйте secure_path
, добавив каталоги
2) Добавьте alias sudo='sudo env PATH=$PATH'
в конце /root/.bashrc
В основном я хочу добавить /home/NHLSAdmin/.rbenv/shims/bundle
, /home/NHLSAdmin/.rbenv/plugins/ruby-build/bin:/home/NHLSAdmin/.rbenv/shims:/home/NHLSAdmin/.rbenv/bin
этих каталоговна мой путь sudo.Поэтому, когда я запускаю sudo bundle install
, тогда он запускается.
Что лучше, и есть ли другой способ добиться того, чего я хочу.Или я могу снова повторить всю установку той же процедуры с sodu rbenv установить 2.6.3 и т. Д.
Спасибо