pip がパッケージを ~/.local/bin にインストールしたのはなぜですか?

pip がパッケージを ~/.local/bin にインストールしたのはなぜですか?

~/.local/bin この「Taurus Blazemeter 'bzt'」プログラムを pip でインストールすると、フォルダー にインストールされてしまいます。

mkdir ~/bzt && cd ~/bzt
sudo apt-get install python default-jre-headless python-tk python-pip python-dev libxml2-dev libxslt-dev zlib1g-dev
sudo pip install bzt

この~/.localフォルダーの用途と、このような Python プログラムがなぜそこにインストールされるのか知っている人はいますか?

答え1

簡単に答えると、 は~/.local/binPython のユーザー スクリプト ディレクトリのデフォルト値であり、 はpipユーザー ローカル インストールを実行する場合にこのディレクトリに実行可能ファイルをインストールする可能性があります。また、 は、ユーザー ベース ディレクトリのデフォルト値である の他のサブディレクトリにファイルをインストールする可能性もあります~/.local。詳細は以下を参照してください。


これが最初の導入かどうかは分かりませんが、この~/.localディレクトリはファイルシステム階層仕様システムinit システムでは、次のいくつかのサブディレクトリが定義されています~/.local:

ローカル

ユーザーの $PATH 検索パスに表示される実行可能ファイル。シェルからの呼び出しに役立たない実行可能ファイルをこのディレクトリに配置しないことが推奨されます。代わりに、これらのファイルは ~/.local/lib のサブディレクトリに配置する必要があります。この場所にアーキテクチャ依存のバイナリを配置する場合は注意が必要です。ホーム ディレクトリが異なるアーキテクチャを持つ複数のホスト間で共有されている場合、問題が発生する可能性があります。

~/.local/lib

すべてのアーキテクチャと互換性のある静的なプライベート ベンダー データ。

~/.local/lib/アーキテクチャID

パブリック ダイナミック ライブラリを配置する場所。使用するアーキテクチャ識別子は、Multiarch Architecture Specifiers (Tuples) リストで定義されます。

~/.local/シェア

フォントやアートワークなど、複数のパッケージ間で共有されるリソース。通常、このディレクトリの下に格納されるファイルの正確な場所と形式は、相互運用性を保証する仕様に従います。アプリケーションは、$XDG_DATA_HOME が設定されていることを検出した場合、このディレクトリではなく、その中に指定されているディレクトリを使用する必要があります。

Python によるディレクトリの採用は~/.localPython 2.6 で導入されたようで、PEP (Python Enhancement Proposal) 370 に文書化されています。

仕様には、Unix システム (Mac OS X を含む) の次の定義が含まれています。

  • ユーザーベースディレクトリ

    ~/.local

  • ユーザー スクリプト ディレクトリ:

    ~/.local/bin

  • ユーザーサイトディレクトリ:

    ~/.local/lib/python2.6/site-packages

  • ユーザーデータディレクトリ:

    ~/.local/lib/python2.6

このことから、Pythonにはいわゆる「ベースユーザーディレクトリ」という概念があり、そのデフォルト値は であると結論付けることができます~/.local。ベースユーザーディレクトリについては、siteモジュールのPythonドキュメント特に、ユーザー ベース ディレクトリとユーザー サイト ディレクトリの値、および--user-baseオプション--user-siteフラグを決定するメソッドが提供されます。これらは次のように使用できます。

user@host:~$ python -m site --user-base

/home/user/.local

user@host:~$ python -m site --user-site

/home/user/.local/lib/python2.7/site-packages

StackExchange サイトには、~/.localディレクトリに関連する質問がいくつか投稿されており、参考にしました。

関連情報