Que signifie cet avertissement? Je l'ai eu lors de l'exécution de la commande suivante en utilisant root à Amazon ec2 Ubuntu 14.04 LTS instance:
$ pip install https://github.com/troeger/opensubmit/archive/0.6.2.tar.gz
The directory '/home/ubuntu/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with Sudo, you may want Sudo's -H flag.
The directory '/home/ubuntu/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with Sudo, you may want Sudo's -H flag.
Eh bien, votre question répond en partie à la citation:
Vous utilisez Sudo
pour obtenir les autorisations root, mais la façon dont vous utilisez Sudo
ne modifie pas la valeur de $HOME
, aussi pip essaie de s’installer dans le Répertoire pip de l'utilisateur qui a appelé Sudo
.
Cela pourrait entraîner des problèmes si l'utilisateur réel souhaite supprimer ou modifier les modules installés, d'où l'avertissement.
Pour éviter cet avertissement et, à moins que vous n'ayez pas à le faire, utilisez pip sans root/Sudo ou appelez Sudo en tant que Sudo -H
qui définira $HOME
sur l'utilisateur que vous modifiez. , dans ce cas /root
.
Ce message indique que vous avez peut-être déjà exécuté pip auparavant avec Sudo pour la commande émise à ce moment-là.
Par exemple
Sudo pip install https://github.com/troeger/opensubmit/archive/0.6.2.tar.gz
Par défaut, Sudo ne modifie pas la variable d'environnement HOME
et par conséquent, Sudo env | grep HOME
imprime HOME=/home/username
. L'ajout de -H
à la commande Sudo modifie ce comportement et il affiche HOME=/root
.
Pour résoudre votre problème, assurez-vous que tous les dossiers de ce chemin /home/ubuntu/.cache/pip/http
(sauf/et/home) appartiennent à ubuntu
:
Sudo -H chown -R ubuntu: /home/ubuntu/.cache