41 votes

Trouver tous les packages installés par l'utilisateur

Existe-t-il un moyen d'obtenir une liste de tous les paquets installés par l'utilisateur sur un système Ubuntu, c'est-à-dire les paquets qui ont été installés en plus des paquets installés par défaut ?

(L'idée est d'obtenir une liste complète qui peut être utilisée pour installer les mêmes paquets sur une nouvelle installation propre d'Ubuntu)

18voto

Mark Points 251

Regardez ces fichiers,

  1. '/var/log/installer/initial-status.gz' -- votre installation principale
    • la date de ce fichier serait votre date d'installation (je pense)
    • '/var/log/dpkg.log' chronologie des mises à jour (c'est ce que vous voulez)
    • '/var/log/apt/term.log' -- choses que apt a mises à jour sur votre système
    • '/var/cache/apt/archives/' contiendra les paquets deb téléchargés pour l'installation

Mise à jour : utilisez les deux étapes suivantes pour obtenir la liste exacte des nouvelles installations:

  1. exécutez: grep -w install /var/log/dpkg.log > full-list.log
  2. Regardez les lignes au-delà de l'horodatage /var/log/installer/initial-status.gz

Comme vous souhaitez obtenir une installation propre sur un autre système avec ces paquets, vous pourriez même copier les fichiers 'deb' du chemin 'cache/apt/archives' vers celui de la nouvelle installation et les installer en une seule fois (sans les télécharger à nouveau).

11voto

geekosaur Points 11085

Just for grins, I put together a one-liner (here split for clarity) that figures out packages manually installed, excluding those installed initially and any packages automatically installed:

comm -13 \
  <(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^Package: //p' | sort) \
  <(comm -23 \
    <(dpkg-query -W -f='${Package}\n' | sed 1d | sort) \
    <(apt-mark showauto | sort) \
  )

This works both in bash and in zsh.

4voto

Basé sur les informations ci-dessus, j'ai écrit un court script Python pour lister les packages qui ont été installés manuellement. Voir ce lien.

N'hésitez pas à l'utiliser même si je n'assume aucune responsabilité. Cependant, les commentaires et les suggestions sont toujours les bienvenus.

2voto

Vérifiez ma réponse ici à une question connexe: Comment puis-je afficher la liste de tous les packages installés sur mon système Debian?. Certaines des autres réponses à la question contiennent également des suggestions intéressantes pour obtenir une telle liste.

Cette question devrait être marquée comme un doublon puisque la question précédente couvre également cette question, mais il peut être utile d'avoir cette question pour qu'elle se démarque afin de faciliter sa recherche.

1voto

Arthur Summers Points 11

C'est un bricolage, mais ça fonctionne complètement.

Tout d'abord, allez sur http://releases.ubuntu.com/maverick/ (ou n'importe quelle version d'Ubuntu que vous utilisez) et téléchargez le fichier *.manifest associé à la version d'Ubuntu que vous utilisez.

Ensuite, exécutez le script suivant (en remplaçant , crochets d'angle inclus, par le chemin du fichier que vous avez téléchargé. Vous pouvez toujours ajouter > output à la fin pour générer un fichier de sortie.

diff --suppress-common-lines <(sed 's/ .*//' ) <(dpkg --get-selections | sed 's/[ \t].*//') | grep '>' | sed 's/[>] //'

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X