Linux中的update-alternatives命令详解听语音

Linux中的update-alternatives命令详解

听语音

Linux 发展到今天,软件定期都会进行升级,现在java版本已经升级到JDK8.0,还有open-jdk各种版本。由于软件需要安装了很多java版本,又不想每次使用都去修改环境变量。Debian 提供了一种机制来解决这个问题,而 update-alternatives 就是用来实现这种机制的。这个命令会建立很软链接,当切换版本的时候,只需要更改软链接的指向。

Linux中的update-alternatives命令详解

工具/原料

  • VMware Workstation 12
  • ubuntu-14.04-desktop-amd64

查看已有的JAVA版本

  1. 1

    首先查看下本地java版本,使用java -version

    mec@mac:~$ java -version

    java version "1.6.0_45"Java(TM) SE Runtime Environment (build 1.6.0_45-b06)Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)

    Linux中的update-alternatives命令详解
  2. 2

    mec@mac:~$ which java      #which java命令查看java命令使用的可执行文件位置

    /usr/bin/javamec@mac:~$ ll /usr/bin/java    

    #查看命令的链接位置

    lrwxrwxrwx 1 root root 22  3月  1 22:36 /usr/bin/java -> /etc/alternatives/java

    Linux中的update-alternatives命令详解
  3. 3

    mec@mac:~$ ll /etc/alternatives/java    #最后查看到java命令可执行文件的实际位置

    lrwxrwxrwx 1 root root 39  4月 23 16:21 /etc/alternatives/java -> /usr/lib/jvm/java-6-oracle/jre/bin/java*

    Linux中的update-alternatives命令详解
  4. 4

    update-alternatives正如名字表达的意思一样,是可选择的更新

    查看,这个命令会建立很软链接,当切换版本的时候,只需要更改软链接的指向。

    sudo update-alternatives --display java

    可以看出当前java命令只有一个软链接,指向/usr/lib/jvm/java-6-oracle/jre/bin/java,命令的模式是自动auto,这时候会根据优先级匹配,priority 1既是优先级。

    Linux中的update-alternatives命令详解
  5. 5

    列出使用java命令的列表,现在只有一个,指出了命令的所在位置

    mec@mac:~$ sudo update-alternatives --list

    java/usr/lib/jvm/java-6-oracle/jre/bin/java

    Linux中的update-alternatives命令详解
    END

配置JAVA版本

  1. 1

    现在开始配置,我下载的JDK8在/home/mec/Android/jdk1.8.0_73。下载这个在这里就不细讲了,你也可以配置~/.bashrc或是/etc/profile中的环境变量。

    Linux中的update-alternatives命令详解
  2. 2

    由sudo update-alternatives --list java我们上面查看只有

    /usr/lib/jvm/java-6-oracle/jre/bin/java

    现在使用

    /usr/lib/jvm/java-6-oracle/jre/bin/java

    sudo update-alternatives --install /usr/bin/java java /home/mec/Android/jdk1.8.0_73/bin/java 300

    update-alternatives  --install link name path priority其中link为系统中功能相同软件的公共链接目录,比如/usr/bin/java(需绝对目录);name为命令链接符名称,如java path为你所要使用新命令、新软件的所在目录 priority为优先级,当命令链接已存在时,需高于当前值,因为当alternative为自动模式时,系统默认启用priority高的链接;# 整数 根据版本号设置的优先级(更改的优先级需要大于当前的)

    Linux中的update-alternatives命令详解
  3. 3

    现在使用sudo update-alternatives --list java查看下

    发现多了一项

    /home/mec/Android/jdk1.8.0_73/bin/java

    /usr/lib/jvm/java-6-oracle/jre/bin/java

    Linux中的update-alternatives命令详解
  4. 4

    sudo update-alternatives --config java

    There are 2 choices for the alternative java (providing /usr/bin/java).

    *号代表我们正在使用的。选择1后查看Java版本

    Linux中的update-alternatives命令详解
  5. 5

    mec@mac:~/Android/jdk1.8.0_73$ sudo update-alternatives --remove java

    /home/mec/Android/jdk1.8.0_73/bin/java    移除刚来配置的

    mec@mac:~/Android/jdk1.8.0_73$ java -version   测试下版本,发现又切换回来了1.6

    Linux中的update-alternatives命令详解
    END

注意事项

  • 一定要下载好JDK.
  • 搭建好linux环境




update-alternatives --install /usr/bin/java java /usr/local/jdk1.8.0_151/bin/java 1100  

update-alternatives --install /usr/bin/javac javac /usr/local/jdk1.8.0_151/bin/javac 1100 

其中/usr/local/jdk1.8.0_151/换成你自己的jdk的路径


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值