【Linux】Alternativesの使い方
投稿日: 更新日:
環境
Ubuntu: 22.04
Alternativesとは
Linuxであるソフトが複数バージョンインストールされている時、それらを切り替えるツールです。
PythonやJavaなど複数バージョン使い分けしたい時に使います。
使い方(Python)
Pythonを例に使い方を説明します。
今、私の環境には複数のPythonがあります。3.10と3.11がありますね。
$ ls /usr/bin/ | grep python
python3.10
python3.11
....
update-alternatives --display <command>
で登録されているコマンドの情報を知れます。
まだAlternativesにはPythonの設定がありません。
$ update-alternatives --display python
update-alternatives: error: no alternatives for python
AlternativesにPythonを設定する
Python3.10と3.11をAlternativesに設定します。
--install <シンボリックリンクのパス> <コマンド名> <参照するパス> <優先度>
の順で設定します。
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.10 1
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.11 2
--display
で設定されたことを確認できます。
$ update-alternatives --display python
python - auto mode
link best version is /usr/bin/python3.11
link currently points to /usr/bin/python3.11
link python is /usr/bin/python
/usr/bin/python3.10 - priority 1
/usr/bin/python3.11 - priority 2
バージョンを切り替える
今、python
コマンドでは3.11が使える状況です。これを3.10に変更します。
$ python --version
Python 3.11.0rc1
--config <変更したいコマンド>
でバージョンを変更します。
そして、Selection
の番号から使いたいPythonの番号を選びます。今回は1を選択します。
$ sudo update-alternatives --config python
There are 2 choices for the alternative python (providing /usr/bin/python).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/python3.11 2 auto mode
1 /usr/bin/python3.10 1 manual mode
2 /usr/bin/python3.11 2 manual mode
Press <enter> to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/bin/python3.10 to provide /usr/bin/python (python) in manual mode
これによってpythonのバージョンを切り替えれました。
$ python --version
Python 3.10.6