Apt search ... [installé, automatique] : lister les installations (?)

Bonjour/bonsoir

Lorsque l’on utilise « apt search [ELEMENT] » on obtient une liste de paquets se rapportant à [ELEMENT]

Cette liste est détaillée avec la mention « [installé, automatique] » pour les paquets installés à l’installation du système.
Mention « [installé] » si le paquet a été installé après l’installe.

  • nb: « dpkg -l » permet de lister la totalité des paquets installé. On peut préféré l’utilisation de « ** dpkg --get-selections** » ou d’un « dpkg -l | grep apache » pour filtrer les paquets se rapportant à Apache.

Comment puis filtrer de tel sorte à sortir les paquets installé à cette date (après installation) pour avoir d’un coté ceux qui sont [installé, automatique] et ceux que j’ai personnellement installé par la suite de l’installation du système et qui portent le mention [installé] simple.

Merci !!
bien à vous et au revoir …

le nb est pour ceux et celles qui comme moi apprennent :slightly_smiling_face:

Bonjour

Je ne comprends pas très bien ta question,
mais dans les fichiers du répertoire /var/log/apt tu pourras trouver à quelle date/heure la ligne de commande apt a provoqué l’installation d’une liste de paquetages.

less /var/log/apt/history.log

pour les dates plus anciennes,
les fichiers logs archivés sont aussi visualisables avec la commande zless

zless /var/log/apt/history.log.1.gz

mais j’ai aussi récupéré une fonction script dans cette page web
qui me permet de lister les paquetages installés/mis à jours/ ou autre en fonction de la date
en laçant la commande :

apt-history install

Bien sûr, il me suffit ensuite de filtrer (par exemple avec grep) la sortie de cette ligne de commande pour en extraire la liste des paquetages installés/mis à jours/ ou autre à une date/heure spécifique.

Voici la liste des paquetages qui ont été mis à jours sur ma machine le 23 juillet 2022

michel@deb114x:~$ apt-history upgrade | grep "^2022-07-23"
2022-07-23 23:44:13 upgrade dpkg 1.20.11 1.20.11
2022-07-23 23:44:15 upgrade libc6:amd64 2.31-13+deb11u3 2.31-13+deb11u3
2022-07-23 23:44:16 upgrade dpkg:amd64 1.20.11 1.20.11
2022-07-23 23:44:16 upgrade debconf:all 1.5.77 1.5.77
2022-07-23 23:44:18 upgrade base-files:amd64 11.1+deb11u4 11.1+deb11u4
2022-07-23 23:44:18 upgrade base-passwd:amd64 3.5.51 3.5.51
2022-07-23 23:44:20 upgrade mawk:amd64 1.3.4.20200120-2 1.3.4.20200120-2
2022-07-23 23:44:20 upgrade perl-base:amd64 5.32.1-4+deb11u2 5.32.1-4+deb11u2
michel@deb114x:~$ 

Merci, …
C’est sûrement un bon départ

mais j’aurais voulu juste faire la différence entre

  • ceux installés à l’installation du système
  • et ceux installés par mes soin en passant la commande apt install

Donc déjà ta réponse dans un premier temps me convient …!

quand je suis de retour chez moi, je vais déjà regarder d’un peu plus prêt tout cela !

allé
a+
et merci !

Je crains que ce ne soit pas simplement possible.
Par contre, ce que tu peux faire lors d’une nouvelle installation, c’est de systématiquement lister les paquets qui ont été installés sans intervention de ta part.

dpkg -l |awk '/^i/{print $2}' > Liste_Paquets_instal_20220808.txt

Ensuite, pour savoir ce qui a été ajouté ou supprimé à une date ultérieure, tu refais la même opération, et tu compares les fichiers.

dpkg -l |awk '/^i/{print $2}' > Liste_Paquets_instal_dateX.txt

diff Liste_Paquets_instal_20220808.txt  Liste_Paquets_instal_dateX.txt

Faux. Un paquet est marqué comme installé automatiquement s’il a été installé par apt à cause d’une dépendance d’un autre paquet. Cela n’a rien à voir avec le fait d’avoir été installé pendant ou après l’installation initiale.

De nombreux paquets installés lors de l’installation initiale du système, et notamment tous les paquets du système de base, ne sont pas marqués automatiquement installés car ils ont été installés par debootstrap et non par apt qui gère cet indicateur. Inversement, de nombreux paquets installés après l’installation initiale sont marqués installés automatiquement car ce sont des dépendances d’autres paquets, notamment les bibliothèques partagées lib*.

