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命令的时候,所有的版本都被显示出来。