有没有办法列出系统上所有可配置的“ alternatives”(类似命令的符号链接)?


24

RHEL / Fedora上的alternatives命令(package chkconfig)管理符号链接,这些符号链接将通用名称链接到替代实现之一。例如,mta符号链接组可以由Sendmail和Postfix提供(以实现ie sendmail命令):

alternatives --display mta

虽然我可以使用--display一组符号链接,但我需要首先猜测其名称(即mta)。

我可以简单地列出所有可能的可配置符号链接组(例如mta)以供选择吗?

原因是我偶尔会忘记一些组名。

Answers:


25

在Debian(但不是Fedora或RHEL)上,查看所有“主备用名称”的列表:

update-alternatives --get-selections

--get-selections 列出主备选项名称及其状态。

对于列出的每个目录,您都可以运行--list $ALTERNATIVE_NAME,例如

update-alternatives --list editor

--list name 显示链接组的所有目标。

如果要查看各自组中所有替代项的列表,可以在fishshell中运行以下命令:

for alternative in (update-alternatives --get-selections)
    echo $alternative 
    update-alternatives --list (echo $alternative | cut -d" " -f1)
    echo
end | pager

(ba | z)?sh语法应该类似。

要更改替代方法,请运行 sudo update-alternatives --config $ALTERNATIVE_NAME


1
在我的Fedora 12上update-alternatives是一个符号链接alternatives/usr/sbin/update-alternatives -> alternatives。因此,选项--get-selections不显示任何内容(退出时显示使用错误)。
uvsmtid '16

1
我没有正确阅读问题。抱歉。这是给Debian的。我试图找到与您相同的东西,但我无法找到答案。我想知道是否应该删除答案吗?
kzh

由你决定。如果您认为在某些情况下是正确的,并且可能对其他人有用,那么就值得保留。
uvsmtid '16

16

确切的答案是:

ls /var/lib/alternatives

目录/etc/alternatives维护了主从服务器混合在一起的所有符号链接的简短列表。从站符号链接不能与alternatives --display [symlink]命令一起使用。

同时,目录/var/lib/alternatives缩短的文件名列表中包含每个组的状态信息(包括主从关系),所有这些信息都可以直接与--displayoption一起使用。例如/var/lib/alternatives/java

alternatives --display java

4
在Ubuntu 12.04上,/var/lib/alternatives似乎没有/var/lib/dpkg/alternatives
Hibou57 2014年

1
好答案,谢谢!一个补充:在Debian和Armbian上,/etc/alternatives而不是/var/lib/alternatives
Alexey Vesnin

4

最简单的答案是...

ls /etc/alternatives

1
当您已经知道答案时,它总是更加明显的:)
gparent

这也是我的第一个猜测。但这让我不满意。该列表太长,无法完全包含主链接和从链接。
uvsmtid

-1

在Ubuntu 12.04上(可能也需要检查一些以前的版本),在Debian上也可能要检查):

ls /var/lib/dpkg/alternatives

列出它只是为了获得可配置的替代名称,因为此目录中的条目不是链接。顺便说一句,此目录中可能有压缩文件,因此在此列出的名称不能总是按原样使用。例如 我有一个/var/lib/dpkg/alternatives/psql.1.gz


并没有真正的帮助,因为该问题明确指出它适用于RedHat Enterprise Linux。在其他答案中正确介绍了RHEL的配置方式。
Kosi2801 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.