On peut retrouver la liste de tous les paquets installés lors de l’installation initiale par l’installateur classique dans /var/log/installer/syslog. Avec l’installateur Calamares (live), je ne sais pas.

Merci …

Effectivement, vu comme ça … je comprend et même c’est assez logique. Thx.

Ok ok noté !!
via une new installation ou par le biais d’une virtualisation …
j’essayerais.

bonne soirée !

Bonjour,

L’utilisation d’un IDS permet notamment de surveiller efficacement les différences d’un système par rapport à une première installation ou à des évolutions ultérieures. Ce type d’outil peut aider mais il nécessite un peu de temps pour se familiariser avec.

Utiliser auditd dans ce cas.

Dans le répertoire /var/log/apt/ tu trouveras dans les fichiers history.log*

  • la liste de tous les paquetages installés avec leur numéro de version et l’architecture pour laquelle ils ont été créés,
  • la date/heure à laquelle l’installation a débuté,
  • la date/heure à laquelle elle s’est terminée,
  • la ligne de commande détaillée qui avait été utilisée pour l’installation.

ce qui fait que tu peux très bien retrouver la liste de tous les paquetages qui ont été installés pour l’installation du système, et voir exactement quels sont les paquetages que tu as installé ensuite et s’il s’agissait d’une installation ou d’une mise à jour, etc.
et tu n’as même pas besoin d’avoir les privilèges du compte root pour pouvoir visualiser le contenu de ces fichiers.

zless -S /var/log/apt/history.log.1.gz
less -S /var/log/apt/history.log

Pour faire s’afficher la liste de tous les noms des paquetages que tu as installé en utilisant la ligne de commande apt install :

zgrep -h 'Commandline: apt install' /var/log/apt/history.log{,.[1-9].gz} | sed ':a;N;$!ba;s/\n\|Commandline: apt install/ /g; s/\( \)*/\1/g'

hiep…

IDS qu’est ce ?

auditd vais me renseigner, merci.

oui… je vois … donc me faut retrouver la date et heure de la fin de mon installation … ce que je pense pouvoir trouver … par ex.: dans le fichier /etc/apt/sources.list si je ne m’abuse… après comme je suis parti d’une installation faite et dite minimal à partir d’une iso debian net-install, je sais/pense que j’ai du commencer par le serveur X très certainement (intel dans mon cas). Un gros méta-paquet … donc entre le reboot et tout cela, y a forcément une tranche horaire de non activité niveau installation…

Après, ce que tu notes:

est tout aussi parfait et surement de moins longue entreprise que je lire ces log, intervalles par intervalle, lol.

Merci à toustes
pas mal de trucs appris dans ce fil.
:grinning:

Intrusion Detection System
système de detection d’intrusion, ils sont de deux types:

  • systèmes
  • réseaux
    On trouve bien sur aussi des systèmes Hybrid qui font les deux.

Merci.
je note mais à mon sens, suis un rien trop peu expérimenté pour en plus faire de la surveillance très technique de système informatique … :grinning:

Je ne sais pas … mais pour ma part, je dirais que je peux mettre un « résolu » à ce fil…
J’attends juste de confirmer de mon coté tout cela.

Donc: un dernier (ou pas) mot de quelqu’unE(s) ? :upside_down_face: :slightly_smiling_face:

La réponse de @MicP est la plus appropriée : les quelques commandes proposées devraient vous
suffire pour construire un script adapté à votre besoin.

Voilà comment j’ai assez rapidement fait cette première lecture :

Sur mon système debian, j’ai deux fichiers history concernant la commande apt :

michel@deb114x:~$ ls -l /var/log/apt/history.log*
-rw-r--r-- 1 root root  3646 25 août  08:26 /var/log/apt/history.log
-rw-r--r-- 1 root root 14396 28 juil. 19:05 /var/log/apt/history.log.1.gz
michel@deb114x:~$ 

Un de ces fichiers a été archivé, sans doute par la commande logrotate lancée par cron et c’est sans doute dans ce fichier archivé que je vais pouvoir retrouver tout ce qui aura été installé
par le programme d’installation (j’avais utilisé un fichier image ISO de type netinstall)

Les paquetages installés au cours du déroulement du programme d’installation ont été installés avec la commande apt-get suivie d’une série d’options spécifiques, comme on peut le voir dans les premières lignes du fichier log archivé /var/log/apt/history.log.1.gz en utilisant la ligne de commande suivante :

zless /var/log/apt/history.log.1.gz

Ce qui donne :

