web-dev-qa-db-fra.com

dpkg: avertissement: le fichier contenant la liste des fichiers du paquet «x» étant manquant

J'obtiens cet avertissement pour plusieurs packages chaque fois que j'installe any package ou effectue apt-get upgrade. Je ne sais pas ce qui en est la cause; c'est une nouvelle installation de Debian sur mon serveur OpenVZ et je n'ai changé aucun paramètre de dpkg.

Voici un exemple:

root@debian:~# apt-get install cowsay
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
  filters
The following NEW packages will be installed:
  cowsay
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 21.9 kB of archives.
After this operation, 91.1 kB of additional disk space will be used.
Get:1 http://ftp.us.debian.org/debian/ unstable/main cowsay all 3.03+dfsg1-4 [21.9 kB]
Fetched 21.9 kB in 0s (70.2 kB/s)
Selecting previously unselected package cowsay.
dpkg: warning: files list file for package 'libssh2-1:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libkrb5-3:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libwrap0:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libcap2:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libpam-ck-connector:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libc6:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libtalloc2:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libselinux1:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libp11-kit0:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libavahi-client3:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libbz2-1.0:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libpcre3:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libgpm2:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libgnutls26:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libavahi-common3:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libcroco3:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'liblzma5:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libpaper1:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libsensors4:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libbsd0:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libavahi-common-data:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libss2:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libblkid1:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libslang2:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libacl1:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libcomerr2:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libkrb5support0:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'e2fslibs:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'librtmp0:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libidn11:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libpcap0.8:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libattr1:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libdevmapper1.02.1:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'odbcinst1debian2:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libexpat1:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libltdl7:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libkeyutils1:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libcups2:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libsqlite3-0:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libck-connector0:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'zlib1g:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libnl1:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libfontconfig1:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libudev0:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libsepol1:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libmagic1:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libk5crypto3:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libunistring0:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libgpg-error0:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libusb-0.1-4:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libpam0g:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libpopt0:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libgssapi-krb5-2:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libgeoip1:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libcurl3-gnutls:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libtasn1-3:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libuuid1:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libgcrypt11:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libgdbm3:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libdbus-1-3:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libsysfs2:AMD64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libfreetype6:AMD64' missing; assuming package has no files currently installed
(Reading database ... 21908 files and directories currently installed.)
Unpacking cowsay (from .../cowsay_3.03+dfsg1-4_all.deb) ...
Processing triggers for man-db ...
Setting up cowsay (3.03+dfsg1-4) ...
root@debian:~# 

Tout fonctionne bien, mais ces messages d'avertissement sont assez ennuyeux. Est-ce que quelqu'un sait comment je peux résoudre ce problème?

ls -la /var/lib/dpkg/info | grep libssh:

-rw-r--r-- 1 root root    327 Sep 21 15:51 libssh2-1.list
-rw-r--r-- 1 root root    359 Aug 15 06:06 libssh2-1.md5sums
-rwxr-xr-x 1 root root    135 Aug 15 06:06 libssh2-1.postinst
-rwxr-xr-x 1 root root    132 Aug 15 06:06 libssh2-1.postrm
-rw-r--r-- 1 root root     20 Aug 15 06:06 libssh2-1.shlibs
-rw-r--r-- 1 root root   4377 Aug 15 06:06 libssh2-1.symbols
22
Mark

He a corrigé la réinstallation des fichiers qui y figuraient. Donc, vous voudrez peut-être essayer quelque chose comme ceci:

for package in $(apt-get upgrade 2>&1 |\
                 grep "warning: files list file for package '" |\
                 grep -Po "[^'\n ]+'" | grep -Po "[^']+"); do
    apt-get install --reinstall "$package";
done

Copiez-collez facilement sur une seule ligne:

for package in $(apt-get upgrade 2>&1 | grep "warning: files list file for package '" | grep -Po "[^'\n ]+'" | grep -Po "[^']+"); do apt-get install --reinstall "$package"; done

Sachez que l'exécution de cette commande prend un certain temps , car nous parcourons chaque package.

