web-dev-qa-db-ja.com

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

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

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プログラムがそこにインストールされるのか)を知っている人はいますか?

8
djangofan

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


これが最初の導入かどうかはわかりませんが、~/.localディレクトリは systemd initシステムの file-system hierarchy specification にあります。 ~/.localのいくつかのサブディレクトリを定義します:

〜/ .local/bin

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

〜/ .local/lib

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

〜/ .local/lib/Arch-id

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

〜/ .local/share

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

Python=による~/.localディレクトリの採用は、Python 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

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

4
igal