update-alternatives 是一个用于管理符号链接的工具,允许在多个版本的可执行文件、库、手册页等之间进行选择。以下是一些常用的 update-alternatives 命令和它们的用途:

安装新替代项

sudo update-alternatives --install <link> <name> <path> <priority>
  • <link>:这是主符号链接的路径,用户最终使用的命令。
  • <name>:这是替代项组的名字,标识一组相关的替代项。
  • <path>:这是具体的替代项路径,即指向的具体文件或可执行文件。
  • <priority>:这是替代项的优先级,数值越高优先级越高。

示例:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.9 2

这会创建一个名为 python 的替代项组,并添加两个替代项。默认情况下,由于 3.9 的优先级更高,/usr/bin/python 将指向 /usr/bin/python3.9

显示当前的替代项配置

update-alternatives --display <name>
  • <name>:替代项组的名字。

示例:

update-alternatives --display python

这会显示名为 python 的替代项组的详细信息,包括当前的符号链接路径和所有可用的替代项。

手动选择替代项

sudo update-alternatives --config <name>
  • <name>:替代项组的名字。

示例:

sudo update-alternatives --config python

这会列出所有可用的替代项,并允许你手动选择一个替代项作为默认值。

更新替代项

sudo update-alternatives --set <name> <path>
  • <name>:替代项组的名字。
  • <path>:具体的替代项路径。

示例:

sudo update-alternatives --set python /usr/bin/python3.8

这会将名为 python 的替代项组的符号链接设置为 /usr/bin/python3.8

删除替代项

sudo update-alternatives --remove <name> <path>
  • <name>:替代项组的名字。
  • <path>:具体的替代项路径。

示例:

sudo update-alternatives --remove python /usr/bin/python3.8

这会从 python 替代项组中移除 /usr/bin/python3.8

完整示例

假设你想管理 python 命令的多个版本:

  1. 安装不同的 Python 版本:
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 2
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.9 3
  1. 查看当前配置:
update-alternatives --display python
  1. 手动选择默认版本:
sudo update-alternatives --config python
  1. 设置特定版本为默认:
sudo update-alternatives --set python /usr/bin/python3.8
  1. 移除某个版本:
sudo update-alternatives --remove python /usr/bin/python2.7

通过这些命令,你可以方便地管理系统中多个版本的软件,并根据需要切换默认版本。