Impossible d'installer / supprimer / mettre à niveau un package

11

J'ai donc essayé de mettre à jour Ubuntu 11.10 64 bits il y a quelques jours et j'ai reçu une erreur:

dpkg: ../../src/archives.c:978: tarobject: l'assertion `r == stab.st_size 'a échoué.

J'ai donc suivi ce post sur les forums Ubuntu et celui-ci .

Supprimé ubuntu-docsdu dossier d'informations et du fichier d'état.

Maintenant, chaque fois que j'essaie d'installer / supprimer / mettre à niveau un package, je reçois une erreur:

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/aptdaemon/worker.py", line 968, in simulate
    trans.unauthenticated = self._simulate_helper(trans)
  File "/usr/lib/python2.7/dist-packages/aptdaemon/worker.py", line 1092, in _simulate_helper
    return depends, self._cache.required_download, \
  File "/usr/lib/python2.7/dist-packages/apt/cache.py", line 235, in required_download
    pm.get_archives(fetcher, self._list, self._records)
SystemError: E:I wasn't able to locate a file for the ubuntu-docs package. This might mean you need to manually fix this package.

Lorsque j'essaie d'installer à ubuntu-docspartir de la ligne de commande, j'obtiens cette sortie:

 BlockquoteReading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be upgraded:
  ubuntu-docs
1 upgraded, 0 newly installed, 0 to remove and 33 not upgraded.
1 not fully installed or removed.
Need to get 1,408 kB of archives.
After this operation, 22.5 MB of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com/ubuntu/ oneiric/main ubuntu-docs all 11.10.4 [1,408 kB]
Fetched 1,408 kB in 5s (265 kB/s)        
(Reading database ... 
dpkg: warning: files list file for package `ubuntu-docs' missing, assuming package has no files currently installed.
(Reading database ... 323646 files and directories currently installed.)
Preparing to replace ubuntu-docs 11.10.4 (using .../ubuntu-docs_11.10.4_all.deb) ...
Unpacking replacement ubuntu-docs ...
dpkg: ../../src/archives.c:978: tarobject: Assertion `r == stab.st_size' failed.
E: Sub-process /usr/bin/dpkg exited unexpectedly

... qui ressemble à peu près au début du problème, j'ai donc regardé dans info - il n'y a pas de paquet ubuntu-docsmais il y a une entrée dans le statut donc je l'ai supprimé et réessayé, mais dès que je fais sudo dpkg --configure -al'entrée pour ubuntu-docsréapparaît .

Des pensées?

Modifier (pas en tant que commentaire pour enregistrer la mise en forme) :

Ce fil dit que je dois exécuter sudo apt-get updateaprès avoir supprimé les lignes correspondantes de l'état. J'ai donc couru sudo apt-get cleansuivi sudo apt-get update. Mais j'ai reçu un message disant:

E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.

Après l'exécution sudo dpkg --configure -a, le fichier d'état contient les lignes suivantes:

Package: ubuntu-docs
Status: install reinstreq half-installed
Priority: optional
Section: doc
Version: 11.10.4

Je ne sais pas si cela aide.

wisemonkey
la source

Réponses:

7

Parfois, un package d'installation corrompu peut corrompre votre système de gestion de packages, laissant votre Linux incapable d'installer ou de supprimer des packages (logiciels). Voici le message d'erreur que j'ai reçu d'apt-get après avoir essayé d'installer ndas-admin pour Ubuntu.

$ sudo apt-get install mplayer (ou tout autre package) Lecture des listes de packages… Terminé Construction de l'arborescence des dépendances
Lecture des informations d'état… Terminé E: Le package ndas-admin doit être réinstallé, mais je ne trouve pas d'archive pour celui-ci. (c'est l'erreur)

J'ai essayé sudo apt-get install -fde résoudre le problème mais j'ai eu la même erreur. La seule option que j'avais était de modifier le fichier d'état dpkg manuellement.

$ sudo gedit /var/lib/dpkg/status    (if you prefer you can use vi instead of gedit)
Locate the corrupt package, and remove the whole block of information about it and save the file. Mine looked like this:

Package: ndas-admin
Status: deinstall reinstreq half-configured
Priority: extra
Section: alien
Installed-Size: 100
Maintainer: root <root@ubuntu510>
Architecture: i386
Version: 1.0.2-24
Depends: libc6 (>= 2.3.4-1)
Description: Administration toosl for XIMETA,Inc NDAS device driver for Linux operating system
 ndas-admin – This program allows the user to register/enable/disable/unregister the XIMETA NDAS hard disk.
 .
 (Converted from a rpm package by alien version 8.53.)

Fixé. J'espère que ceci aide quelqu'un d'autre.

Fazlur Rahaman Naik
la source
A eu un problème similaire et a pu le résoudre de cette façon! Merci!
étudiant
6

Voici ce qui a fonctionné pour moi:

sudo dpkg --force-all -r ubuntu-docs

Je signalerai si quelque chose se passe mal à ce sujet. La solution BTW a été publiée sur Comment faire fonctionner à nouveau dpkg?

Ohh oui un conseil: Maintenant, je dois utiliser Synaptic pour mettre à jour le système à chaque fois - parce que ubuntu-docs est dans chaque mise à jour et je dois le décocher: - /. Je suppose que je vais commencer une autre question pour savoir comment supprimer un package particulier de chaque mise à jour ultérieure.

wisemonkey
la source
1

Il est possible que vos commandes tentent simplement de réutiliser un package corrompu qui est mis en cache sur votre ordinateur. Essayez d'exécuter la commande suivante pour effacer le cache apt:

sudo apt-get clean

(avertissement, cela supprimera tous les packages mis en cache, donc si vous êtes à mi-chemin d'une installation, il devra télécharger à nouveau un tas de choses).

Vous devriez alors pouvoir suivre le processus de mise à niveau normalement.

ImaginaryRobots
la source
Ok, donc je dois supprimer les informations liées à ubuntu-docs du fichier d'état, puis je dois sudo apt-get clean. De cette façon, je peux installer n'importe quel paquet avec sudo dpkg -i mais je ne peux toujours pas mettre à niveau.
wisemonkey
que se passe-t-il si vous exécutez maintenant ce qui suit? sudo apt-get -f install
ImaginaryRobots
même chose, je ne peux pas formater ceci mais le voici: sudo apt-get -f install (lecture de la base de données ... dpkg: avertissement: fichier de liste de fichiers pour le paquet ubuntu-docs' missing, assuming package has no files currently installed. (Reading database ... 323783 files and directories currently installed.) Preparing to replace ubuntu-docs 11.10.4 (using .../ubuntu-docs_11.10.4_all.deb) ... Unpacking replacement ubuntu-docs ... dpkg: ../../src/archives.c:978: tarobject: Assertion r == stab.st_size 'a échoué. E: sous-processus / usr / bin / dpkg s'est
arrêté de
Je me demande si c'est un bug? Je ne veux pas tout réinstaller: - /
wisemonkey