rpm 5.x in Th

Jan Rękorajski baggins at pld-linux.org
Tue Sep 25 11:25:06 CEST 2012


On Tue, 25 Sep 2012, Paweł Gołaszewski wrote:

> On Sat, 22 Sep 2012, Jan Rękorajski wrote:
> > RPM 5 is now officially the package manager of PLD Th.
> > Complete package set (rpm, poldek, etc.) is available in th-test,
> > and builders have been upgraded to new rpm.
> > 
> > Some basic information is available on http://www.pld-linux.org/RPM5
> > feel free to add whatever you think may be important.
> 
> Wieści z upgrade:
> 
> 1. Nie wiem czy ten komunikat jest ważny czy nie:
> I rpm-5.4.10-12.i686  rpm-base-5.4.10-12.i686  rpm-build-5.4.10-12.i686  rpm-build-macros-1.653-1.noarch  
> I rpm-lib-5.4.10-12.i686  rpm-utils-5.4.10-12.i686
> D poldek-0.30-1.rc6.2.i686  poldek-libs-0.30-1.rc6.2.i686
> R poldek-0.30-1.rc5.14.i686  poldek-libs-0.30-1.rc5.14.i686  rpm-4.5-69.i686  rpm-base-4.5-69.i686  rpm-build-4.5-69.i686  
> R rpm-build-macros-1.650-2.noarch  rpm-lib-4.5-69.i686  rpm-utils-4.5-69.i686
> [...]
> rpmdb_checkversion: BDB0126 mmap: Invalid argument

Jesteś w stanie to powtórzyć?
Mnie się to trafiło raz, a kolejne uruchomienie rpmdb_checkversion już
błędu nie pokazało :(

> 2. Próba upgrade pakietów z ready _przed_ nowym rpm daje coś takiego:
> [...]
>   45:QtWebKit               ########################################### [ 58%]
>   46:QtXmlPatterns          ########################################### [ 60%]
> rpm: rpmdb.c:3429: rpmdbAdd: Warunek zapewnienia `(dlen & 1) == 0' nie został spełniony.

Podejrzewam, że rpm5 inaczej zapisuje w pakietach tagi RPM_I18NSTRING_TYPE, czyli tłumaczenia
i dlatego rpm4 się wywala na niektórych pakietach.

> Czy wszystkie nowobudowane pakiety nie powinny mieć wymagania nowego 
> rpm-a?

Żaden problem, tylko poproszę o sugestie jak to zrobić automagicznie.

> 3. Uruchomienie poldka po upgrade:
> # poldek -n th -n th-ready
> BDB0641 __db_meta_setup: /var/lib/rpm/Requirename: unexpected file type or format
> Wczytywanie [pndir]th...
> Wczytywanie [pndir]th...
> Wczytywanie [pndir]th...
> Wczytywanie [pndir]th...
> Wczytywanie [pndir]th-ready...
> Wczytywanie [pndir]th-ready...
> Przeczytano 40408 pakietów
> Usunięto 18993 zdublowane pakiety z listy dostępnych
> Wczytywanie [rpmdbcache]/var/lib/rpm...
> rpmdb: BDB0126 mmap: Zły argument
> rpmdb: /var/lib/rpm/Packages: BDB0088 DB_SECONDARY_BAD: Secondary index inconsistent with primary
> błąd: db3cget:db3.c:1406: dbcursor->get(-30972): BDB0088 DB_SECONDARY_BAD: Secondary index inconsistent with primary
> poldek: rpmdb.c:2346: rpmmiNext: Warunek zapewnienia `0' nie został spełniony.
> Przerwane
> #
> 
> Dopiero zrobienie dbconvert załatwiło sprawę.
> 
> 4. Czy w związku z tym dbconvert nie powinno być zawsze przy upgrade 
> uruchamiane?

Patrz punkt 1, rpmdb_checkversion powinien powiedzieć czy trzeba zrobić
upgrade - niestety jak nie będę w stanie zreprodukować błędu to go nie
naprawię :(
Ewentualnie można wymuszać dbconvert na jakimkolwiek błędzie przy próbie
otwarcia starej bazy.

-- 
Jan Rękorajski                                 | PLD/Linux
SysAdm                                         | http://www.pld-linux.org/
baggins<at>mimuw.edu.pl
baggins<at>pld-linux.org


More information about the pld-devel-pl mailing list