8.50.1. Python 3 のインストール
Python をコンパイルするための準備をします。
./configure --prefix=/usr \
--enable-shared \
--with-system-expat \
--with-system-ffi \
--enable-optimizations
configure オプションの意味
-
--with-system-expat
-
本スイッチは、システムにインストールされている Expat をリンクすることを指示します。
-
--with-system-ffi
-
本スイッチは、システムにインストールされている libffi をリンクすることを指示します。
-
--enable-optimizations
-
本スイッチは安定的ではあるものの高くつく最適化を有効にします。
パッケージをコンパイルします。
make
この時点においてテスト実行することはお勧めしません。 部分的にしか仕上がっていない LFS 環境では安定せずハングすることがあります。
テストを必要とする場合は、本章を一番最後まで進めてから再度実行するか、あるいは BLFS において Python 3
をインストール際に行います。 そうではなくここでテスト実行をするなら make test を実行します。
パッケージをインストールします。
make install
いくつかの場面において Python 3 プログラムやモジュールをインストールする際には、全ユーザー向けのインストールを行うために
root
ユーザーになって pip3 コマンドを用いています。 このことは Python
開発者が推奨している、仮想環境内にて一般ユーザーにより(そのユーザーが pip3
を実行することで)パッケージビルドを行う方法とは相容れないものです。 これを行っているため、root
ユーザーとして pip3 を用いると、警告メッセージが複数出力されます。
開発者がなぜその方法を推奨しているかというと、システムパッケージマネージャー(たとえば dpkg)などと衝突が発生するからです。 LFS
ではシステムワイドなパッケージマネージャーを利用していないため、このことは問題となりません。
警告メッセージを省略したい場合は、以下のコマンドを実行します。
sed -e '/def warn_if_run_as_root/a\ return' \
-i /usr/lib/python3.10/site-packages/pip/_internal/cli/req_command.py
重要
LFS や BLFS においては通常、Python モジュールのビルドとインストールには pip3 コマンドを用いています。
この両ブックにおいて実行する pip3
install コマンドは、Python 仮想環境内でない場合には root
ユーザーで実行するようにしてください。 root
ユーザー以外によって pip3 install
を実行しても問題なく動作するように見えるかもしれませんが、インストールしたモジュールが別のユーザーからはアクセスできない事態を作り出してしまいます。
pip3 install
はデフォルトでは、すでにインストールされているモジュールを再インストールすることは行いません。 pip3 install
コマンドを使ってモジュールのアップグレードを行う(たとえば meson-0.61.3 から meson-0.62.0
にするような場合)には、コマンドラインに --upgrade
オプションを含めてください。
またモジュールのダウングレードや再インストールが必要となる理由が確実にあるのであれば、コマンドラインに --force-reinstall
を含めて実行してください。
必要なら、整形済みドキュメントをインストールします。
install -v -dm755 /usr/share/doc/python-3.10.4/html
tar --strip-components=1 \
--no-same-owner \
--no-same-permissions \
-C /usr/share/doc/python-3.10.4/html \
-xvf ../python-3.10.4-docs-html.tar.bz2
ドキュメント install コマンドの意味
-
--no-same-owner
と --no-same-permissions
-
インストールするファイルの所有者とパーミッションを適切に設定します。 このオプションがないと tar
によって展開されるファイルは、アップストリームが作り出した値になってしまうためです。