[ LUGOS ] RPM paketi

Andrej Presern andrejp na luz.fe.uni-lj.si
Pon Feb 9 03:04:25 CET 1998


Bostjan Vlaovic wrote:
> 
> Zdravo!
> 
> A mi lahko prosim kdo razlozi, zakaj me vstrajno zezajo rpm paketi. Skoraj
> pri vsaki instalaciji mi javi, da kaksne zadeve ni, kjub temu, da se
> nahaja tocno tam kjer jo isce. Tudi drugace sem rahlo zmeden pri
> instalacijah, ker nikakor ne morem sprejeti da so zadeve tako cudno
> zastavljene. Zato vas prosim, ce sledite mojemu delu v nadaljevanju in
> povete kje ga lomim in kako bi se vi lotili. PROSIM!

Vsak rpm paket pove sistemu, kaj ponuja in kaj zahteva. Nekatere
starejse verzije rpmja ne zapisejo v svojo bazo vsega, kar paketi
ponujajo, paketi starejsega datuma pa tudi ne vsebujejo v spisku vsega,
kar ponujajo. Zato se ti lahko zgodi, da bo rpm rekel, da za instalacijo
novega paketa potrebuje nekaj, cesar se ni na sistemu, ceprav to
dejansko JE instalirano. To nima veze z datotekami, ki se dejansko
nahajajo na disku, pac pa s tem, kaj paketi ponujajo in kaj od tega si
rpm zapise v svojo bazo.

> Primer:
> Zelim instalirati xcdroast-0.95c-1.i386.rpm. Ta korak gre BP, vendar pri
> instalaciji ni preveril, ca je vse potrebno prisotno. Na WWW pise, da
> potrebuje tcl8.0 (nabavim:  tcl-8.0p2-2.i386.rpm), tix4.1 (
> tix-4.1.0.6-1.i386.rpm).
> Torej, xcd instalira BP. Ko ga pozenem javi: exec: tixwish-tk4.1: not
> found
> Grem torej najprej tix instalirat:
> [root na ferdo System]# rpm -i tix-4.1.0.6-1.i386.rpm
> failed dependencies:
>         libtk8.0.so is needed by tix-4.1.0.6-1
>         libtcl8.0.so is needed by tix-4.1.0.6-1
>         libm.so.6 is needed by tix-4.1.0.6-1
>         libdl.so.2 is needed by tix-4.1.0.6-1
>         libc.so.6 is needed by tix-4.1.0.6-1
>         ld-linux.so.2 is needed by tix-4.1.0.6-1
>         /sbin/ldconfig   is needed by tix-4.1.0.6-1
> 
> Zadnja vrstica je ze en primer nedoslednosti (a kaj gleda samo po rpm
> bazi?):

Ja.

> [root na ferdo System]# locate ldconfig
> /sbin/ldconfig
> /usr/man/man8/ldconfig.8
> 
> No, tu se vidi, da hoce tcl8.0, torej grem to...
> [root na ferdo System]# rpm -i tcl-8.0p2-2.i386.rpm
> failed dependencies:
>         libm.so.6 is needed by tcl-8.0p2-2
>         libdl.so.2 is needed by tcl-8.0p2-2
>         libc.so.6 is needed by tcl-8.0p2-2
>         ld-linux.so.2 is needed by tcl-8.0p2-2
>         /sbin/ldconfig   is needed by tcl-8.0p2-2
> 
> Vidim, da oba stokata po
>         libm.so.6 is needed by tcl-8.0p2-2
>         libdl.so.2 is needed by tcl-8.0p2-2
>         libc.so.6 is needed by tcl-8.0p2-2
> 
> Tu mi sedaj ni cisto jasno kako so povezane verzije z zadnjo stevilko.
> libc.so.6 je link na katere verzije?
> Zadnjo, ki jo najdem je libc-5.4.38-2.i386.rpm.

Glej moj prejsnji mail na temo libc/glibc.

> [root na ferdo System]# rpm -i libc-5.4.38-2.i386.rpm
> failed dependencies:
>         ld.so >= 1.9.5 is needed by libc-5.4.38-1
> 
> Tu pa sedaj ne upam naprej. Ce dam rpm -U ld.so-1.9.5-1.src.rpm nekaj
> dela, a rezultata ne vidim. rpm -qi ld.so se vedno javi staro verzijo.
> Ce zelim najprej rpm -e ld.so, pa javi vse mozne programe, ki ga
> potrebujejo. A je varno zadevo kar na silo deinstalirati?
> Zakaj ne dela flag -U oz. kaj delam narobe?

Ce malo bolje pogledas ime paketa, bos opazil, da je to SOURCE paket,
torej paket, ki vsebuje izvorno kodo programa. Source paketi se
instalirajo v /usr/src/redhat, nato pa jih je potrebno se prevesti. Ce
uporabljas PCja, baziranega na IA32, bos raje iskal pakete z imenom
xy.i386.rpm namesto xy.src.rpm, saj so to ze prevedeni paketi.

Nikakor ti ne priporocam, da (razen v izobrazevalne namene, izkusnja bo
namrec zelo temeljita in globoka..;) odstranis paket ld.so, saj vsebuje
t.i. dinamicni povezovalnik (dynamic linker, ELF program interpreter, ce
ti je tako ljubse), ki nalozi deljene knjiznice, ki jih program
potrebuje in ki je OSNOVA ZA DELOVANJE KATEREGAKOLI NESTATICNO
POVEZANEGA PROGRAMA! (ja, brez tega ti ne bo delalo PRAKTICNO NIC na
sistemu, vkljucno z vsemi shelli, initom in podobnim!)

Drugace pa na silo ne mores deinstalirati (--force), lahko pa rpmju
narocis, naj zanemari dejstvo, da je od paketa odvisno delovanje drugih
programov (= se nekaj bo crknilo, ce bos to deinstaliral), in sicer z
opcijo --nodeps.

> Lepo prosim za razlago. Tudi vse pripombe na moj pristop so ZELO
> zazeljene.

Ne zagaj veje, na kateri sedis. Ce ne ves, na kateri veji sedis, ne
zagaj.

Andrej




Dodatne informacije o seznamu Starilist