Aptitude : faire la liste des paquets installés qui sont sans dépôt source actif

Tags: #<Tag:0x00007fc9dee01208> #<Tag:0x00007fc9dee00bc8> #<Tag:0x00007fc9dee00588> #<Tag:0x00007fc9dee00420> #<Tag:0x00007fc9dee00218>

Bonjour à tous et à toutes,

J’ai mis à jour mon micro-serveur HP n40l en version buster récemment.
Ma première erreur fut de mettre à jour stretch vers buster en oubliant la commande :

apt upgrade

La mise à jour s’est plutôt bien passée cependant.

Ensuite, il me restait une liste de paquets dits
« installés automatiquement », « plus nécessaires » et bons à enlever avec « autoremove »

J’ai bloqué en particulier sur le paquet manpages-fr que je ne voulais pas désinstaller ;
J’en ai appris davantage tout récemment sur :
https://linuxfr.org/news/debian-10-buster-une-distribution-qui-a-du-chien

Paquets supprimés notables

  • manpages-fr , qui n’était plus maintenu depuis 2014, a été supprimé de Buster suite à l’ouverture du bogue no 871564 ; la traduction des pages de manuel a depuis repris, de même que leur empaquetage ; hélas, le nouveau paquet n’a pas pu être prêt avant le gel ;
  • Amarok, suite à la transition de Qt4 vers Qt5 dans Debian (Amarok est resté en Qt4) ;
  • debian-doc-fr , qui n’était plus mis à jour depuis… douze ans !
  • Redmine, suite à la transition vers Ruby on Rails 5 dans Debian ; contrairement au cas d’Amarok, une version de Redmine fonctionnant avec RoR5 existe mais n’a pas été empaquetée à temps.

Bref, j’ai fait passer cette liste de paquets installés automatiquement à installés manuellement ;
En les installant à nouveau (deuxième erreur)
Et plus aucune liste pour autoremove ne m’est proposée.

Je me retrouve avec des paquets installés mais sans dépôt source, comme donc :

root@n40l:~# apt policy manpages-fr
manpages-fr:
  Installé : 3.65d1p1-1
  Candidat : 3.65d1p1-1
 Table de version :
 *** 3.65d1p1-1 100
        100 /var/lib/dpkg/status
root@n40l:~#

Contrairement, par exemple à :

root@n40l:~# apt policy xterm
xterm:
  Installé : 344-1
  Candidat : 344-1
 Table de version :
 *** 344-1 800
        800 http://ftp2.fr.debian.org/debian buster/main amd64 Packages
        100 /var/lib/dpkg/status
root@n40l:~#

Je voudrais arriver à faire la liste des paquets qui sont installés sans dépôt source.
Je pense que aptitude peut le faire, mais sans savoir encore comment.

Je pense qu’il faut que je les enlève de mon système.
Pour éviter de virer Frankenbian.

Merci de bien vouloir m’aider :slight_smile:

root@n40l:~# uname -a
Linux n40l 4.19.0-5-amd64 #1 SMP Debian 4.19.37-5+deb10u1 (2019-07-19) x86_64 GNU/Linux
root@n40l:~# lsb_release --all
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 10 (buster)
Release:	10
Codename:	buster
root@n40l:~# 
1 J'aime

J’ai trouvé un radical :

# aptitude show ~o
# aptitude purge ~o

289 paquets y sont passés ; ça fait un peu peur.
Le système a ré-amorcé et semble fonctionner.

https://www.debian.org/doc/manuals/aptitude/ch02s04s05.en.html

Long form Short form Description
?obsolete ~o Match installed packages that cannot be downloaded.
1 J'aime

Salut
les paquets obsolète ne devraient plus avoir de sources définies ( APT-Sources) comme un paquet installé manuellement. ( à confirmer)
Exemple mon paquet de chez canon

apt show cnijfilter2
Package: cnijfilter2
Version: 5.20-1
Status: install ok installed
Priority: optional
Section: graphics
Maintainer: Canon Inc. <sup-debian@list.canon.co.jp>
Installed-Size: 2 167 kB
Depends: libc6 (>= 2.7), libcupsimage2 (>= 1.4.0), libcupsys2 (>= 1.2.1) | libcups2, libusb-1.0-0 (>= 2:1.0.6), libxml2 (>= 2.7.4)
Download-Size: inconnu
APT-Manual-Installed: yes
APT-Sources: /var/lib/dpkg/status
Description: IJ Printer Driver for Linux.
 This IJ Printer Driver provides printing functions for Canon Inkjet
 printers operating under the CUPS (Common UNIX Printing System) environment.

Je liste les paquets dans cet état avec la commande

apt list --installed | grep /now

exemple
apt list --installed | grep /now

cnijfilter2/now 5.20-1 amd64 [installé, local]
master-pdf-editor/now 5.0.03 amd64 [installé, local]
scangearmp2/now 3.20-1 amd64 [installé, local]

