Я использую Debian Linux, Ruby on Rails 5 на Apache с Passenger. Я создал файл ~ / .gemrc
gem: --no-rdoc --no-ri
Однако я запускаю команду
sudo bundle install
, и похоже, что она не улавливает вышеуказанное. Как мне заставить «sudo» распознавать мой файл «~ / .gemrc»?
ps - я должен запустить с sudo b / c каталог Apache, откуда я запускаю, эта команда жалуется на неправильные разрешения, если я не не делай этого.
В настоящее время sudo
переключает вашего пользователя на root, а в Debian по умолчанию он перезаписывает ваш $HOME
, поэтому он становится/root
:
$ sudo sh -c 'echo $HOME'
/root
Таким образом, предполагается, что $HOME/.gemrc
под root находится в /root/.gemrc
, и есть вероятность, что вы хотите, чтобы он взял файл из каталога вашего обычного пользователя.
Решение для тупой силы состоит в том, чтобы сделать что-то вроде
sudo ln -s /home/your_user_name/.gemrc /root/.gemrc
Чуть более сложное решение — отключить always_set_home
в /etc/sudoers
.
Другой вариант — использовать несколько сложный способ вызова sudo, например
sudo sh -c 'export HOME=/home/your_user_name; bundle install'