Próbowałem zaktualizować system Ubuntu 11.10 w wersji 64-bitowej kilka dni temu i otrzymałem błąd:
dpkg: ../../src/archives.c:978: tarobject: Asercja `r == stab.st_size 'nie powiodła się.
Więc śledziłem ten post na forum Ubuntu i ten .
Usunięto ubuntu-docs
z folderu informacyjnego i pliku stanu.
Teraz, gdy próbuję zainstalować / usunąć / uaktualnić dowolny pakiet, pojawia się błąd:
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.
Kiedy próbuję zainstalować ubuntu-docs
z wiersza poleceń, otrzymuję następujące dane wyjściowe:
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
... który wygląda mniej więcej tak, jak kiedy zaczynałem z problemem, więc szukałem informacji - nie ma paczki, ubuntu-docs
ale jest wpis w statusie, więc go usunąłem i spróbowałem ponownie, ale jak tylko to zrobię, sudo dpkg --configure -a
wpis ubuntu-docs
pojawia się ponownie .
jakieś pomysły?
Edytuj (nie jako komentarz do zapisywania formatowania) :
Wątek mówi, że muszę uruchomić sudo apt-get update
po usunięciu odpowiednich wierszy ze statusu. Więc pobiegłem sudo apt-get clean
za mną sudo apt-get update
. Ale dostałem wiadomość:
E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
Po uruchomieniu sudo dpkg --configure -a
plik statusu zawiera następujące wiersze:
Package: ubuntu-docs
Status: install reinstreq half-installed
Priority: optional
Section: doc
Version: 11.10.4
Nie jestem pewien, czy to pomaga.
źródło
Oto, co zadziałało dla mnie:
Zgłoszę, jeśli coś pójdzie nie tak. Rozwiązanie BTW zostało opublikowane na stronie Jak ponownie uruchomić dpkg?
Och, tak, porada: teraz muszę używać Synaptic do aktualizacji systemu za każdym razem - ponieważ ubuntu-docs jest w każdej aktualizacji i muszę go odznaczyć: - /. Chyba zacznę inne pytanie, aby zapytać, jak usunąć konkretny pakiet z każdej kolejnej aktualizacji.
źródło
Możliwe, że twoje polecenia próbują ponownie użyć uszkodzonego pakietu, który jest buforowany na twoim komputerze. Spróbuj uruchomić następujące polecenie, aby wyczyścić pamięć podręczną apt:
(ostrzeżenie, że usunie wszystkie buforowane pakiety, więc jeśli jesteś w połowie instalacji, musisz ponownie pobrać kilka rzeczy).
Powinieneś być w stanie przejść przez proces aktualizacji jak zwykle.
źródło
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 'nie powiódł się. E: Podproces / usr / bin / dpkg nieoczekiwanie zakończył pracę