Como obtenho o sudo para ler meu arquivo ~ / .gemrc?

0

Estou usando o Debian Linux, Ruby on Rails 5 no Apache com o Passenger. Eu criei o arquivo ~ / .gemrc

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

No entanto, estou executando o comando

sudo bundle install

e não parece estar pegando o acima. Como obtenho "sudo" para reconhecer meu arquivo "~ / .gemrc"?

ps - Eu tenho que correr com sudo b / c o diretório Apache de onde eu estou rodando este comando reclama de permissões ruins se eu não fizer isso.

    
por Dave 14.09.2017 / 17:30

1 resposta

0

Hoje em dia, sudo muda seu usuário para root, e no Debian o padrão é reescrever seu $HOME , então ele se torna /root :

$ sudo sh -c 'echo $HOME'
/root

Portanto, espera-se que $HOME/.gemrc sob a raiz esteja em /root/.gemrc , e é provável que você queira que ele pegue um arquivo do diretório do usuário comum.

A solução de força contundente é fazer algo como

sudo ln -s /home/your_user_name/.gemrc /root/.gemrc

Uma solução pouco mais complexa é desabilitar always_set_home em /etc/sudoers .

Outra opção é usar uma maneira complicada de chamar o sudo como

sudo sh -c 'export HOME=/home/your_user_name; bundle install'
    
por 14.09.2017 / 18:22