Dateien Listendatei für Paket fehlt - dpkg Warnung

7

Ich möchte Open JDK oder Oracle JDK auf meinem Computer installieren, habe jedoch während der Installation einen Fehler erhalten. Der Fehler ist:

Selecting previously unselected package oracle-java8-installer.
dpkg: warning: files list file for package 'unity-scope-gourmet' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'unity-scope-guayadeque' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'unity-scope-gmusicbrowser' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'unity-scope-manpages' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'unity-scope-firefoxbookmarks' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'unity-scope-gdrive' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'unity-scope-home' missing; assuming package has no files currently installed
E: Sub-process /usr/bin/dpkg returned an error code (2)

Ich habe bei Google gesucht und versucht, diese Pakete zu installieren / neu zu installieren. Schließlich versuche ich, Unity zu entfernen. Ich habe diesen Fehler bei jedem Versuch festgestellt. Ich benutze Xmonad. Wie kann ich dieses Problem beheben?

Mert Saygı
quelle

Antworten:

10

Eine Schleife über die Namen der sieben Pakete, um die Listendatei für jedes Paket neu zu erstellen.

Aber zuerst laufen

sudo apt-get autoclean

nicht benötigte DEBs entfernen /var/cache/apt/archives. Dies ist erforderlich , damit die folgenden Befehle ordnungsgemäß funktionieren.

arch="$(dpkg --print-architecture)"
for p in
  unity-scope-gourmet unity-scope-guayadeque unity-scope-gmusicbrowser
  unity-scope-manpages unity-scope-firefoxbookmarks unity-scope-gdrive
  unity-scope-home
do
    find /var/cache/apt/archives -type f -name "${p}_*_${arch}.deb" -exec dpkg-deb --fsys-tarfile {} \; -quit | tar t | cut -f2- -d. | sed 's|^/$|/.|;s|/$||' | sudo tee "/var/lib/dpkg/info/$p.list" > /dev/null
done
sudo chmod -R a+r /var/lib/dpkg/info

Einige Tests später den Befehl

sudo apt-get install --reinstall unity-scope-gourmet unity-scope-guayadeque unity-scope-gmusicbrowser unity-scope-manpages unity-scope-firefoxbookmarks unity-scope-gdrive unity-scope-home

sollte auch helfen.

AB
quelle
dpkg-debsollte nicht benötigt werden sudo, sollte der findBefehl wahrscheinlich nach dem ersten Match beendet werden. Und anstatt dpkg-deb -c ... | awk ... | , wo Sie die tarausführliche Ausgabe verarbeiten, können Sie tarnur die Pfade drucken:dpkg-deb --fsys-tarfile {} | tar t | ...
muru
Können Sie einen Befehl zum Neuerstellen im Detail erklären? Was ist, wenn ich installnur zum removePaket will ?
Timo
@ Timo: Wenn Sie das Paket entfernen möchten, sollten Sie es dennoch neu installieren, um zuerst die Dateiliste neu zu erstellen und erst dann zu entfernen, damit Apt weiß, welche Dateien entfernt werden müssen.
David Foerster
-1

Ich habe es mit dem Ansatz von AB versucht, aber ich habe den gleichen Fehler mit Unity-Scope-Devhelp festgestellt. Dann habe ich /var/lib/dpkg/unity-scope-devhelp.list gelöscht

Es klappt :)

Mert Saygı
quelle
1
Warum haben Sie die Methode von AB nicht angepasst unity-scope-devhelp?
Muru