Salut

Je ne comprends pas bien encore la différence entre les différents états ;
Ce que ça implique. J’ai encore de la lecture à faire, pas de souci :wink:

[installé]
[installé, automatique]
[installé, local]

édition : après purge de sane et gimp

root@n40l:~# apt list --installed | grep /now
libbabl-0.1-0/now 1:0.1.28-dmo1 amd64  [installé, local]
librtmp1/now 2:2.4~20160119.gitfa8646dae-dmo5 amd64  [installé, local]
root@n40l:~# 

Je me demande bien pourquoi ces 2 paquets sont en état [installé, local] ?
J’ai eu un usage multimédia il y a bien longtemps avec cette machine. Plus du tout maintenant.
Et une simulation de purge enlève jusqu’à network-manager

apt show sur ces paquets retourne bien un « APT-Sources: /var/lib/dpkg/status »
apt policy lui, retourne une autre source en plus, de manière similaire pour les 2 paquets :

root@n40l:~# apt policy libbabl-0.1-0 librtmp1
libbabl-0.1-0:
  Installé : 1:0.1.28-dmo1
  Candidat : 1:0.1.28-dmo1
 Table de version :
 *** 1:0.1.28-dmo1 100
        100 /var/lib/dpkg/status
     0.1.62-1 800
        800 http://ftp2.fr.debian.org/debian buster/main amd64 Packages
librtmp1:
  Installé : 2:2.4~20160119.gitfa8646dae-dmo5
  Candidat : 2:2.4~20160119.gitfa8646dae-dmo5
 Table de version :
 *** 2:2.4~20160119.gitfa8646dae-dmo5 100
        100 /var/lib/dpkg/status
     2.4+20151223.gitfa8646d.1-2 800
        800 http://ftp2.fr.debian.org/debian buster/main amd64 Packages
root@n40l:~#

Exemple d’un paquet installé manuellement (qui infirme) :

wireless-tools/stable,now 30~pre9-13 amd64 [installé]

root@n40l:~# apt show wireless-tools
Package: wireless-tools
Version: 30~pre9-13
Priority: optional
Section: net
Maintainer: Guus Sliepen <guus@debian.org>
Installed-Size: 304 kB
Depends: libc6 (>= 2.14), libiw30 (>= 30~pre1)
Homepage: http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html
Tag: admin::kernel, devel::lang:c, devel::library, hardware::TODO,
 implemented-in::c, interface::commandline, network::configuration,
 role::devel-lib, role::dummy, role::program, scope::utility,
 use::configuring
Download-Size: 114 kB
APT-Manual-Installed: yes
APT-Sources: http://ftp2.fr.debian.org/debian buster/main amd64 Packages
Description: Outils pour agir sur les extensions sans-fil Linux (wext)
 Ce paquet contient les outils sans-fil utilisés pour agir sur les
 extensions sans-fil Linux (wext). wext est une interface vous permettant de
 définir des paramètres spéciaux pour des réseaux sans-fil et d'obtenir des
 statistiques particulières.
root@n40l:~# 
root@n40l:~# apt -s purge libbabl-0.1-0 librtmp1
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Les paquets suivants ont été installés automatiquement et ne sont plus nécessaires :
  cmake-data cups-browsed cups-daemon cups-ipp-utils cups-ppdc cups-server-common gir1.2-packagekitglib-1.0 git-man libappstream4 libavahi-glib1 libbluetooth3 liberror-perl
  libfontembed1 libglib2.0-bin libgstreamer1.0-0 libgutenprint-common libgutenprint9 libjim0.77 libjsoncpp1 liblouis-data liblouis17 liblouisutdml-bin liblouisutdml-data
  liblouisutdml8 libmbim-glib4 libmbim-proxy libmm-glib0 libndp0 libnghttp2-14 libnl-route-3-200 libnm0 libpackagekit-glib2-18 libpcsclite1 libqmi-glib5 libqmi-proxy librhash0
  libssh2-1 libstemmer0d libteamdctl0 libuv1 modemmanager packagekit packagekit-tools python3-certifi python3-distro-info python3-httplib2 python3-idna python3-requests
  python3-urllib3 unattended-upgrades usb-modeswitch usb-modeswitch-data wpasupplicant
Veuillez utiliser « apt autoremove » pour les supprimer.
Les paquets suivants seront ENLEVÉS :
  cmake* cups* cups-core-drivers* cups-filters* cups-filters-core-drivers* curl* git* libbabl-0.1-0* libcurl3-gnutls* libcurl4* libpoppler-glib8* libpoppler82* librtmp1* lnav*
  network-manager* poppler-utils* printer-driver-gutenprint* python-pycurl* python3-debianbts* python3-pycurl* python3-pysimplesoap* python3-reportbug* python3-software-properties*
  reportbug* software-properties-common*
