web-dev-qa-db-ja.com

Sudo pipを使用してソフトウェアをインストールすると、「ディレクトリ...は現在のユーザーによって所有されていません」というメッセージが表示されます

ディレクトリ '/home/bijay/.cache/pip/http'またはその親ディレクトリは現在のユーザーが所有しておらず、キャッシュは無効になっています。そのディレクトリの権限と所有者を確認してください。 Sudoでpipを実行する場合、Sudoの-Hフラグが必要な場合があります。

しかし、ソフトウェアはインストールされます。上記のエラーの意味を知りたいだけです。

例えば:-

 When I tried to install pandas, it goes like this..

6
Bijay uprety

Sudoを実行すると、有効なユーザーがルートに切り替えられる間、環境が引き継がれます。環境には、~/またはホームディレクトリ(環境変数HOMEの値)が/home/bijayであることが含まれています。

pipは、パッケージをダウンロードする前にhttpキャッシュを探します。おそらくセキュリティ、健全性、プライバシーの理由により、pipはキャッシュを無効にして、現在のユーザーが所有していないキャッシュディレクトリに書き込まないようにします。それはそれをやったことを伝えているだけです。

ヒントとして、Sudo -Hを使用すると、HOMEに渡されるコマンドを実行する前にSudo環境変数を設定し、ルートのホームディレクトリ/root$HOMEとして使用します。ユーザーの。キャッシュはエラーなしで/root/.cache/pip/httpに書き込まれます。

補足として、とにかくルートとしてpipを実行すべきではありません。

9
jdwolf