it-swarm.com.de

Gibt es eine Möglichkeit, alle konfigurierbaren "Alternativen" (Symlinks für ähnliche Befehle) auf dem System aufzulisten?

Der Befehl alternatives (Paket chkconfig) unter RHEL/Fedora verwaltet Symlinks, die einen generischen Namen mit einer der alternativen Implementierungen verknüpfen. Zum Beispiel kann eine Gruppe von Symlinks mta von Sendmail und Postfix bereitgestellt werden (um den Befehl sendmail zu implementieren):

alternatives --display mta

Während ich kann --display eine Gruppe von Symlinks, ich muss zuerst ihren Namen erraten (d. h. mta).

Kann ich einfach alle möglichen konfigurierbaren Symlink-Gruppen (wie mta) auflisten, aus denen ich auswählen kann?

Der Grund ist, dass ich gelegentlich einige Gruppennamen vergesse.

27
uvsmtid

Die genaue Antwort lautet:

ls /var/lib/alternatives

Das Verzeichnis /etc/alternatives Führt eine flache lange Liste aller Symlinks Mischen Master und Slaves zusammen. Slave-Symlinks können nicht mit dem Befehl alternatives --display [symlink] Verwendet werden.

Gleichzeitig enthält das Verzeichnis /var/lib/alternatives Statusinformationen (einschließlich Master-Slave-Beziehung) für jede Gruppe in gekürzt Liste der Dateinamen alle, von denen direkt sein kann Wird mit der Option --display verwendet. Zum Beispiel /var/lib/alternatives/Java:

alternatives --display Java
16
uvsmtid

Auf Debian (aber nicht Fedora oder RHEL), um eine Liste aller "alternativen Master-Namen" anzuzeigen:

update-alternatives --get-selections

--get-selections Listet alternative Master-Namen und deren Status auf.

Und für jede der aufgelisteten können Sie --list $ALTERNATIVE_NAME Ausführen, z.

update-alternatives --list editor

--list name Alle Ziele der Linkgruppe anzeigen.

Wenn Sie eine Liste aller Alternativen in ihren jeweiligen Gruppen sehen möchten, können Sie in fish Shell Folgendes ausführen:

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

Die (ba | z)? Sh-Syntax sollte ähnlich sein.

Führen Sie Sudo update-alternatives --config $ALTERNATIVE_NAME Aus, um die Alternativen zu ändern.

29
kzh

Die einfachste Antwort wäre ...

ls /etc/alternatives
4
Michael Hampton

Unter Ubuntu 12.04 (möglicherweise auch einige frühere Versionen, um überprüft zu werden) und wahrscheinlich auch Debian (zu überprüfen):

ls /var/lib/dpkg/alternatives

Listen Sie es nur auf, um konfigurierbare alternative Namen zu erhalten, da Einträge in diesen Verzeichnissen keine Links sind. Übrigens befindet sich möglicherweise eine komprimierte Datei in diesem Verzeichnis, sodass die dort aufgeführten Namen nicht immer so verwendet werden können, wie sie sind. Ex. Ich habe ein /var/lib/dpkg/alternatives/psql.1.gz

0
Hibou57