0 mis à jour, 0 nouvellement installés, 25 à enlever et 0 non mis à jour.
Purg cmake [3.13.4-1]
Purg printer-driver-gutenprint [5.3.1-7]
Purg cups [2.2.10-6]
Purg cups-core-drivers [2.2.10-6]
Purg cups-filters [1.21.6-5]
Purg cups-filters-core-drivers [1.21.6-5]
Purg curl [7.64.0-4]
Purg git [1:2.20.1-2]
Purg libbabl-0.1-0 [1:0.1.28-dmo1]
Purg python-pycurl [7.43.0.2-0.1]
Purg software-properties-common [0.96.20.2-2]
Purg python3-software-properties [0.96.20.2-2]
Purg python3-pycurl [7.43.0.2-0.1] [python3-pysimplesoap:amd64 ]
Purg libcurl3-gnutls [7.64.0-4] [lnav:amd64 python3-pysimplesoap:amd64 network-manager:amd64 libpoppler82:amd64 ]
Purg libcurl4 [7.64.0-4] [lnav:amd64 python3-pysimplesoap:amd64 network-manager:amd64 libpoppler82:amd64 ]
Purg libpoppler-glib8 [0.71.0-5] [lnav:amd64 python3-pysimplesoap:amd64 network-manager:amd64 libpoppler82:amd64 ]
Purg poppler-utils [0.71.0-5] [lnav:amd64 python3-pysimplesoap:amd64 network-manager:amd64 libpoppler82:amd64 ]
Purg libpoppler82 [0.71.0-5] [lnav:amd64 python3-pysimplesoap:amd64 network-manager:amd64 ]
Purg librtmp1 [2:2.4~20160119.gitfa8646dae-dmo5] [lnav:amd64 python3-pysimplesoap:amd64 network-manager:amd64 ]
Purg lnav [0.8.4-5] [python3-pysimplesoap:amd64 network-manager:amd64 ]
Purg network-manager [1.14.6-2] [python3-pysimplesoap:amd64 ]
Purg reportbug [7.5.2] [python3-pysimplesoap:amd64 ]
Purg python3-reportbug [7.5.2] [python3-pysimplesoap:amd64 ]
Purg python3-debianbts [2.8.2] [python3-pysimplesoap:amd64 ]
Purg python3-pysimplesoap [1.16.2-1]
root@n40l:~# 

apt policy te donne

  • la version installé et sa provenance, dans ton cas aucune provenance car tu as du retiré le depot dmo
  • la version disponible dans les dépots debian

faut pas confondre :grinning:

Apt show indique
la provenance dans le paramètre APT-Sources

  • le depot s’il existe
  • si aucun dépot n’existe APT-Sources: /var/lib/dpkg/status

tu peux faire

apt install libbabl-0.1-0 librtmp1/buster

pour remettre le paquet Debian

1 J'aime

Entendu, merci.

Oui, j’ai retiré le dépôt deb-multimedia.org en suivant certains conseils.
Et puis il était devenu totalement inutile pour un simple service NFS.

J’ai fait un peu différemment :

# apt install libbabl-0.1-0/buster librtmp1/buster

Et je n’ai plus de paquet avec le statut [installé, local]

root@n40l:~# apt list --installed | grep /now
root@n40l:~#
root@n40l:~# apt policy libbabl-0.1-0 librtmp1
libbabl-0.1-0:
  Installé : 0.1.62-1
  Candidat : 0.1.62-1
 Table de version :
 *** 0.1.62-1 800
        800 http://ftp2.fr.debian.org/debian buster/main amd64 Packages
        100 /var/lib/dpkg/status
librtmp1:
  Installé : 2.4+20151223.gitfa8646d.1-2
  Candidat : 2.4+20151223.gitfa8646d.1-2
 Table de version :
 *** 2.4+20151223.gitfa8646d.1-2 800
        800 http://ftp2.fr.debian.org/debian buster/main amd64 Packages
        100 /var/lib/dpkg/status
root@n40l:~#

Je pourrais basculer d’un coup tous mes paquets dmo en version buster ?

probablement si tous les paquets dmo existent dans buster

apt list --installed | grep dmo

tu peux faire une simulation

apt -s install blablabla

root@n40l:~# apt list --installed | grep -i dmo
root@n40l:~#
root@n40l:~# aptitude -F "%p" search ~i~Vdmo
root@n40l:~#
root@n40l:~# time apt policy \
> $( aptitude search --disable-columns -F "%p" ~i ) | grep -i dmo

real	0m10,431s
user	0m8,607s
sys	0m1,898s
root@n40l:~# 

Normalement, je n’ai plus de paquet dmo ! Ouf alors :grin:
Pour moi, c’est bouclé.

Merci bien grandtoubab :wink: