Что означает это предупреждение? Я получил его при выполнении после команды с помощью корня в амазонке 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.
Ну, Ваш вопрос частично имеет ответ в кавычке:
Вы используете sudo
для получения корневых разрешений, но способ, которым Вы используете sudo
, не корректирует значение $HOME
, таким образом зернышко попытки установить в каталог зернышка пользователя, который вызвал sudo
.
Это могло бы вызвать проблемы, если фактический пользователь захочет удалить или изменить установленные модули, поэтому предупреждение.
Для предотвращения предупреждения и если Вы не имеете к используйте зернышко без root/sudo или вызовите sudo как sudo -H
, который установит $HOME
на пользователя, которого Вы изменяете на, в этом случае /root
.
Это сообщение намекает на то, что Вы, возможно, выполнили зернышко ранее с помощью sudo для тогдашней выпущенной команды.
, Например
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
(кроме / и / домой) принадлежит ubuntu
:
sudo -H chown -R ubuntu: /home/ubuntu/.cache