システム上のすべての設定可能な「代替案」(同様のコマンドのシンボリックリンク)をリストする方法はありますか?


24

RHEL / Fedora のalternativesコマンド(パッケージchkconfig)は、一般的な名前を代替実装の1つにリンクするシンボリックリンクを管理します。たとえばmta、シンドリンクのグループは、SendmailとPostfixによって提供されます(つまり、sendmailコマンドを実装するため)。

alternatives --display mta

--displayシンボリックリンクのグループを作成できますが、最初にその名前を推測する必要があります(例:)mta

選択可能なすべての設定可能なシンボリックリンクグループ(などmta)を単純にリストできますか?

その理由は、時々いくつかのグループ名を忘れてしまうからです。

回答:


25

Debian(ただしFedoraまたはRHELではない)で、すべての「マスター代替名」のリストを表示するには:

update-alternatives --get-selections

--get-selections マスターの代替名とそのステータスをリストします。

そして、リストされたそれらのそれぞれに対して--list $ALTERNATIVE_NAME、例えば

update-alternatives --list editor

--list name リンクグループのすべてのターゲットを表示します。

それぞれのグループのすべての選択肢のリストを表示したい場合は、fishシェルで次を実行できます。

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。そのため、option --get-selectionsは何も表示しません(使用法を示すエラーで終了します)。
uvsmtid

1
質問を適切に読みませんでした。ごめんなさい。これはDebian用です。私はあなたと同じものを見つけようとしていましたが、この答えに追いつくことはできません。回答を削除する必要があるのでしょうか?
kzh

あなた次第。ある状況下でそれが正しいと思い、他の誰かに役立つかもしれないと思うなら、そのままにしておく価値があります。
uvsmtid

16

正確な答えは次のとおりです。

ls /var/lib/alternatives

ディレクトリに/etc/alternativesマスターとスレーブが混在するすべてのシンボリックリンクのフラットな長いリストが保持されます。スレーブシンボリックリンクはalternatives --display [symlink]コマンドでは使用できません。

同時に、ディレクトリに/var/lib/alternativesは、ファイル名の短縮リスト内の各グループのステータス情報(マスタースレーブ関係を含む)が含まれます。これらはすべて--displayオプションで直接使用できます。例/var/lib/alternatives/java

alternatives --display java

4
Ubuntu 12.04では、ない/var/lib/alternativesよう/var/lib/dpkg/alternativesです。
Hibou57 14

1
すばらしい回答、ありがとう!1つの追加:DebianとArmbian /etc/alternativesでは、代わりに/var/lib/alternatives
Alexey

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 14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.