これは、なにをしたくて書いたもの?
時々update-alternativesコマンドを使ってシンボリックリンクの切り替えを行っていますが、現在の選択内容や選択肢の
確認方法をちゃんと覚えていなかったのでメモしておきます。
いくつか選択肢があるようです。
update-alternatives
使うコマンドはupdate-alternativesです。表示用のコマンドがあるわけではないんですね。
Ubuntu Manpage: update-alternatives - maintain symbolic links determining default commands
update-alternativesコマンドは、update-alternatives [オプション] [コマンド]の形式で行います。
今回の内容で使いそうなオプションはこのあたりですね。
- --display
- --query
- --list
実行結果でそれぞれ見ていきましょう。
環境
今回の環境はこちら。
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 24.04.3 LTS Release: 24.04 Codename: noble $ uname -srvmpio Linux 6.8.0-88-generic #89-Ubuntu SMP PREEMPT_DYNAMIC Sat Oct 11 01:02:46 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
確認する
update-alternativesで選択されている内容や、選択肢を確認していきます。
ちょうどOpenJDKを8、11、17、21、25とインストールしているので、こちらを使いましょう。
なお、現在選択しているのはOpenJDK 25です。
--display
$ update-alternatives --display java java - 自動モード 最適なリンクのバージョンは '/usr/lib/jvm/java-25-openjdk-amd64/bin/java' です リンクは現在 /usr/lib/jvm/java-25-openjdk-amd64/bin/java を指しています リンク java は /usr/bin/java です スレーブ java.1.gz は /usr/share/man/man1/java.1.gz です /usr/lib/jvm/java-11-openjdk-amd64/bin/java - 優先度 1111 スレーブ java.1.gz: /usr/lib/jvm/java-11-openjdk-amd64/man/man1/java.1.gz /usr/lib/jvm/java-17-openjdk-amd64/bin/java - 優先度 1711 スレーブ java.1.gz: /usr/lib/jvm/java-17-openjdk-amd64/man/man1/java.1.gz /usr/lib/jvm/java-21-openjdk-amd64/bin/java - 優先度 2111 スレーブ java.1.gz: /usr/lib/jvm/java-21-openjdk-amd64/man/man1/java.1.gz /usr/lib/jvm/java-25-openjdk-amd64/bin/java - 優先度 2511 スレーブ java.1.gz: /usr/lib/jvm/java-25-openjdk-amd64/man/man1/java.1.gz /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java - 優先度 1081 スレーブ java.1.gz: /usr/lib/jvm/java-8-openjdk-amd64/jre/man/man1/java.1.gz
--query
$ update-alternatives --query java Name: java Link: /usr/bin/java Slaves: java.1.gz /usr/share/man/man1/java.1.gz Status: auto Best: /usr/lib/jvm/java-25-openjdk-amd64/bin/java Value: /usr/lib/jvm/java-25-openjdk-amd64/bin/java Alternative: /usr/lib/jvm/java-11-openjdk-amd64/bin/java Priority: 1111 Slaves: java.1.gz /usr/lib/jvm/java-11-openjdk-amd64/man/man1/java.1.gz Alternative: /usr/lib/jvm/java-17-openjdk-amd64/bin/java Priority: 1711 Slaves: java.1.gz /usr/lib/jvm/java-17-openjdk-amd64/man/man1/java.1.gz Alternative: /usr/lib/jvm/java-21-openjdk-amd64/bin/java Priority: 2111 Slaves: java.1.gz /usr/lib/jvm/java-21-openjdk-amd64/man/man1/java.1.gz Alternative: /usr/lib/jvm/java-25-openjdk-amd64/bin/java Priority: 2511 Slaves: java.1.gz /usr/lib/jvm/java-25-openjdk-amd64/man/man1/java.1.gz Alternative: /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java Priority: 1081 Slaves: java.1.gz /usr/lib/jvm/java-8-openjdk-amd64/jre/man/man1/java.1.gz
--list
$ update-alternatives --list java
/usr/lib/jvm/java-11-openjdk-amd64/bin/java
/usr/lib/jvm/java-17-openjdk-amd64/bin/java
/usr/lib/jvm/java-21-openjdk-amd64/bin/java
/usr/lib/jvm/java-25-openjdk-amd64/bin/java
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
どのような状態になっているのかを確認するには--display、選択肢をシンプルに見るなら--listといったところでしょうか。
こんなところで。