Sem o sinalizador -H para o comando sudo, as chamadas para pip podem falhar quando executadas por meio de sudo porque HOME ainda está definido para o nome de usuário SSH, em vez do nome de usuário sudo. Isso é necessário, por exemplo, para escrever um log de erros no caso de falha na construção de um pacote.
Defina isso por padrão ou forneça um argumento para sudo () que o habilitará no comando sudo remoto.
Eu também fui mordido por isso. Apesar de 'env_reset' ser definido no arquivo sudoers padrão do ubuntu, o HOME não está sendo definido para o usuário para o qual você usa o sudo ... Antes de acabar no próprio tecido, há uma maneira fácil de definir a opção '-H' sempre. Perto do topo do seu fabfile, defina isto:
env['sudo_prefix'] += '-H '
Vou dobrar isso em # 503, não adianta ter 2x discussões sobre isso.
@tobiasmcnulty e @reinout Tenho um comentário sobre # 503 re: uso de -i
vez de -H
, se você tiver algum comentário sobre isso, deixe algum :)
Comentários muito úteis
Eu também fui mordido por isso. Apesar de 'env_reset' ser definido no arquivo sudoers padrão do ubuntu, o HOME não está sendo definido para o usuário para o qual você usa o sudo ... Antes de acabar no próprio tecido, há uma maneira fácil de definir a opção '-H' sempre. Perto do topo do seu fabfile, defina isto: