Как заставить sudo читать мой файл ~ / .gemrc?

Я использую Debian Linux, Ruby on Rails 5 на Apache с Passenger. Я создал файл ~ / .gemrc

gem: --no-rdoc --no-ri

Однако я запускаю команду

sudo bundle install

, и похоже, что она не улавливает вышеуказанное. Как мне заставить «sudo» распознавать мой файл «~ / .gemrc»?

ps - я должен запустить с sudo b / c каталог Apache, откуда я запускаю, эта команда жалуется на неправильные разрешения, если я не не делай этого.

0
14.09.2017, 18:30
1 ответ

В настоящее время 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'
0
28.01.2020, 04:40

Теги

Похожие вопросы