Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Linux debian 2.6.32-5-686 #1 SMP Wed Jan 12 04:01:41 UTC 2011 i686 GNU/Linux
0 pakietów aktualizowanych, 1 instalowanych, 0 do usunięcia i 292 nie aktualizowanych. Do pobrania 0 B/2173 kB archiwów. Zajęte po rozpakowaniu: 6603 kB. dpkg: błąd parsowania, w pliku "/var/lib/dpkg/available" niedaleko linii 7620 brakujący package name E: Sub-process /usr/bin/dpkg returned an error code (2) W czasie instalacji wystąpiły problemy. Próba naprawy: dpkg: błąd parsowania, w pliku "/var/lib/dpkg/available" niedaleko linii 7620 brakujący package name
Offline
Odnośnie tego problemu, jak już w innym wątku padło:
dpkg --clear-avail
(to tak jakby ktoś przypadkiem tutaj trafił w poszukiwaniu rozwiązania)
BTW, coś podejrzanie dużo masz tych wiszących aktualizacji jak na wersję stable.
Offline
Ja bym zaczął od:
mv /var/lib/dpkg/available /var/lib/dpkg/available-stare apt-get/aptitude update
Jeżeli update się nie powiedzie z jakiegoś powodu, to przywracasz available-stare w miejsce available.
Jeżeli się powiedzie, to powinieneś mieć nowy plik available — przypuszczalnie już bez tego błędu.
Offline
Minio: dpkg --clear-avail właśnie to robi. Przenosi /var/lib/dpkg/available na /var/lib/dpkg/available-old i tworzy pusty.
Offline
ArnVaker: kiedy pisałem swoją wiadomość, Twojej jeszcze tutaj nie było (a tej w drugim wątku nie czytałem). W dpkg korzystam tylko z opcji -l, -L i -S, więc o --clear-avail nawet nie wiedziałem ;) .
Offline
A tak swoją drogą, to ten plik chyba do niczego szczególnego nie jest przydatny. W manie wspominają coś, że dselect tego używa, ale kto używa dselect? :) Mój ważył około 1M, jak go zaktualizowałem w ten sposób (nie wiem czy jest na to jakaś lepsza metoda):
dpkg --clear-avail for packages in /var/lib/apt/lists/*Packages ; do dpkg --merge-avail $packages ; done
To waży teraz 27M, zatem wcześniej mało co tam nawet było w nim.
Offline
Nie wiem czy przeglądałeś polsko- czy angielskojęzyczną stronę man. W tej drugiej piszą wprost:
A simpler one-shot command to retrieve and update the available file is dselect update. Note that this file is mostly useless if you
don't use dselect but an APT-based frontend: APT has its own system to keep track of available packages.
Z tego co widzę, to:
- apt przechowuje informacje w pliku /var/cache/apt/pkgcache.bin. To jakiś ich autorski format bazy danych, file mówi tylko że to plik z danymi. Można sobie w źródłach APT zobaczyć jak go odczytują — plik apt-pkg/pkgcache.cc. Odsyłają tam też do dokumentacji, której ja zlokalizować nie potrafię (chyba zdążyli ją usunąć, ale zapomnieli usunąć też odpowiedni komentarz).
- bez wywoływania dselect update czy ręcznego łączenia plików Packages, dpkg w pliku available przechowuje informacje o wszystkich pakietach, które kiedykolwiek były zainstalowane. Wnioskuję po:
a)
$ dpkg -l |grep -c '^ii' 1536 $ grep -c 'Package: ' /var/lib/dpkg/available 2611
b) w available mam wpis dotyczący kernela w odmianie liquorix, a będzie grubo ponad rok, jak repozytorium liquorix nie mam w sources.list.
Wychodzi na to, że ten plik nie jest szczególnie często wykorzystywany, ale dpkg manipuluje nim w trakcie instalacji oprogramowania. Gdy zauważy, że jest on źle sformatowany, wypluwa błąd.
Offline
A simpler one-shot command to retrieve and update the available file is dselect update.
Też to widziałem, ale ja nie mam dselect.
Minio napisał(-a):
Wychodzi na to, że ten plik nie jest szczególnie często wykorzystywany, ale dpkg manipuluje nim w trakcie instalacji oprogramowania. Gdy zauważy, że jest on źle sformatowany, wypluwa błąd.
Waśnie zastanawiałem się co tam trafia do niego normalnie i w jakich okolicznościach jest aktualizowany. :)
Anyway, rozwiązanie wciąż to samo:
dpkg --clear-avail
Za to teraz więcej wiemy na temat czym to ustrojstwo jest… I że nie warto się nim przejmować.
Offline