2014年9月3日星期三

Linux_086:常用命令之二十五:update-alternatives


update-alternatives 是用于在多个同类型命令中进行切换的一个脚本。

以RHEL 6.5 为例,来说明如何使用 update-alternatives。

运行:ls -l /usr/bin/java 
结果:lrwxrwxrwx. 1 root root 22 9月   1 23:02 /usr/bin/java -> /etc/alternatives/java
说明:java这个可执行命令实际是一个链接,指向了/etc/alternatives/java。

运行:ls -l /etc/alternatives/java 
结果:lrwxrwxrwx. 1 root root 46 9月   1 23:02 /etc/alternatives/java -> /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
说明:/etc/alternatives/java也是一个链接,指向了/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java,这才是最终的可执行文件。
之所以建立这样两个链接,是为了方便脚本程序的编写和系统的管理。

当我们安装了新的JDK时,特别是以解压缩的方式安装时,需要执行update-alternatives命令,切换到新安装的JDK。
以jdk-7u67-linux-x64.tar.gz为例,解压缩到/u01/app/java/jdk1.7.0_67后,
需要执行如下语句:
(1)sudo update-alternatives --install /usr/bin/java java /u01/app/java/jdk1.7.0_67/bin/java 300
(2)sudo update-alternatives --install /usr/bin/javac javac /u01/app/java/jdk1.7.0_67/bin/javac 300
(3)sudo update-alternatives --config java
(输入代表/u01/app/java/jdk1.7.0_67/bin/java 的数字)
(4)sudo update-alternatives --config javac
(输入代表/u01/app/java/jdk1.7.0_67/bin/javac 的数字)

如果有必要,还可以执行 sudo update-alternatives --remove 删除不正确的注册项。

参考文献:
1. http://paddy-w.iteye.com/blog/958062

没有评论: