web-dev-qa-db-fra.com

Fichier de liste de fichiers d'avertissement dpkg pour le paquet manquant

J'ai essayé d'installer un paquet et il l'a fait, et il semble bien fonctionner. Cependant, lorsque je l'ai installé, j'ai reçu plusieurs avertissements concernant l'absence de paquets.

dpkg: warning files list file for package '...' missing, assuming package has no files currently installed.

Puisqu'il ne s'agit que d'un avertissement et qu'il semble fonctionner de toute façon, j'ai supposé que cela importait peu, mais j'aimerais que quelqu'un le confirme.

Les paquetages manquants sont ceux que j'ai désinstallés volontairement car ils étaient non essentiels et prenaient beaucoup de place.

EDIT: Le paquet est tzdata. Utilisation de dpkg -i sur un fichier .deb à installer. Et ce qui précède est essentiellement l’avertissement entier. Juste au lieu de ... cela répertorie les paquets. python2.7-minimal, libsqlite3-0, libaprutill-dbd-sqlite3, python-minimal`

EDIT: "Qu'est-ce que vous avez fait exactement?" J'ai couru la commande

dpkg -i tzdata_2017b-2_all.deb

installer le paquet tzdata.

"Qu'est-ce que tu voulais réaliser?" Je voulais installer le paquet.

"Que s'est-il passé à la place? Avez-vous rencontré des messages d'avertissement ou d'erreur?" Le paquet installé et a bien fonctionné. Toutefois, l'avertissement ci-dessus est apparu pour les packages ci-dessus.

Je ne peux pas copier et coller car cela se produit sur un serveur séparé. Mais je vais le réécrire ici:

dpkg: warning files list file for package python2.7-minimal missing, assuming package has no files currently installed.
dpkg: warning files list file for package libsqlite3-0 missing, assuming package has no files currently installed.
dpkg: warning files list file for package libaprutill-dbd-sqlite3, assuming package has no files currently installed.
dpkg: warning files list file for package python-minimal, assuming package has no files currently installed.

Je suis pas à la recherche d'une solution. Je suis juste curieux de savoir si dpkg me donner un avertissement dans ce genre de situation est réellement important. Encore une fois, le programme fonctionne quand même et rien d’autre sur mon système n’a besoin de ces paquets.

1
khm

Nous avons eu une défaillance RAID5 qui semblait venir avec une corruption de la base de données de liste dpkg. J'ai donc rencontré ce problème récemment. Cependant, la solution ci-dessus ne fonctionnait pas, car apt-get install --reinstall xxx produisait davantage d'erreurs de fichiers dodgy. . Cependant, j’ai réussi à le résoudre, voici donc le processus que j’ai utilisé.


En fin de compte, le processus qui a fonctionné pour moi a été de supprimer tous les fichiers correspondant à ce paquet dans la base de données et de les réinstaller après la mise à jour de dpkg lui-même.

À titre d'exemple, voici l'une de ces erreurs:

dpkg: warning files list file for package antlr, assuming package has no files currently installed.

La solution pour moi était la suivante:

Sudo mv /var/lib/dpkg/info/antlr* ~/var   # Backup in case of any other issues
                                          # Alternatively: Sudo rm /var/lib/dpkg/info/antlr*

Ensuite,

Sudo dpkg --configure -a

La clé semblait être d'exécuter la commande configure à chaque fois qu'une liste de paquetages était supprimée (par opposition à d'autres suggestions que j'ai déjà vues concernant la suppression de tous les fichiers de la liste puis l'exécution de apt-get update/upgrade).

Enfin, Sudo apt-get install --reinstall antlr s’achèverait correctement.

1
Joe Healey

Jetez un oeil à cette question Serverfault .

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

Copier/coller convivial sur une 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 elle parcourt tous les packages.

Je voulais suggérer quelque chose de similaire à la réponse acceptée avant de trouver ceci. Et je n'ai pas assez de réputation pour ajouter ceci comme commentaire.

Malheureusement, je ne peux pas dire pourquoi cela se produit. J'ai eu ce problème après une mise à niveau dist et je l'ai corrigé en réinstallant les paquets.

1
fronk