50 votes

Comment trouver les paquets installés manuellement ?

J'ai installé une Ubuntu 10.10 sur mon ordinateur et j'ai installé quelques logiciels via apt-get. La semaine dernière, j'ai réussi à tout casser et à repartir de zéro, et je dois réinstaller mes logiciels. Y a-t-il un moyen de créer une liste avec tous les paquets que j'ai installés manuellement ?

Ainsi, j'obtiendrais une liste du type texlive, ... et non texlive, texlive-dep1, textlive-dep2, ... et tous les paquets standard ont été supprimés ?

Si je pouvais savoir quels sont les programmes que j'ai supprimés de l'installation normale, ce serait génial aussi !


Mise à jour 2015-05-23 : J'utilise maintenant Ansible comme gestion de configuration sur mes systèmes. J'y spécifie les paquets à installer. Cela sert l'objectif, installer tous les programmes sur un système frais, encore mieux. Donc cette question pourrait être l'entrée dans une gestion de configuration légère.

24voto

Jon Sagara Points 697

Avec cette suggestion, je suppose que votre ancienne installation démarrera toujours !

Pour répliquer un ensemble de paquets sur une autre machine :

Sur le système A, exécutez :

dpkg --get-selections | grep -v deinstall > my-selections

Déplacer le my-selections vers le système B.

Sur le système B, exécutez :

dpkg --set-selections < my-selections

et ensuite :

sudo apt-get dselect-upgrade

Note importante : si vous avez installé des paquets à partir de dépôts non standard et/ou de PPA, vous devrez également copier /etc/apt/sources.list et le contenu de /etc/apt/sources.list.d/ du système A vers le système B avant d'exécuter la mise à niveau.

Vous pouvez utiliser dpkg pour voir ce que vous avez supprimé (NB : ceci inclura également les paquets que vous avez installés manuellement et supprimée) :

dpkg --get-selections | grep deinstall

Vous pouvez voir vos résultats dans le terminal ou, bien sûr, les rediriger vers un fichier.

20voto

Jason Points 301

Le présent fil de superuser.com donne cette solution :

aptitude search '?installed ?not(?automatic)'

12voto

Mzzzzzz Points 221

Si vos journaux apt se trouvent dans /var/log/apt, quelque chose comme ceci devrait fonctionner :

gunzip -c /var/log/apt/history.log.*.gz | grep "apt-get install"

Ou si vous souhaitez vous débarrasser de certains éléments répétitifs dans la sortie :

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

6voto

rduplain Points 5378

Vous pouvez utiliser marque d'apt mais je recommande debfoster :

sudo apt-get install debfoster
sudo debfoster

Cela permet d'inspecter tous les paquets installés et de déterminer ceux qui empêchent les autres d'être installés :

texlive-full is keeping the following 161 packages installed:
  cm-super cm-super-minimal context doc-base dvipng feynmf
  fonts-gfs-artemisia fonts-gfs-baskerville fonts-gfs-bodoni-classic
  ...
Keep texlive-full? [Ynpsiuqx?], [H]elp:

Au fur et à mesure que vous répondez "y" à chaque question (appuyez sur Entrée pour aller plus vite), debfoster récupère la liste des paquets et les écrit ligne par ligne dans un fichier. Par défaut, ce fichier se trouve à /var/lib/debfoster/keepers . Il se présente comme suit :

gnome-do
texlive-full
...

Je configure debfoster via /etc/debfoster.conf pour mettre cette liste à /etc/debfoster-keepers et suivre le fichier avec etckeeper pour conserver l'historique et les sauvegardes. Les réponse ici montre comment installer une liste de paquets à partir d'un fichier texte délimité par des lignes :

sudo apt-mark manual $(cat debfoster-keepers)

Notez une limitation ici, les paquets que vous avez purgés ont un "-" devant eux. Vous devez donc supprimer ces lignes avant d'appeler apt-mark.

Même si la Site web de debfoster dit que debfoster est déprécié au profit d'aptitude, je préfère la rapidité et la simplicité de configuration de debfoster. Il vous place au milieu de votre base de données de paquets et vous permet de nettoyer les choses, en rendant l'option automobile et manuel plus évidentes.

Tapez "h" à l'invite de debfoster pour expliquer vos options. Tapez " ?" pour voir la description du paquet. L'option comment ici peut s'avérer utile.

6voto

Xan Points 450
comm -23 <(apt-mark showmanual | sort -u) <(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^Package: //p' | sort -u)

Donne tous les paquets installés manuellement (pas les paquets système, ni les dépendances). Par exemple, il indique build-essential mais pas gcc .

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