linux之alternatives管理多版本软件

今天偶然间看到了/usr/sbin/alternatives这个东西,感觉很陌生。。。。。。于是学习了一番

简单来说,比如系统中安装了多个版本的jdk,那么怎么设置系统默认的Jdk呢?这个就是alternatives的功能。

 学习过程

1.首先在linux装了1.8版的java,它被作为系统默认的java


[root@localhost conf]# java -version
openjdk version "1.8.0_65"
OpenJDK Runtime Environment (build 1.8.0_65-b17)
OpenJDK 64-Bit Server VM (build 25.65-b01, mixed mode)

从下面也能看出,/usr/bin下的java,最终是对应到1.8的java上

[root@localhost conf]# ll /usr/bin/java
lrwxrwxrwx. 1 root root 22  7月 31 09:58 /usr/bin/java -> /etc/alternatives/java
[root@localhost conf]# ll /etc/alternatives/java
lrwxrwxrwx. 1 root root 70  7月 31 09:58 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64/jre/bin/java

2.安装1.7版的java,安装完后发现,默认的Java没有变,依然是1.8版的java

3.配置1.7版的java为默认版本

[root@localhost conf]# alternatives --config java

2 プログラムがあり 'java' を提供します。

  選択       コマンド
-----------------------------------------------
*+ 1           /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64/jre/bin/java
   2           /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64/jre/bin/java

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2

4.设置完成后,查看当前的默认版本

[root@localhost conf]# java -version
java version "1.7.0_91"
OpenJDK Runtime Environment (rhel-2.6.2.3.el7-x86_64 u91-b00)
OpenJDK 64-Bit Server VM (build 24.91-b01, mixed mode)
[root@localhost conf]# ll /usr/bin/java
lrwxrwxrwx. 1 root root 22  8月  3 15:00 /usr/bin/java -> /etc/alternatives/java
[root@localhost conf]# ll /etc/alternatives/java
lrwxrwxrwx. 1 root root 72  8月  3 15:00 /etc/alternatives/java -> /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64/jre/bin/java

总结,这个命令还有很多功能,没有一一的学习,比如注册功能,意思就是如果这个列表里面没有你想要的而且已经安装了的程序,就需要添加。

alternatives --install /usr/bin/java java /usr/java/default/bin/java 500

但是,从本次的实验来看,如果安装多个版本,安装的时候就被直接注册到alternatives里,所以当执行

alternatives --config java命令的时候,所有的版本都被显示出来。