update-alternatives

update-alternatives #

用于维护命令软链接。 当一个命令有多个版本或多种实现时,可以使用此命令进行切换。

bash
# 添加记录
update-alternatives --install <link> <name> <path> <priority> [--slave <link> <name> <path>]...
# 例:
update-alternatives --install /usr/bin/pinentry pinentry /usr/local/bin/my-pinentry 100
# 备注:
# link    指向 /etc/alternatives/<name> 的主链接。
# name    链接组的名称
# path    主链接的其中一个备选文件的路径
# priority    若命令处于auto模式下,则priority值越高,优先级越高。
# 选项:
# --slave <link> <name> <path>    定义子链接。当主链接切换后,子链接会自动随之切换。可用于切换man帮助文档等。


# 移除记录
update-alternatives --remove <name> <path>
update-alternatives --remove-all <name>


# 切换为自动模式
update-alternatives --auto <name>


# 配置指定组链接。(显示该组选项并让用户选择)
update-alternatives --config <name>


# 切换指定组链接。(直接设置)
update-alternatives --set <name> <path>


# 显示指定组的详细信息
update-alternatives --display <name>
update-alternatives --query <name>

# 例:
update-alternatives --display editor
# Output:
editor - auto mode
  link best version is /bin/nano
  link currently points to /bin/nano
  link editor is /usr/bin/editor
  slave editor.1.gz is /usr/share/man/man1/editor.1.gz
  slave editor.fr.1.gz is /usr/share/man/fr/man1/editor.1.gz
  slave editor.it.1.gz is /usr/share/man/it/man1/editor.1.gz
  slave editor.ja.1.gz is /usr/share/man/ja/man1/editor.1.gz
  slave editor.pl.1.gz is /usr/share/man/pl/man1/editor.1.gz
  slave editor.ru.1.gz is /usr/share/man/ru/man1/editor.1.gz
/bin/ed - priority -100
  slave editor.1.gz: /usr/share/man/man1/ed.1.gz
/bin/nano - priority 40
  slave editor.1.gz: /usr/share/man/man1/nano.1.gz
/usr/bin/vim.basic - priority 30
  slave editor.1.gz: /usr/share/man/man1/vim.1.gz
  slave editor.fr.1.gz: /usr/share/man/fr/man1/vim.1.gz
  slave editor.it.1.gz: /usr/share/man/it/man1/vim.1.gz
  slave editor.ja.1.gz: /usr/share/man/ja/man1/vim.1.gz
  slave editor.pl.1.gz: /usr/share/man/pl/man1/vim.1.gz
  slave editor.ru.1.gz: /usr/share/man/ru/man1/vim.1.gz
/usr/bin/vim.tiny - priority 15
  slave editor.1.gz: /usr/share/man/man1/vim.1.gz
  slave editor.fr.1.gz: /usr/share/man/fr/man1/vim.1.gz
  slave editor.it.1.gz: /usr/share/man/it/man1/vim.1.gz
  slave editor.ja.1.gz: /usr/share/man/ja/man1/vim.1.gz
  slave editor.pl.1.gz: /usr/share/man/pl/man1/vim.1.gz
  slave editor.ru.1.gz: /usr/share/man/ru/man1/vim.1.gz
2024年5月16日