【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