【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

書いた人

profile_image

お茶の葉

物理とプログラミングが好きな人