Start-Date: 2022-07-23  23:44:35
Commandline: apt-get -o APT::Status-Fd=4 -o APT::Keep-Fds::=5 -o APT::Keep-Fds::=6 -q -y --no-remove install locales
Install: locales:amd64 (2.31-13+deb11u3), libc-l10n:amd64 (2.31-13+deb11u3, automatic)
End-Date: 2022-07-23  23:44:36

Start-Date: 2022-07-24  01:44:39
Commandline: apt-get -o APT::Status-Fd=4 -o APT::Keep-Fds::=5 -o APT::Keep-Fds::=6 -q -y --no-remove install busybox
Install: busybox:amd64 (1:1.30.1-6+b3)
End-Date: 2022-07-24  01:44:39

Start-Date: 2022-07-24  01:44:40
Commandline: apt-get -o APT::Status-Fd=4 -o APT::Keep-Fds::=5 -o APT::Keep-Fds::=6 -q -y --no-remove install initramfs-tools
Install: initramfs-tools-core:amd64 (0.140, automatic), klibc-utils:amd64 (2.0.8-6.1, automatic), linux-base:amd64 (4.6, automatic), libklibc:amd64 (2.0.8-6.1, automatic), initramfs-tools:am
d64 (0.140)
End-Date: 2022-07-24  01:44:40

Start-Date: 2022-07-24  01:44:44
Commandline: apt-get -o APT::Status-Fd=4 -o APT::Keep-Fds::=5 -o APT::Keep-Fds::=6 -q -y --no-remove -o APT::Install-Recommends=true install linux-image-amd64
Install: apparmor:amd64 (2.13.6-10, automatic), firmware-linux-free:amd64 (20200122-1, automatic), linux-image-amd64:amd64 (5.10.127-1), linux-image-5.10.0-16-amd64:amd64 (5.10.127-1, automa
tic)
End-Date: 2022-07-24  01:45:14

Start-Date: 2022-07-24  01:45:15
Commandline: apt-get -o APT::Status-Fd=4 -o APT::Keep-Fds::=5 -o APT::Keep-Fds::=6 -q -y --no-remove install pciutils
Install: pciutils:amd64 (1:3.7.0-5), pci.ids:amd64 (0.0~2021.02.08-1, automatic), libpci3:amd64 (1:3.7.0-5, automatic)
End-Date: 2022-07-24  01:45:15

Start-Date: 2022-07-24  01:45:16
Commandline: apt-get -o APT::Status-Fd=4 -o APT::Keep-Fds::=5 -o APT::Keep-Fds::=6 -q -y --no-remove install usbutils
Install: usbutils:amd64 (1:013-3), libusb-1.0-0:amd64 (2:1.0.24-3, automatic)
End-Date: 2022-07-24  01:45:16

Start-Date: 2022-07-24  01:45:17
Commandline: apt-get -o APT::Status-Fd=4 -o APT::Keep-Fds::=5 -o APT::Keep-Fds::=6 -q -y --no-remove install keyboard-configuration
Install: keyboard-configuration:amd64 (1.205)
End-Date: 2022-07-24  01:45:17
…

Puis, après avoir répondu dans la boîte de dialogue concernant le popularity-contest,
on peut voir qu’en une commande apt-get une très longue série de paquetages ont été installés juste après que j’ai eu sélectionné l’Environnement de Bureau de mon choix :

…
Start-Date: 2022-07-24  01:45:51
Commandline: apt-get -o APT::Status-Fd=4 -o APT::Keep-Fds::=5 -o APT::Keep-Fds::=6 -q -y --no-remove -o APT::Install-Recommends=false install popularity-contest
Install: popularity-contest:amd64 (1.71)
End-Date: 2022-07-24  01:45:51

