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
[b]Minio[/b]: [tt]dpkg --clear-avail[/tt] właśnie to robi. Przenosi /var/lib/dpkg/available na /var/lib/dpkg/available-old i tworzy pusty.
Offline
[b]ArnVaker[/b]: 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.[/quote]
Z tego co widzę, to:
- apt przechowuje informacje w pliku [tt]/var/cache/apt/pkgcache.bin[/tt]. To jakiś ich autorski format bazy danych, [tt]file[/tt] mówi tylko że to plik z danymi. Można sobie w źródłach APT zobaczyć jak go odczytują — plik [tt]apt-pkg/pkgcache.cc[/tt]. 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 [tt]dselect update[/tt] 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)Kod:
$ dpkg -l |grep -c '^ii' 1536 $ grep -c 'Package: ' /var/lib/dpkg/available 2611b) 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.
Spinnen Essen: [url=http://fluxboxpl.org/portal/]FluxboxPL[/url] [url=http://przepis-na-lo.pl/]Przepis na LibreOffice[/url]
Offline
A simpler one-shot command to retrieve and update the available file is dselect update.[/quote]
Też to widziałem, ale ja nie mam dselect.
[quote=Minio]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.[/quote]
Waśnie zastanawiałem się co tam trafia do niego normalnie i w jakich okolicznościach jest aktualizowany. :)
Anyway, rozwiązanie wciąż to samo:Kod:
dpkg --clear-availZa to teraz więcej wiemy na temat czym to ustrojstwo jest… I że nie warto się nim przejmować.
[img]http://svn.debianart.org/themes/generic/spinner/spinner48px-moreblue.png[/img]
Offline
Time (s) | Query |
---|---|
0.00012 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00095 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.189.184.99' WHERE u.id=1 |
0.00093 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.189.184.99', 1732551155) |
0.00039 | SELECT * FROM punbb_online WHERE logged<1732550855 |
0.00051 | SELECT topic_id FROM punbb_posts WHERE id=193250 |
0.00004 | SELECT id FROM punbb_posts WHERE topic_id=20581 ORDER BY posted |
0.00051 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=20581 AND t.moved_to IS NULL |
0.00007 | SELECT search_for, replace_with FROM punbb_censoring |
0.00143 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=20581 ORDER BY p.id LIMIT 0,25 |
0.00071 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=20581 |
Total query time: 0.0057 s |