[linux] Re: vraag over benaming van libs

Mark Janssen maniac.nl op gmail.com
Do Nov 3 13:27:39 CET 2011


2011/11/3 Julien Michielsen <julien op michkloo.xs4all.nl>:
> Zojuist is het me met een symbolic link gelukt een lib werkend te krijgen.
> Ik had libpng.so.2 nodig, maar die is er niet meer. Wel heb ik
> libpng12.so.0.46.0 op mijn systeem staan, en met het commando
> sudo ln -s  libpng12.so.0.46.0 libpng.so.2 had ik die lib virtueel
> actief gemaakt.  Maar een leek als ik is flink verrast dat libpng12 het
> werk van libpng blijkt te doen, en ook dat 0.46.0 functioneel het zelfde
> doet als 2.  Waarom zijn die twee naamcomponenten  gelijk? Kan een
> lagere naamsvorm (libpng.so.2) ongestraft naar een hogere versie wijzen
> wanneer de lagere deel uitmaakt van de hogere versie, en kun je al uit de
> naam zien dat bv. libpng.so.2 deel uitmaakt van de latere en grotere
> libpng12.so.0.46.0?  Staan de naam-regels gedocumenteerd?
> bvd
> Julien
Nee, je kan niet altijd ongestraft zo'n symlink maken, en er is ook geen
garantie dat alles nu werkt zoals je zou verwachten.
Je programma zal nu vast opstarten, maar met sommige png-bewerkingen kan
het alsnog falen.

Je hebt niet gespecificeerd welke distributie je gebruikt, maar ik heb het
volgende uit de readme van de debian versie van libpng gevist:

*There have been changes in the way libpng is handled. Currently, there
are 2 versions of libpng in Debian at a time : libpng10 and libpng12,
**formerly known as libpng2 and libpng3.
*
*
*
Over het algemeen zal de so-name (.so.X) worden aangepast als er grote
incompatibilities zitten in de nieuwe versie t.o.v. de oude versie.
Hier zie je dus dat tussen libpng10 (software versie) en libpng12
(software-versie) de library-interface zodanig is aangepast dat deze een
nieuwe so-name heeft gekregen.

Dit heeft tot gevolg dat alle tools die gebruik maken van libpng opnieuw
moeten worden gecompiled, zodat ze libpng.so.3 gaan gebruiken.
Indien je software slechts zeer beperkt gebruik maakt van functies van
libpng, dan zou het soms kunnen dat je met een symlink en de oude versie
uit de voeten kan.

Echter, de beste/meest veilige methode, is het zoeken van de betreffende
versie van libpng voor de gebruikte distributie.

-- 
Mark Janssen  --  maniac(at)maniac.nl
Unix / Linux Open-Source and Internet Consultant
Maniac.nl Sig-IO.nl Vps.Stoned-IT.com





More information about the Linux mailing list