这个警告是什么意思?我在使用 root 执行以下命令时遇到了此警告亚马逊 ec2 Ubuntu 14.04 LTS实例:
$ 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.
答案1
好吧,你的问题在引文中有部分答案:
您正在使用sudo
获取 root 权限,但您使用的方式sudo
不会调整 的值$HOME
,因此点子尝试安装到调用的用户的 pip 目录中sudo
。
如果实际用户想要删除或更改已安装的模块,这可能会导致问题,因此发出警告。
为了避免出现警告,除非你不必这样做,否则请使用点子无需 root/sudo 或以 sudo 身份调用,在本例中将sudo -H
设置$HOME
为您要更改的用户/root
。
答案2
此消息暗示您可能已经使用 sudo 执行了 pip 并执行了当时发出的命令。
例如
sudo pip install https://github.com/troeger/opensubmit/archive/0.6.2.tar.gz
默认情况下,sudo 不会更改环境变量HOME
,因此sudo env | grep HOME
会打印HOME=/home/username
。 添加-H
到 sudo 命令会改变此行为并打印HOME=/root
。
为了解决您的问题,您应该确保此路径中的每个文件夹/home/ubuntu/.cache/pip/http
(/ 和 /home 除外)都归以下人员所有ubuntu
:
sudo -H chown -R ubuntu: /home/ubuntu/.cache