Dans certains cas apt upgrade n'affiche pas les erreurs donc vous pouvez réinstaller un paquet (par exemple x) qui donne l'erreur et exécuter comme ceci:

for package in $(apt-get install --reinstall x 2>&1 |\
             grep "warning: files list file for package '" |\
             grep -Po "[^'\n ]+'" | grep -Po "[^']+"); do
    apt-get install --reinstall "$package";
done
19
exic

La réponse ci-dessus n'a pas complètement fonctionné pour moi. Quelques paquets, à savoir libc6, affichaient toujours cette erreur.

J'ai trouvé une solution sur un forum. Le bug est que la nouvelle version de libc n'a pas fait écho à la liste des fichiers à corriger. Au lieu de le faire écho à /var/lib/dpkg/info/libc6:AMD64.list il a fait écho à /var/lib/dpkg/info/libc6.list

Il peut être corrigé en exécutant (ajustez pour votre dernière version et Arch of libc6):

dpkg-deb -c /var/cache/apt/archives/libc6_2.13-38_AMD64.deb | awk {'print $6'} | cut -f2- -d. | sed 's|^/$|/.|' | sed 's|/$||' > /var/lib/dpkg/info/libc6:AMD64.list

Source: http://forums.debian.net/viewtopic.php?f=5&t=93201

Bonne chance à quiconque lira ceci à l'avenir et le trouvera utilisable.

7
dzhi

Essayez d'enregistrer ce script:

for package in $(Sudo apt-get install catdoc 2>&1 | grep "warning: files list file for package '" | grep -Po "[^'\n ]+'" | grep -Po "[^']+");
do
  Sudo apt-get -y install --reinstall "$package"
done

Ensuite, exécutez-le avec

Sudo /bin/bash ./scriptname

Cela a pris un peu de travail supplémentaire et quelques autres commandes aussi bien que comme

Sudo apt-get -f install
Sudo apt-mark hold packagename
Sudo dpkg -r --force-depends packagename

ainsi que la suppression et la réinstallation de certains packages spécifiques.

Cela prend un peu de temps et d'efforts, encore un apt-get affichera cependant quelques erreurs.

2
user308018

Pas assez de représentant pour commenter: @exic/@mark, j'ai trouvé qu'il utilise un backtick au début du nom du package et un guillemet par la suite, donc une ponctuation différente doit être vérifiée. Je ne sais pas si c'était lié. Ma solution:

for package in $(apt-get upgrade 2>&1 | grep "warning: files list file" | sed "s/.*\`//; s/'.*//"); do apt-get install --reinstall "$package"; done
1
zaTricky

Toutes les autres réponses ici supposent que vous souhaitez réinstaller les packages. Dans mon cas, je ne voulais pas le faire. J'avais utilisé locate pour essayer d'en supprimer toutes les traces, y compris leurs listes de fichiers apt.

La première étape consiste à s'assurer que les packages sont supprimés à l'aide du gestionnaire de packages:

Sudo apt remove <package list>

Ensuite, apt a une commande que vous pouvez exécuter pour le nettoyer. Cela supprimera l'avertissement tout en laissant les packages désinstallés:

Sudo apt autoclean

Source sur Ask Ubuntu: fichier de liste de fichiers pour le paquet manquant

1

Copiez le message d'erreur dans un fichier, par exemple 111.txt. Exécutez ensuite la commande

for package in $(cat 111.txt | grep "warning: files list file" | sed "s/'//g" | sed "s/\`//g"|awk '{print $8}'); do apt-get purge "$package" -y; apt-get install "$package" -y;done
0
user259719

J'utilise le système d'exploitation deepin linux, j'ai changé les commandes ci-dessus pour qu'elles fonctionnent. J'utilise la langue chinoise. for package in $(sed "s/.*\ \(.*\)\ .*/\1/" error.txt); do apt-get install -y --reinstall "$package"; done si vous utilisez l'anglais

for package in $(sed "s/.*'\(.*\)'.*/\1/" error.txt); do apt-get install -y --reinstall "$package"; done

0
jay