为什么/usr/bin/java链接到/usr/java/default/bin/java?

为什么/usr/bin/java链接到/usr/java/default/bin/java?,java,linux,alternate,Java,Linux,Alternate,我正在尝试使用java替代方案从1.8降级到java1.6。然而,尽管通过--set在备选方案中正确设置了该选项,java版本仍然返回1.8: Selection Command ----------------------------------------------- *+ 1 /usr/java/jre1.6.0_37/bin/java 2 /usr/java/jre1.8.0_66/bin/java java -version

我正在尝试使用java
替代方案
1.8
降级到java
1.6
。然而,尽管通过
--set
在备选方案中正确设置了该选项,java版本仍然返回
1.8

  Selection    Command
-----------------------------------------------
*+ 1           /usr/java/jre1.6.0_37/bin/java
   2           /usr/java/jre1.8.0_66/bin/java

java -version
java version "1.8.0_66"
再仔细观察就会发现,
/usr/bin/java
总是指向最新版本,因为:

ls -la /usr/bin/java 
lrwxrwxrwx 1 root root 26 Mar 31 11:27 /usr/bin/java -> /usr/java/default/bin/java

ls -la /usr/java/
total 20
drwxr-xr-x  4 root root 4096 Mar 31 11:30 .
drwxr-xr-x 16 root root 4096 Oct  7 11:41 ..
lrwxrwxrwx  1 root root   16 Mar 31 11:27 default -> /usr/java/latest
drwxr-xr-x  7 root root 4096 Mar 31 11:27 jre1.6.0_37
drwxr-xr-x  7 root root 4096 Mar 31 11:30 jre1.8.0_66
lrwxrwxrwx  1 root root   21 Mar 31 11:30 latest -> /usr/java/jre1.8.0_66
我曾在两个单独的RHEL 5.10/11系统上体验过这种情况。在CentOS上尝试复制时,我注意到
/usr/bin/java
链接到
/etc/alternations/java

回到我的RHEL系统,查看了
/etc/alternations/java

ls -la /etc/alternatives/
total 24
drwxr-xr-x  2 root root  4096 Mar 31 12:02 .
drwxr-xr-x 78 root root 12288 Sep 25  2012 ..
lrwxrwxrwx  1 root root    30 Mar 31 12:02 java -> /usr/java/jre1.6.0_37/bin/java
正如预期的那样,它链接到正确的版本,这意味着
/usr/bin/java
应该链接到
/etc/alternations/java


为什么这不是默认行为?是否只是将符号链接更改为“/etc/alternations/java”以管理降级

RPM包创建两个链接:
/usr/java/latest
/usr/java/default

  • /usr/java/latest
    链接将始终指向被视为最新版本的java版本。如果该软件包不是最新版本,则后续升级将覆盖该值

  • 默认情况下,
    /usr/java/default
    指向
    /usr/java/latest
    。但是,如果管理员更改
    /usr/java/default
    以指向另一个版本的java,则后续的包升级将由管理员提供,并且无法覆盖

  • 关于RHEL的替代方案,请遵循以下要求:

    你看过这个了吗?

    谢谢,但请解释一下为什么默认情况下
    /usr/bin/java
    指向最新版本,而不是“etc/alternations/java”?是否只是将符号链接更改为
    /etc/alternations/java
    以管理降级?关于突出显示的现有问题,我的问题是降级。升级按预期工作,并将其本地化为
    /usr/bin/java
    符号链接到的内容。