LoginSignup
2
3

Python3.xをインストール(ソースからビルド)for RockyLinux 9.x

Last updated at Posted at 2016-12-24

簡易アプリ作成等々でよく使われる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のインストール

RockyLinux 9.xにOpenSSL 3.0.xをインストールする(ソースからビルド)

##2.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

##3.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

##4.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.11.4/Python-3.11.4.tgz
tar xvzf Python-3.11.4.tgz
cd Python-3.11.4
./configure \
--with-ensurepip \
--enable-shared \
--enable-ipv6 \
--with-openssl=/usr/local/ssl \
--enable-optimizations \
--enable-threads \
--prefix=/usr/local/python-3.11.4 \
--with-system-ffi=/usr/local/lib64 \
--enable-loadable-sqlite-extensions
make -j 8
make install

インストール後に、python3のライブラリが見えているかを確認する

ldd /usr/local/python-3.11.4/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」を実行しパスが見えるようにするとよい。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3