apt 経由で Java バージョンを切り替えますか?

apt 経由で Java バージョンを切り替えますか?

(書式が間違っていたらあらかじめお詫びします。これは私の最初の投稿ですので、遠慮なく訂正してください)。

通常、使用している Java のバージョンを確認したい場合は、次のコマンドを実行します。

java -version

Javaバージョン「1.7.0_55」

Java バージョンを変更する場合 (Java 7 から Java 6 へ)、対応する JRE Java バイナリへのシンボリック リンク (/usr/bin/java) を指定するだけです。(ちなみに、このインスタンスでは、javac コンパイラや java_ws について心配する必要はありません)。

# readlink -f /usr/bin/java

java は、次のディレクトリにあります。

# ln -s /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java /usr/bin/java

# java -version

Javaバージョン「1.6.0_31」

これは問題ありません。私が見る限りでは、正常に動作しています。

Solaris では、pkg メディエーター ツールを使用してこれを行う便利な方法があります。

myHost# pkg mediator -H java

Java システム 1.7 システム

Java を 1.7 から 1.6 に変更するには:

pkg set-mediator -V 1.6 java

変更を確認するには

myHost# pkg mediator -H java

Java ローカル 1.6 システム

同等のものがあるのだろうかapt? あるいは、Java バージョンを切り替えるより簡単な方法はあるのだろうか?

編集:これはPythonにも当てはまる可能性があるので、Java固有の回答を求めているわけではありません。

答え1

インストールされたソフトウェアの複数のバージョンを切り替える正しい方法は、次のとおりです。

sudo update-alternatives --config <package>

したがって、Java の場合は、以下を実行する必要があります。

sudo update-alternatives --config java

インストールされているバージョンが返されます。私の場合は次のとおりです。

There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-7-oracle/jre/bin/java          1053      auto mode
  1            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1051      manual mode
  2            /usr/lib/jvm/java-7-oracle/jre/bin/java          1053      manual mode

バージョンを切り替えるには、selection切り替えたいバージョンに応じて、この場合は 0、1、2 などを入力します。

ただし、python の場合、python2 と python3 は代替ではないため、このオプションは見つかりません。そのため、エイリアスを作成する必要があります。

したがって、python が python バージョン 2.xx を参照し、python3 が python バージョン 3.xx を参照するようにしたい場合は、~/.bash_aliasesファイルを開いて次のように入力します。

alias python=`/usr/bin/python`
alias python3=`/usr/bin/python3`

これまでにエイリアスを作成したことがない場合は、このファイルは空でも問題ありません。エイリアスを逆にしたい場合、つまり python が python3 を参照し、python2 が python2 を参照したい場合、エイリアスは必要に応じて調整できます。

ご覧のとおり、インストールされているバージョンが互いの代替であるかどうかによって異なります。代替である場合は を使用できますがupdate-alternatives、そうでない場合は、エイリアスまたはソフトリンクを使用して調整する必要があります。より優れた、よりクリーンなソリューションがあるかもしれませんが、私はそれらを知りません。

関連情報