Start-Date: 2022-07-24  01:46:20
Commandline: apt-get -o APT::Status-Fd=4 -o APT::Keep-Fds::=5 -o APT::Keep-Fds::=6 -q -y -o APT::Install-Recommends=true -o APT::Get::AutomaticRemove=true -o Acquire::Retries=3 install task-
ssh-server groff-base perl man-db libpam-systemd xz-utils apt-listchanges ucf ca-certificates debian-faq systemd-timesyncd dbus liblockfile-bin file openssh-client doc-debian python3-reportb
ug netcat-traditional traceroute ncurses-term wget bind9-dnsutils gettext-base bind9-host krb5-locales telnet wamerican mime-support bzip2 bash-completion lsof media-types libnss-systemd man
pages reportbug task-desktop task-french task-laptop task-xfce-desktop task-french-desktop
Install: fontconfig:amd64 (2.13.1-4.2, automatic), libntfs-3g883:amd64 (1:2017.3.23AR.3-4+deb11u2, automatic), libvulkan1:amd64 (1.2.162.0-1, automatic), telnet:amd64 (0.17-42), reportbug:am
d64 (7.10.3+deb11u1), libnetfilter-conntrack3:amd64 (1.0.8-3, automatic), liborcus-parser-0.16-0:amd64 (0.16.1-3+b2, automatic), lsb-release:amd64 (11.1.0, automatic), libsphinxbase3:amd64 (
0.8+5prealpha+1-12, automatic), libssh2-1:amd64 (1.9.0-2, automatic), libsynctex2:amd64 (2020.20200327.54578-7, automatic), libperl5.32:amd64 (5.32.1-4+deb11u2, automatic), xserver-xorg-vide
o-nouveau:amd64 (1:1.0.17-1, automatic), xfce4-weather-plugin:amd64 (0.11.0-1, automatic), libcups2:amd64 (2.3.3op2-3+deb11u2, automatic), liblibreoffice-java:amd64 (1:7.0.4-4+deb11u1, autom
…

(ci-dessus, je n’ai pas recopié la liste intégrale des paquetages installés, car elle est très longue)

… et, sur mon système, le dernier paquetage installé par le programme d’installation du système debian a été grub-pc :

…
Start-Date: 2022-07-24  01:50:08
Commandline: apt-get -o APT::Status-Fd=4 -o APT::Keep-Fds::=5 -o APT::Keep-Fds::=6 -q -y --no-remove install grub-common
Install: libefivar1:amd64 (37-6, automatic), os-prober:amd64 (1.79, automatic), libefiboot1:amd64 (37-6, automatic), grub-common:amd64 (2.04-20)
End-Date: 2022-07-24  01:50:09

Start-Date: 2022-07-24  01:50:12
Commandline: apt-get -o APT::Status-Fd=4 -o APT::Keep-Fds::=5 -o APT::Keep-Fds::=6 -q -y --no-remove install grub-pc
Install: grub-pc-bin:amd64 (2.04-20, automatic), grub2-common:amd64 (2.04-20, automatic), grub-pc:amd64 (2.04-20)
End-Date: 2022-07-24  01:50:13

On peut voir la date/heure à laquelle ce programme d’installation avait terminé son travail :
2022-07-24 01:50:13

Et c’est environ 8 heures plus tard (sans doute après une bonne nuit de sommeil) que j’avais décidé d’installer manuellement quelques paquetages supplémentaires en utilisant la commande
apt install :

…
Start-Date: 2022-07-24  09:42:28
Commandline: apt install mc ncdu gawk vim-nox gparted virt-manager
…

La suite des enregistrements dans ces fichiers log de la commande apt
concerne les mises à jour qui ont été faites avec la commande apt upgrade
et les autres paquetages que j’ai installés manuellement avec la commande apt install


Donc, en utilisant la commande zgrep pour lire les deux fichiers log,
j’ai extrait toutes les lignes dans lesquelles la commande apt install était citée
et avec la commande sed, j’ai pu extraire de ces lignes la liste des noms des paquetages
que j’avais installé manuellement.

Merci ! cool !
J’ai lu en diagonale… je viens de rentrer.
Mais je regarde de plus prêt plus tard !

merci
j’vous dit quoi!

Bonjour

Je me suis aperçu que dans la liste des noms de paquetage retournée apparaissait l’option -y que j’avais utilisée dans certaines lignes de commande apt install, et qu’il y avait un nom de paquetage qui apparaissait 2 fois dans la liste car il s’agissait d’un paquetage que j’avais effectivement installé 2 fois, puisque je l’avais désinstallé entre temps.

J’ai donc fait en sorte que ce -y n’apparaisse plus dans la liste des noms de paquetage retournée et qu’il n’y ait plus de noms de paquetage qui apparaisse plusieurs fois.
J’ai aussi fait en sorte que les noms des fichiers history.log archivés utilisant une numérotation sur plusieurs chiffres soient pris en compte, en modifiant la ligne de commandes que j’avais proposée.

Ce qui donne :

zgrep -h 'Commandline: apt install' /var/log/apt/history.log{,.+([[:digit:]]).gz} | sort -u | sed ':a;N;$!ba;s/\n\|Commandline: apt install/ /g; s/ -y //; s/\( \)*/\1/g'

Je me suis débrouillé en utilisant zgrep, sort et sed, mais je ne serais pas étonné qu’un vrai programmeur utilise quelque chose de plus simple et efficace, (peut-être avec awk)