Linux的alternatives命令替换自带软件版本或选择软件版本
一、命令说明
alternatives是专门维护系统命令链接符的工具,其可以对某个工具的多个软件版本进行管理,通过它可以很方便的设置系统默认使用哪个命令的哪个软件版本
alternatives和update-alternatives其实一个命令,均指向alternatives
usage: alternatives --install <link> <name> <path> <priority> [--initscript <service>] [--slave <link> <name> <path>]* alternatives --remove <name> <path> alternatives --auto <name> alternatives --config <name> alternatives --display <name> alternatives --set <name> <path> common options: --verbose --test --help --usage --version --altdir <directory> --admindir <directory> 其中, install表示安装 link是符号链接 name则是标识符 path是执行文件的路径 priority则表示优先级
二、java安装示例
alternatives --install /usr/bin/java java /usr/java/default/bin/java 200 alternatives --set java /usr/java/default/bin/java alternatives --install /usr/bin/javac javac /usr/java/default/bin/javac 200 alternatives --set javac /usr/java/default/bin/javac
查看链接
[root@elephant default]# ls -l /usr/bin/java lrwxrwxrwx. 1 root root 22 Nov 8 08:23 /usr/bin/java -> /etc/alternatives/java [root@elephant default]# ls -l /etc/alternatives/java lrwxrwxrwx. 1 root root 26 Nov 8 08:23 /etc/alternatives/java -> /usr/java/default/bin/java
三、原理说明
系统路径/usr/bin/<name>这个软链接,指向了/etc/alternatives/<name>这个软链接,该软链接指向了该<name>命令的实际可执行文件;
上面例子通过两次软链接,我们可以定位到实际的java文件;
四、版本管理
alternatives版本的管理是通过改变/etc/alternatives/ --> /实际可执行文件 的软链接来进行的。
[root@elephant default]# alternatives --config java There is 1 program that provides 'java'. Selection Command ----------------------------------------------- *+ 1 /usr/java/default/bin/java Enter to keep the current selection[+], or type selection number:
输入Selection下面的+号就可以实现版本的选择了,由于只安装了一个版本,所以选择1就可以了,多版本时会有其他的序号。