web-dev-qa-db-fra.com

Existe-t-il un moyen de répertorier toutes les «alternatives» configurables (liens symboliques pour des commandes similaires) sur le système?

La commande alternatives (package chkconfig) sur RHEL/Fedora gère les liens symboliques qui lient un nom générique à l'une des implémentations alternatives. Par exemple, mta groupe de liens symboliques peut être fourni par Sendmail et Postfix (pour implémenter la commande sendmail, par exemple):

alternatives --display mta

Alors que je peux --display un groupe de liens symboliques, je dois d'abord deviner son nom (c'est-à-dire mta).

Puis-je simplement lister tous les groupes de liens symboliques configurables possibles (comme mta) parmi lesquels choisir?

La raison en est que j'oublie parfois certains noms de groupe.

27
uvsmtid

La réponse exacte est:

ls /var/lib/alternatives

Répertoire /etc/alternatives maintient une longue liste plate de tous les liens symboliques mélange maîtres et esclaves ensemble. Les liens symboliques esclaves ne peuvent pas être utilisés avec alternatives --display [symlink] commande.

En même temps répertoire /var/lib/alternatives contient des informations d'état (y compris la relation maître-esclave) pour chaque groupe dans abrégé liste des noms de fichiers tous qui peuvent être directement utilisés avec --display option. Par exemple, /var/lib/alternatives/Java:

alternatives --display Java
16
uvsmtid

Sur Debian (mais pas Fedora ou RHEL), pour voir une liste de tous les "noms alternatifs principaux":

update-alternatives --get-selections

--get-selections liste les noms alternatifs des maîtres et leur statut.

Et pour chacun de ceux répertoriés, vous pouvez exécuter --list $ALTERNATIVE_NAME, par exemple.

update-alternatives --list editor

--list name Afficher toutes les cibles du groupe de liens.

Si vous souhaitez voir une liste de toutes les alternatives dans leurs groupes respectifs, vous pouvez exécuter ce qui suit dans fish Shell:

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

La syntaxe (ba | z)? Sh devrait être quelque chose de similaire.

Pour modifier les alternatives, exécutez Sudo update-alternatives --config $ALTERNATIVE_NAME

29
kzh

La réponse la plus simple serait ...

ls /etc/alternatives
4
Michael Hampton

Sur Ubuntu 12.04 (peut-être aussi certaines versions antérieures, à vérifier) ​​et probablement Debian aussi (à vérifier):

ls /var/lib/dpkg/alternatives

Listez-le juste pour obtenir des noms alternatifs configurables, car les entrées de ce répertoire ne sont pas des liens. Soit dit en passant, il peut y avoir un fichier compressé dans ce répertoire, de sorte que les noms qui y sont répertoriés ne peuvent pas toujours être utilisés tels quels. Ex. J'ai un /var/lib/dpkg/alternatives/psql.1.gz

0
Hibou57