web-dev-qa-db-ja.com

rootユーザーで警告ファイルのアクセス権を取得する

この警告はどういう意味ですか? Amazon ec2 Ubuntu 14.04 LTS instanceでrootを使用して次のコマンドを実行すると取得しました。

$ 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.
3

まあ、あなたの質問には部分的に引用符で答えがあります:

Sudoを使用してルート権限を取得していますが、Sudoの使用方法は$HOMEの値を調整しないため、pipSudoを呼び出したユーザーのpipディレクトリ。

実際のユーザーがインストールされたモジュールを削除または変更する場合、これにより問題が発生する可能性があるため、警告が表示されます。

警告を回避し、必要がない限り、root/Sudoなしでpipを使用するか、Sudo -HとしてSudoを呼び出して、変更するユーザーに$HOMEを設定します。 、この場合は/root

3
FatalMerlin

このメッセージは、その後発行されたコマンドにSudoを使用して、以前にpipを実行した可能性があることを示唆しています。

例えば

Sudo pip install https://github.com/troeger/opensubmit/archive/0.6.2.tar.gz

デフォルトでは、Sudoは環境変数HOMEを変更しないため、Sudo env | grep HOMEHOME=/home/usernameを出力します。 -HをSudoコマンドに追加すると、この動作が変更され、HOME=/rootが出力されます。

問題を解決するには、このパスのすべてのフォルダー/home/ubuntu/.cache/pip/http(/および/ homeを除く)がubuntuによって所有されていることを確認する必要があります。

Sudo -H chown -R ubuntu: /home/ubuntu/.cache