Comment répertorier les programmes fournis avec ma distribution et ceux que j'ai installés manuellement?
Comment répertorier les programmes fournis avec ma distribution et ceux que j'ai installés manuellement?
Réponses:
Cela dépend de votre distribution.
dpkg -l
rpm -qa
pkg_info
equery list
oueix -I
pacman -Q
cygcheck --check-setup --dump-only *
slapt-get --installed
Tous ceux-ci listeront les paquets plutôt que les programmes . Si vous voulez vraiment lister les programmes, vous voudrez probablement lister les exécutables dans votre $PATH
, ce qui peut être fait comme ça, en utilisant bash compgen
:
compgen -c
Ou, si vous n'avez pas compgen
:
#!/bin/bash
IFS=: read -ra dirs_in_path <<< "$PATH"
for dir in "${dirs_in_path[@]}"; do
for file in "$dir"/*; do
[[ -x $file && -f $file ]] && printf '%s\n' "${file##*/}"
done
done
rpm -qa
dkpg -l | grep ^ii
.
Répondant à la deuxième partie de la question (rien à ajouter à la réponse de Chris pour la première partie) :
Il n’existe généralement aucun moyen de répertorier les programmes installés manuellement et leurs composants. Ceci n'est enregistré nulle part si vous n'avez pas utilisé de gestionnaire de paquets. Tout ce que vous pouvez faire est de trouver les fichiers binaires dans des emplacements standard (comme Chris l'a suggéré) et, de la même manière, de deviner d' où proviennent certaines bibliothèques, certaines pages de manuel, etc. C'est pourquoi, chaque fois que cela est possible, vous devez toujours installer des programmes à l'aide de votre gestionnaire de paquets .
Les programmes doivent être accessibles via le PATH, il suffit donc de tout lister dans le chemin:
ls ${PATH//:/ }
Attendez-vous à un résultat d'environ 3k à 4k programmes.
Pour exclure une minorité probable de faux positifs, vous pouvez affiner l'approche:
for d in ${PATH//:/ } ; do
for f in $d/* ; do
test -x $f && test -f $f && echo $f
done
done
Cela n'a pas fait de différence pour moi.
$PATH
, etc.).
Toutes les autres réponses (jusqu'à présent) concernent les packages et les fichiers binaires. Si vous parlez des "applications de bureau", celles qui apparaissent dans votre menu Démarrer, vous pouvez essayer:
ls /usr/share/applications | awk -F '.desktop' ' { print $1}' -
Plus de solutions dans une autre question .