pyenv は「特定ユーザにインストールする」方法と「システム全体にインストールする」方法があり、各々以下のような特徴があると思います。
- 特定ユーザにインストールする
- ユーザ権限だけでランタイムやパッケージの 追加・削除が可能
- 別ユーザから参照出来ないので、作成したアプリケーションを デーモン化し辛い
- システム全体にインストールする
- 管理者権限がなければランタイムやパッケージの 追加・削除が出来ない
- 全ユーザから参照出来るので、作成したアプリケーションを デーモン化し易い
今回はシステム全体へ pyenv をインストールする方法をメモしておきます。 前提として CentOS 8.1911 を利用しました。
パッケージのインストール
予め、前提になるパッケージをインストールしておきます。
dnf -y install \
bzip2-devel \
gcc \
gcc-c++ \
git \
libffi-devel \
make \
openssl-devel \
readline-devel \
sqlite-devel \
zlib-devel
pyenv のインストール
pyenv を /usr/local/pyenv
へ clone します。
git clone https://github.com/pyenv/pyenv.git /usr/local/pyenv
全ユーザが起動時に pyenv を参照出来るようにする為、全ユーザが参照する環境変数を追加します。
cat << EOF > /etc/profile.d/pyenv.sh
export PYENV_ROOT="/usr/local/pyenv"
export PATH="\${PYENV_ROOT}/bin:\${PATH}"
eval "\$(pyenv init -)"
EOF
ログアウト・ログインし直すか、または下記を実行して環境変数を反映します。
exec $SHELL -l
これで pyenv がシステム全体へインストールされました。 前述の通り、ランタイムやパッケージの追加・修正は管理者権限 (root 権限) が必要な点に注意します。
使い方
管理者権限さえあれば、使い方は基本的に「特定ユーザへインストール」した場合と同じです。 例えば Python 3.8.1 ランタイムをインストールするには以下のように実行します。
pyenv install --list
pyenv install 3.8.1
pyenv global 3.8.1
pyenv rehash
コメント