alternatives命令用于管理linux系统中多版本软件的符号链接,解决手动切换版本的麻烦;2. 核心操作包括:使用--install注册新版本并设置优先级,--config交互式切换版本,--display查看当前配置状态;3. 工作原理是通过/usr/bin下的主链接指向/etc/alternatives中的次级链接,再指向实际程序路径;4. 常见问题如版本未更新可清除shell缓存(hash -r),未注册版本需先执行--install,移除版本用--remove,手动选择后进入手动模式避免自动切换。该工具通过标准化机制实现多版本软件的灵活、可靠管理,最终确保系统级的版本切换准确生效。

管理多版本软件包,比如系统里同时装了JDK 8和JDK 11,或者Python 2和Python 3,
alternatives
alternatives
/usr/bin
/bin
/etc/alternatives
要使用
alternatives
注册一个新版本(--install
alternatives
--install
alternatives --install <link> <name> <path> <priority>
<link>
/usr/bin
/bin
/usr/bin/java
<name>
alternatives
java
<path>
/usr/lib/jvm/java-11-openjdk-amd64/bin/java
<priority>
示例: 假设你安装了OpenJDK 8和OpenJDK 11,想让
alternatives
java
sudo alternatives --install /usr/bin/java java /usr/lib/jvm/java-8-openjdk-amd64/bin/java 80 sudo alternatives --install /usr/bin/java java /usr/lib/jvm/java-11-openjdk-amd64/bin/java 110
这里,
java
80
110
切换版本(--config
--config
alternatives --config <name>
name
sudo alternatives --config java
执行后,你会看到一个列表,类似这样:
There are 2 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 110 auto mode 1 /usr/lib/jvm/java-8-openjdk-amd64/bin/java 80 manual mode Press <enter> to keep the current choice[*], or type selection number:
输入对应的数字就可以切换了。
查看当前状态(--display
alternatives
--display
alternatives --display <name>
alternatives --display java
这会显示
java
alternatives
说实话,在没有
alternatives
PATH
/usr/bin
alternatives
java
alternatives --config java
alternatives
理解
alternatives
--install
--config
--display
--install
alternatives
--install <主链接路径> <替代品组名> <实际程序路径> <优先级>
<主链接路径>
/usr/bin/java
/usr/bin/python
<替代品组名>
alternatives
java
python
gcc
<实际程序路径>
<优先级>
--config
最后,
--display
java
alternatives
java
alternatives --display java
alternatives
alternatives
PATH
/etc/alternatives/
/usr/bin
举个例子,当你配置
java
alternatives
/etc/alternatives/
java
java
/usr/lib/jvm/java-11-openjdk-amd64/bin/java
/usr/bin/java
/etc/alternatives/java
所以,当你执行
java -version
/usr/bin/java
/etc/alternatives/java
/etc/alternatives/java
/usr/lib/jvm/java-11-openjdk-amd64/bin/java
java
常见问题排查:
“切换了版本,但java -version
alternatives
java
hash -r
“执行alternatives --config <name>
No alternatives for <name>
--install
<name>
alternatives --install
“想移除一个不再需要的版本,怎么做?” 可以使用
alternatives --remove <name> <path>
sudo alternatives --remove java /usr/lib/jvm/java-8-openjdk-amd64/bin/java
alternatives
“alternatives
alternatives --config <name>
0
理解这些,你会发现
alternatives
以上就是如何管理多版本软件包 alternatives命令使用详解的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号