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就可以了,多版本时会有其他的序号。

 

posted @ 2018-11-08 08:38  葫芦杯  阅读(1089)  评论(0编辑  收藏  举报