Portál AbcLinuxu, 2. května 2025 17:38
Njn, ono to chce číst před každým upgradem changelog. Pokud se knihovny nahrávaj dynamicky, tak swaret, resp. samotné ldd nepomůže. Často to lze ale zjistit spuštěním z terminálu, resp. jeho emulace v X a chyba při nahrávání knihovny se tam ukáže.+--------------------------+ Thu Apr 21 14:26:29 PDT 2005 ... kde/kdebase-3.4.0-i486-2.tgz: Recompiled to link with Cyrus SASL. kde/kdepim-3.4.0-i486-2.tgz: Recompiled to link with Cyrus SASL. n/cyrus-sasl-2.1.20-i486-1.tgz: Added Cyrus SASL library (for Kmail). ...
ldd program
...
Verite, ze tuhle trivialitu zna asi tak kazdy desaty uzivatel Linuxu? Pak se mi nekdo divte, ze furt nadavam na "windowsovateni" Linuxovych distribuci a cim dal vetsi lamovitost uzivatelu... Jeste par let a situace v Linuxu bude uplne stejna jako u Woken - dokonce i kvalitni operacni system totalne polozi dementni luseri proc sakra nekdo upgraduje, kdyz ani nevi, co se zmenilo???????)...
Nemluve o tom, ze chybejici knihovny zjistime snadno: ldd program
...
Bezva. Mel jsem za to, ze zavislosti balicku je uz kazda rozumna distribuce schopna resit sama. Dalsiho komentare se radsi zdrzim...
ldd
zjistovat, proc mi nefunguje distribucni balicek, ktery by fungovat mel. Taky mi neprijde rozumne, ze tam neni PAM, ze vykuchali Gnome, a spousta dalsich veci, ale to uz jen tak na okraj.
hrozne by me zajimalo jaky nastroj bys v jakekoli jine distribuci pouzil ke zjisteni pripadnych chybejicich knihoven... poucZadny - to ma resit distribucni spravce balicku a balicek sam (spec v RPM, ebuild, atd.), ne uzivatel! Pokud to nefunguje, tak je vsechno spatne, neni starost uzivatele, aby resil zavislosti distribucnich balicku. Pokud to nejaka distribuce provozuje tak, ze si uzivatele dohledava zavislosti pred
ldd
a changelog, tak ponekud zaspala dobu...
K tvemu vylevu ohledne PAM se snad radsi nebudu vyjadrovat, patrne jsi vubec nepochopil jeho princip, takze je debata zbytecna.
ldd
je fakt user-friendly nastroj na reseni takovychto problemu - viz vypis z jednoho stareho neudrzovaneho kramu, kde jeste mam KDE:
$ ldd /usr/kde/3.2/bin/kmail linux-gate.so.1 => (0xffffe000) libkmailprivate.so.0 => /usr/kde/3.2/lib/libkmailprivate.so.0 (0x40016000) libkhtml.so.4 => /usr/kde/3.2/lib/libkhtml.so.4 (0x403ba000) libkjs.so.1 => /usr/kde/3.2/lib/libkjs.so.1 (0x406a4000) libpcreposix.so.0 => /usr/lib/libpcreposix.so.0 (0x4071d000) libpcre.so.0 => /usr/lib/libpcre.so.0 (0x40720000) libkdeprint.so.4 => /usr/kde/3.2/lib/libkdeprint.so.4 (0x40730000) libkparts.so.2 => /usr/kde/3.2/lib/libkparts.so.2 (0x407f9000) libkutils.so.1 => /usr/kde/3.2/lib/libkutils.so.1 (0x4083b000) libkwalletclient.so.1 => /usr/kde/3.2/lib/libkwalletclient.so.1 (0x4088a000) libkdenetwork.so.2 => /usr/kde/3.2/lib/libkdenetwork.so.2 (0x4089a000) libkspell.so.4 => /usr/kde/3.2/lib/libkspell.so.4 (0x40965000) libkdepim.so.1 => /usr/kde/3.2/lib/libkdepim.so.1 (0x40967000) libmimelib.so.1 => /usr/kde/3.2/lib/libmimelib.so.1 (0x409c3000) libktnef.so.1 => /usr/kde/3.2/lib/libktnef.so.1 (0x409f8000) libksieve.so.0 => /usr/kde/3.2/lib/libksieve.so.0 (0x40a0b000) libkcal.so.2 => /usr/kde/3.2/lib/libkcal.so.2 (0x40a18000) libkabc.so.1 => /usr/kde/3.2/lib/libkabc.so.1 (0x40af0000) libvcard.so.0 => /usr/kde/3.2/lib/libvcard.so.0 (0x40b92000) libkresources.so.1 => /usr/kde/3.2/lib/libkresources.so.1 (0x40bb8000) libkio.so.4 => /usr/kde/3.2/lib/libkio.so.4 (0x40bda000) libkdeui.so.4 => /usr/kde/3.2/lib/libkdeui.so.4 (0x40edb000) libkdesu.so.4 => /usr/kde/3.2/lib/libkdesu.so.4 (0x41177000) libkdecore.so.4 => /usr/kde/3.2/lib/libkdecore.so.4 (0x41191000) libDCOP.so.4 => /usr/kde/3.2/lib/libDCOP.so.4 (0x41377000) libresolv.so.2 => /lib/libresolv.so.2 (0x413ac000) libart_lgpl_2.so.2 => /usr/lib/libart_lgpl_2.so.2 (0x413bd000) libkdefx.so.4 => /usr/kde/3.2/lib/libkdefx.so.4 (0x413d6000) libqt-mt.so.3 => /usr/qt/3/lib/libqt-mt.so.3 (0x41401000) libmng.so.1 => /usr/lib/libmng.so.1 (0x41ad8000) libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x41b1b000) libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x41b3d000) libXrandr.so.2 => /usr/X11R6/lib/libXrandr.so.2 (0x41b45000) libXcursor.so.1 => /usr/X11R6/lib/libXcursor.so.1 (0x41b49000) libXft.so.2 => /usr/X11R6/lib/libXft.so.2 (0x41b53000) libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x41b66000) libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x41b91000) libexpat.so.0 => /usr/lib/libexpat.so.0 (0x41bff000) libdl.so.2 => /lib/libdl.so.2 (0x41c1e000) libpng.so.3 => /usr/lib/libpng.so.3 (0x41c21000) libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x41c50000) libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x41c60000) libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x41d3f000) libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x41d48000) libpthread.so.0 => /lib/libpthread.so.0 (0x41d5f000) libXrender.so.1 => /usr/X11R6/lib/libXrender.so.1 (0x41db0000) libutil.so.1 => /lib/libutil.so.1 (0x41db8000) libz.so.1 => /usr/lib/libz.so.1 (0x41dbb000) libfam.so.0 => /usr/lib/libfam.so.0 (0x41dc9000) libstdc++.so.5 => /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.2/libstdc++.so.5 (0x41dd2000) libgcc_s.so.1 => /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.2/libgcc_s.so.1 (0x41e8b000) libm.so.6 => /lib/libm.so.6 (0x41e94000) libc.so.6 => /lib/libc.so.6 (0x41eb6000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)Takze co si stezujes, v tom prece trivialne naleznes chybejici zavislost, kdo to nezvladne, tak je nesvepravny blb. BTW, zadnou knihovnu pochazejici z cyrus-sasl tam nevidim, to bude asi vymozenost novych verzi, aby tech zavislosti bylo vic. :-P
linux-gate.so.1 => (0xffffe000)
myslim, ze kazdy lehce vzdelany clovek chybejici zavislosti vidi na prvni pohled...Hmm, ted ses opravdu predvedl... Az prijdes na to, cos tady placnul za nebetycnou pitomost, tak zase prijd poradit ostatnim, jak zjistovat zavislosti, "experte".linux-gate.so.1 => (0xffffe000)
ldd
nenajde, protoze kouka jenom do tabulek linkeru, ale na to zase mame napriklad nastroj strace
, ktery umoznuje najit nejenom chybejici knihovnu, ale jeho vyuziti je mnohem sirsi...
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.