Comment puis-je obtenir une liste des packages que jai installés à laide dapt-get? [dupliquer]

Cette question a déjà des réponses ici :

Commentaires

  • les deux réponses ici mentionnent le history.log fichiers dans /var/log/apt/. Il est ' important de noter que, par défaut, logrotate est configuré pour ne conserver que les 12 derniers mois de ces fichiers. Il en va de même pour les fichiers the /dpkg.log dans /var/log (qui fournissent des informations similaires dans un format (IMO) plus facile à analyser). Modifiez /etc/logrotate.d/{apt,dpkg} pour modifier la politique de rétention de votre système.

Réponse

Vous pouvez lister les packages installés en utilisant apt en utilisant la commande suivante:

apt --installed list 

Modifier

Utilisez la commande suivante pour répertorier les packages installés via apt-get:

zcat /var/log/apt/history.log.*.gz | cat - /var/log/apt/history.log | grep -Po "^Commandline: apt-get install (?!.*--reinstall)\K.*" 

Source: Askubuntu

Commentaires

  • Comme vous lavez dit, il répertorie tous les packages installés. Je veux des packages que jai installés manuellement à laide des commandes apt-get.
  • @ user598200 – Pensez à accepter cette réponse. 🙂
  • Daprès cette réponse askubuntu , jarrive à (zcat $(ls -tr /var/log/apt/history.log*.gz); cat /var/log/apt/history.log) 2>/dev/null | egrep '^(Commandline: apt(-get)? install)' | grep -v aptdaemon | egrep '^Commandline:'
  • zgrep -hPo '^Commandline: apt-get install (?!.*--reinstall)\K.*' /var/log/apt/history.log{.*.gz,} produit la même sortie sans les zcat et cat inutiles. si vous ' ne vous souciez pas de lordre exact des noms de package dans la sortie, /var/log/apt/history.log* fera laffaire pour largument du nom de fichier.

Réponse

zgrep -h " install " /var/log/dpkg.log* | sort | awk "{print $4}" 

Cela vous donnera une liste de paquets qui ont été installés, dans lordre dans lequel ils ont été installés.

Selon mon commentaire, seuls les 12 derniers mois de fichiers /var/log/dpkg.log* sont conservés par défaut. Pour changer cela, modifiez /etc/logrotate.d/dpkg. Par exemple, remplacez rotate 12 par rotate 1200 pour conserver la valeur des 1200 derniers mois (100 ans) – effectivement pour toujours, ne supprimez jamais les anciens journaux.

BTW, si vous voulez voir quand les paquets ont été mis à jour, remplacez install par upgrade. par exemple

zgrep -h " upgrade " /var/log/dpkg.log* | sort 

idem pour remove et purge.

Réponse

Si vous souhaitez afficher uniquement une liste avec les packages que vous avez installé manuellement vous pouvez exécuter:

apt --installed list | grep -v automatic 

pour ne pas lister les paquets marqués comme installés automatiquement

-v, --invert-match Invert the sense of matching, to select non-matching lines. 

Une autre option qui « nexclut pas par erreur un package malheureux avec " automatique " dans son nom se trouve:

apt-mark showmanual 

Commentaires

  • Court et simple, et triés par ordre alphabétique.
  • Si par hasard un nom de package contient " automatic ", il sera filtré par grep.

Réponse

Cela repose sur aptitude, mais ce qui suit vous donnera un liste des pa ckages qui sont installés manuellement, cest-à-dire qui ne sont pas installés uniquement à cause dune dépendance:

aptitude search -F %p "~i!~M" 

En fonction de la configuration de limage, elle inclura probablement aussi certains installés par le système de base. Vous pouvez vous débarrasser dun bon nombre de ceux-ci en les activant automatiquement, puis marquez simplement comme manuels les quelques-uns que vous souhaitez conserver même si rien ne dépend deux. Cest facile à faire avec M à lintérieur de aptitude sur un système nu.

Réponse

Utilisez dpkg pour lister tous les packages installés sur un système: dpkg --get-selections

Pour lister tous les packages installés en utilisant apt-get regardez /var/log/apt/history.log. Ce journal contient également les packages que vous avez supprimés. Vous pouvez grep pour les lignes commençant par Install:.

Commentaires

  • Comme vous lavez dit, il répertorie tous les packages installés. Je veux des packages que jai installés manuellement à laide des commandes apt-get.
  • @ user598200 Ah. Merci davoir clarifié. Voir ma réponse modifiée. Je ne suis pas sûr que apt-get dispose de cette fonctionnalité. Mais chaque fois que vous installez quelque chose, il est ajouté au fichier journal que je mentionne dans la réponse.
  • Merci.Est-ce que je peux parcourir tous les fichiers /var/log/apt/history.log* et imprimer les noms des packages en un seul clic?
  • @ user598200 Vous pouvez utiliser grep. grep "Install: package" /var/log/apt/history.log*

Answer

Ubuntu 14.04 et supérieur utilise apt list --installed pour les anciennes versions, utilisez dpkg --get-selections | grep -v deinstall

Answer

Un peu plus court et trié

gunzip -c /var/log/apt/history.log.*.gz | grep "apt-get install" | cut -f4- -d" " | tr " " $"\n" | sort -u 

Commentaires

  • Quelques explications sur pourquoi mieux que la réponse donnée par @ GAD3R serait utile.
  • Tout dabord, il ' est plus court, la seconde de toutes les sorties est triée
  • Lidée sur U & L est que vous amélioriez votre réponse (ou question au cas où vous en auriez posté une) en éditant le post, au lieu de cacher des informations précieuses dans les commentaires. Comme je couperais et collerais la commande, les 26 octets de moins nest pas si intéressant, mais le fait que votre sortie soit triée appartient vraiment à la réponse elle-même. Si une telle amélioration était une réaction à une demande de clarification, un simple " a mis à jour ma réponse " comme commentaire le fera, le commentateur ( dans ce cas, moi) serai informé de ce commentaire. Je pense que cest aussi la raison pour laquelle quelquun a rejeté votre réponse.
  • Si vous voulez jouer au golf, essayez zgrep -Pho '(?<=apt-get install ).*' /var/log/apt/history.log.*.gz | tr ' ' $'\n' | sort -u.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *