簡易アプリ作成等々でよく使われるPython。Linuxで利用する際に必要な、Python3.xのインストール方法を紹介します。
2023年4月現在の最新版は「3.11.0」になります。
本作業はRockyLinuxで行っていますが、RHEL互換であれば、同様に作業可能です。
##準備
あらかじめ以下のパッケージを入れておく(でないと「No module named '_ctypes'」とメッセージが出てpipでインストールできないパッケージがある
dnf install libffi-devel
また、OpenSSL及び、SQLite、libbzを入れないと、一部アプリケーション利用時にエラーとなる。
1. OpenSSLのインストール
Rocky Linux 9.4にOpenSSL 3.4をインストールする(ソースからビルド)
2.zlibのインストール
[zlibをインストール(ソースからビルド)for RockyLinux 9.x]
(https://qiita.com/shadowhat/items/867d9e06bc42cf862b9a)
3.SQLiteのインストール
cd /usr/local/src
wget https://www.sqlite.org/src/tarball/sqlite.tar.gz --no-check-certificate
tar xvzf sqlite.tar.gz
cd sqlite
./configure
make -j 4
make install
4.bz2のインストール
cd /usr/local/src
wget https://www.sourceware.org/pub/bzip2/bzip2-latest.tar.gz --no-check-certificate
tar xvzf bzip2-latest.tar.gz
cd bzip2-1.0.8
make
make install
make clean
make -f Makefile-libbz2_so
make install
5.Pythonのインストール
export CFLAGS="-I/usr/local/include -I/usr/local/ssl/include -L/usr/local/src/bzip2-1.0.8"
export LDFLAGS="-L/usr/local/lib64 -L/usr/local/lib -L/usr/local/lib64 -L/usr/local/mysql/lib -L/usr/local/ssl/lib"
export LD_RUN_PATH=/usr/local/lib64:/usr/local/lib:/usr/local/ssl/lib:/usr/lib:/usr/lib64
export LD_LIBRARY_PATH=/usr/local/ssl/lib::/usr/local/ssl:/usr/local/lib64:/usr/local/lib:/usr/lib:/usr/lib64
export PKG_CONFIG_PATH=/usr/local/ssl/pkgconfig:/usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig:/usr/lib:/usr/lib64/pkgconfig
cd /usr/local/src
wget https://www.python.org/ftp/python/3.12.8/Python-3.12.8.tgz
tar xvzf Python-3.12.8.tgz
cd Python-3.12.8
./configure \
--with-ensurepip \
--enable-shared \
--enable-ipv6 \
--with-openssl=/usr/local/ssl \
--enable-optimizations \
--enable-threads \
--prefix=/usr/local/python-3.12.8 \
--with-system-ffi=/usr/local/lib64 \
--enable-loadable-sqlite-extensions
make -j 8
make install
インストール後に、python3のライブラリが見えているかを確認する
ldd /usr/local/python-3.12.8/bin/python3
ldd ./python3
linux-vdso.so.1 (0x00007ffd66bbf000)
libpython3.10.so.1.0 => not found #★ライブラリが見えていない
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fa97bbd0000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fa97b9b0000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fa97b7ac000)
libutil.so.1 => /lib64/libutil.so.1 (0x00007fa97b5a8000)
libm.so.6 => /lib64/libm.so.6 (0x00007fa97b226000)
libc.so.6 => /lib64/libc.so.6 (0x00007fa97ae61000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa97bdf9000)
この場合、以下のコマンドでライブラリをみえるようにする
ln -s /usr/local/python-3.11.4/lib/libpython3.11.so.1.0 /usr/local/lib64/libpython3.11.so.1.0
export LD_LIBRARY_PATH=/usr/local/lib64:/usr/lib64
これだけで、インストールは完了です。
sharedにしているため、ライブラリが見えない場合は、/etc/ld.so.confに、「/usr/local/lib」を追加し、「ldconfig」を実行しパスが見えるようにするとよい。