Frage dpkg: warning: Dateien Listendatei für Paket 'x' fehlt


Ich bekomme diese Warnung für mehrere Pakete bei jeder Installation irgendein verpacken oder durchführen apt-get upgrade. Nicht sicher, was es verursacht; Es ist eine frische Debian-Installation auf meinem OpenVZ-Server und ich habe keine dpkg-Einstellungen geändert.

Hier ist ein Beispiel:

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:~# 

Alles funktioniert gut, aber diese Warnmeldungen sind ziemlich nervig. Weiß jemand wie ich das beheben kann?

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

20
2017-09-21 15:28


Ursprung


ls -la /var/lib/dpkg/info | grep libssh? - quanta
Ausgabe zu Frage hinzugefügt. - Mark
Hast du ein einfaches versucht? apt-get update? - Ben Lessani - Sonassi
Ja, ich habe viele Pakete installiert und das Update mehrmals ausgeführt. - Mark


Antworten:


Er reparierte es, die Dateien neu zu installieren, die dort erschienen. Also möchtest du vielleicht so etwas ausprobieren:

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

Kopieren-Einfügen in einer Zeile:

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

Beachten Sie, dass dieser Befehl ausgeführt wird braucht etwas Zeitwährend wir durch jedes Paket gehen.

In manchen Fällen apt upgrade zeigt die Fehler nicht an, deshalb können Sie ein Paket (zum Beispiel x) neu installieren, das den Fehler gibt und wie folgt ausführt:

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

17
2017-09-21 16:22



-bash: syntax error near unexpected token ``do'. Nicht gut bei bash; Könntest du es bitte reparieren? - Mark
Mark: Es ist gut hier, könntest du den Anfang verpasst haben? for in der vorherigen Zeile? - exic
Leider tut das nichts für mich, während ich das Kommando führe. Aber ich liebe die Idee - Jamie Hutber
Das Skript hat nicht ganz funktioniert, aber die Idee zur Neuinstallation hat den Trick sudo apt-get install --install "Paketname" - AllGamer
erster Lauf sudo bash dann Skript einfügen - Soliman


Die obige Antwort hat bei mir nicht vollständig funktioniert. Einige Pakete, nämlich libc6, zeigten immer noch diesen Fehler.

Ich habe in einem Forum eine Lösung gefunden. Fehler ist, dass die neue Version von libc keine Liste von Dateien zum Korrigieren der Datei enthielt. Anstatt es zu widerhallen /var/lib/dpkg/info/libc6:amd64.list es echote es an /var/lib/dpkg/info/libc6.list

Es kann durch Ausführen behoben werden (passen Sie auf Ihre neueste Version und den Bogen von libc6 an):

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

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

Viel Glück an alle, die das in Zukunft lesen würden und es brauchbar findet.


7
2018-04-02 14:52



Funktioniert nicht, wenn dpkg-deb -c /var/cache/apt/archives/libc6_2.13-38_amd64.deb hat Einträge mit symbolischen Links, z dpkg-deb -c /var/cache/apt/archives/mc_3%3a4.8.13-3_amd64.deb | grep mc.csh kehrt zurück ./usr/share/mc/bin/mc.csh -> ../../../lib/mc/mc.csh - A.B.
@A.B. Ich würde es nicht wissen. Ich habe Debian verlassen und bin komplett FreeBSD, wo immer ich konnte. - dzhi


Versuchen Sie, dieses Skript zu speichern:

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

Dann führe es mit aus

sudo /bin/bash ./scriptname

Dies erforderte ein wenig zusätzliche Arbeit und einige andere Befehle auch, mögen aber

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

zusammen mit dem Entfernen und Neuinstallieren einiger spezifischer Pakete.

Das kostet viel Zeit und Mühe, immer noch ein apt-get wird jedoch ein paar Fehler zeigen.


2
2017-09-01 21:09





Nicht genug Rep zu kommentieren: @exic / @mark, ich habe festgestellt, dass ein Backtick am Anfang des Paketnamens und ein Quotemark danach verwendet wird, daher muss die Interpunktion überprüft werden. Ich bin mir nicht sicher, ob das zusammenhängt. Meine Lösung:

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

1
2018-06-23 11:16





Kopieren Sie die Fehlermeldung beispielsweise in eine Datei 111.txt. Dann führe den Befehl aus

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
2017-12-15 03:30





Alle anderen Antworten gehen davon aus, dass Sie die Pakete neu installieren möchten. In meinem Fall wollte ich das nicht tun. Ich hatte gebraucht locate zu versuchen, alle Spuren von ihnen einschließlich ihrer apt-Dateilisten zu entfernen.

Der erste Schritt besteht darin, sicherzustellen, dass die Pakete mithilfe des Paketmanagers entfernt werden:

sudo apt remove <package list>

Dann hat apt einen Befehl, den Sie ausführen können, um ihn zu bereinigen. Dadurch wird die Warnung gelöscht, während die Pakete weiterhin deinstalliert werden:

sudo apt autoclean

Quelle auf Ask Ubuntu: Dateilistendatei für das fehlende Paket


0
2018-04-30 11:30



leider hat das nicht funktioniert für mich :( - Hayden Thring
@HaydenThring Welches Paket gibt dir Ärger? - Stephen Ostermiller
Theres ein Haufen. - Hayden Thring
Ich habe die Antwort bearbeitet - Sie müssen sicherstellen, dass Sie sie zuerst entfernen - Stephen Ostermiller


Ich benutze deepin Linux Betriebssystem, ich habe die oben genannten Befehle geändert, um zu arbeiten. Ich benutze chinesische Sprache. for package in $(sed "s/.*\ \(.*\)\ .*/\1/" error.txt); do apt-get install -y --reinstall "$package"; done wenn Sie Englisch verwenden

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


0
2018-06-24 04:55





Ich habe nie einen der oben genannten Befehle erhalten, aber das funktionierte für mich nach der Ausgabe der Fehlermeldung in der error.txt Datei

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

Hoffe es hilft jemand anderem.


-1
2018-02-10 11:39