电商网站制作流程,重庆搜索引擎推广公司,企业做网站推广产品需要多少钱,房地产开发网站建设linux软件版本管理命令update-alternatives使用详解update-alternatives 命令用于处理linux系统中软件版本的切换#xff0c;在各个linux发行版中均提供了该命令#xff0c;命令参数略有区别#xff0c;但大致是一样的。1、 注册软件以jdk为例#xff0c;安装了jdk以后在各个linux发行版中均提供了该命令命令参数略有区别但大致是一样的。1、 注册软件以jdk为例安装了jdk以后先要在update-alternatives工具中注册?12# update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_91/bin/java 200# update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_111/bin/java 300其中:第一个参数--install表示向update-alternatives注册服务名。第二个参数是注册最终地址成功后将会把命令在这个固定的目的地址做真实命令的软链以后管理就是管理这个软链( --install link name path priority)其中link为系统中功能相同软件的公共链接目录比如/usr/bin/java(需绝对目录);name为命令链接符名称,如java path为你所要使用新命令、新软件的所在目录 priority为优先级当命令链接已存在时需高于当前值因为当alternative为自动模式时,系统默认启用priority高的链接;# 整数 根据版本号设置的优先级(更改的优先级需要大于当前的)第三个参数服务名以后管理时以它为关联依据。第四个参数被管理的命令绝对路径。第五个参数优先级数字越大优先级越高。2、查看已注册列表?123456# update-alternatives --display javajava - status is auto.link currently points to/opt/install/jdk1.8.0_111/bin/java/opt/install/jdk1.8.0_91/bin/java - priority 200/opt/install/jdk1.8.0_111/bin/java - priority 300Current best version is/opt/install/jdk1.8.0_111/bin/java.3、 修改命令版本注意--display开关使用时第一行信息?1java - auto/manual mode默认为自动版本根据优先级使用优先级高的。下面手动修改为jdk1.8.0_91交互式修改交互式会提示一所有可用的列表 选择对应的索引确认。?12345678910111213141516171819202122# update-alternatives --config javaThere are 2 programswhich providejava.Selection Command-----------------------------------------------1/opt/install/jdk1.8.0_91/bin/java* 2/opt/install/jdk1.8.0_111/bin/javaEnter to keep the current selection[], ortype selection number: 1# java -versionjava version1.8.0_91Java(TM) SE Runtime Environment (build 1.8.0_91-b14)Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)# update-alternatives --display javajava - status is manual.link currently points to/opt/install/jdk1.8.0_91/bin/java/opt/install/jdk1.8.0_91/bin/java - priority 200/opt/install/jdk1.8.0_111/bin/java - priority 300Current best version is/opt/install/jdk1.8.0_111/bin/java.看到当前状态变成了manual。修改为自动?123456789101112# update-alternatives --auto java# java -versionjava version1.8.0_111Java(TM) SE Runtime Environment (build1.8.0_111-b14)Java HotSpot(TM)64-Bit Server VM (build25.111-b14, mixed mode)# update-alternatives --display javajava - status is auto.link currently points to /opt/install/jdk1.8.0_111/bin/java/opt/install/jdk1.8.0_91/bin/java - priority200/opt/install/jdk1.8.0_111/bin/java - priority300Current best version is /opt/install/jdk1.8.0_111/bin/java.又改为按照优先级高的了。立即修改除了交互式修改也可以使用一条命令直接修改修改后立即生效。?1# update-alternatives --set java /opt/jdk1.8.0_91/bin/java该情形适用于你对路径很熟悉或者你已经进入了该路径?12# cd /opt/jdk1.8.0_91/bin/# update-alternatives --set java $PWD/java4、 update-alternatives是偏门命令吗可能你觉得这个命令很偏门用处不大但实际上在linux中早已被大量的使用。我们来挖掘一下先看看我们注册的java做了什么?123456789101112# ls -l /usr/bin/javalrwxrwxrwx 1 root root 22 Jan 16 01:45/usr/bin/java -/etc/alternatives/java*# ls -l /etc/alternatives/total 12drwxr-xr-x 2 root root 4096 Jan 16 01:57 ./drwxr-xr-x 95 root root 4096 Jan 16 01:41 ../lrwxrwxrwx 1 root root 13 Dec 2 12:40awk -/usr/bin/gawk*lrwxrwxrwx 1 root root 29 Dec 2 12:40awk.1.gz -/usr/share/man/man1/gawk.1.gzlrwxrwxrwx 1 root root 38 Dec 2 12:38 builtins.7.gz -/usr/share/man/man7/bash-builtins.7.gzlrwxrwxrwx 1 root root 12 Jan 12 02:04 c -/usr/bin/g*...首先可以看到我们的/usr/bin/java是一个软链 它连接到/etc/alternatives目录中的另一个软链。而/etc/alternatives中有很多软链这里只列出了一部分。看到awk了吧来看看它有哪些版本?12345678910111213141516# update-alternatives --display awkawk - auto modelink best version is/usr/bin/gawklink currently points to/usr/bin/gawklinkawk is/usr/bin/awkslaveawk.1.gz is/usr/share/man/man1/awk.1.gzslave nawk is/usr/bin/nawkslave nawk.1.gz is/usr/share/man/man1/nawk.1.gz/usr/bin/gawk - priority 10slaveawk.1.gz:/usr/share/man/man1/gawk.1.gzslave nawk:/usr/bin/gawkslave nawk.1.gz:/usr/share/man/man1/gawk.1.gz/usr/bin/mawk - priority 5slaveawk.1.gz:/usr/share/man/man1/mawk.1.gzslave nawk:/usr/bin/mawkslave nawk.1.gz:/usr/share/man/man1/mawk.1.gz5、管理软件包开始我们以java为例作为jre运行环境可以但如果你作为开发测试环境你会发现javac找不到。?12# javac-bash: javac:command not found原因是我们只对java命令做了版本管理。事实上update-alternatives的原理是软链管理可以处理目录。那么我们就可以把整个软件包目录都纳入管理。首先清理掉原来配置的java命令配置。?12# update-alternatives --remove java /opt/jdk1.8.0_91/bin/java# update-alternatives --remove java /opt/jdk1.8.0_111/bin/javaubuntu里可以直接使用下面的全部清除centos没有?1# update-alternatives --remove-all java注册javahome管理?123456789101112# update-alternatives --install /usr/local/jdk jdk /opt/jdk1.8.0_111 300update-alternatives: using/opt/jdk1.8.0_111 to provide/usr/local/jdk (jdk)in auto mode# update-alternatives --install /usr/local/jdk jdk /opt/jdk1.8.0_91 200# update-alternatives --display jdkjdk - auto modelink best version is/opt/jdk1.8.0_111link currently points to/opt/jdk1.8.0_111link jdk is/usr/local/jdk/opt/jdk1.8.0_111 - priority 300/opt/jdk1.8.0_91 - priority 200配置jdk环境变量指向注册的软链地址。?123# echo export JAVA_HOME/usr/local/jdk ~/.bash_profile# echo export PATH$PATH:$JAVA_HOME/bin ~/.bash_profile# source ~/.bash_profile管理JAVA_HOME?123456789101112131415161718192021222324252627282930313233# echo $JAVA_HOME/usr/local/jdk# java -versionjava version1.8.0_111Java(TM) SE Runtime Environment (build 1.8.0_111-b14)Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)# javac -versionjavac 1.8.0_111# update-alternatives --config jdkThere are 2 choicesfor the alternative jdk (providing/usr/local/jdk).Selection Path Priority Status------------------------------------------------------------* 0/opt/jdk1.8.0_111 300 auto mode1/opt/jdk1.8.0_111 300 manual mode2/opt/jdk1.8.0_91 200 manual modePress to keep the current choice[*], ortype selection number: 2update-alternatives: using/opt/jdk1.8.0_91 to provide/usr/local/jdk (jdk)in manual mode# echo $JAVA_HOME/usr/local/jdk# java -versionjava version1.8.0_91Java(TM) SE Runtime Environment (build 1.8.0_91-b14)Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)# javac -versionjavac 1.8.0_91感谢阅读希望能帮助到大家谢谢大家对本站的支持