Portál AbcLinuxu, 1. května 2025 21:18
Po dlouhém uvažování jsem se rozhodl, že jako balík aplikací pro organizaci zvolím balík KDE PIM, obsahující mimojiné KMail, KAddressBook a podobné. Jaké však bylo moje rozčarování, když KMail odmítal vybírat poštu přes POP3...
První co mě napadlo, jestli mi nechybí nějaká knihovna. Provedl jsem tedy opět kompletní upgrade balíčků za pomoci swaretu - ten však u závislostí měl problémy, protože web swaret.org prochází jakou přeorganizací. Napadlo mě, že Slax, jakožto postavený na Slackware, by tento balíček mohl mít taky, spustil jsem tedy virtuální počítač a nabootoval Slax. Docela mě zklamalo, že zde KMail pracuje v pořádku. Snažil jsem se porovnat balíčky mezi mým systémem a Slaxem, avšak bezúspěšně.
Až později jsem zjistil, že se dívám špatně. Po TŘÍHODINOVÉM hledání všude možně (včetně diskuzí na abclinuxu), zadávání všemožných frází do vyhledáváčů na mě google vyblafl tento příspěvek a poradil nainstalovat balíček cyrus-sasl. První co mě napadlo bylo, podívat se na Slax, zda-li je tam tento balíček přítomný - a je! Trošku jsem si ulevil. Nainstaloval jsem balíček na svůj Slackware a s čelem plným potu, s roztlučelým srdcem jsem čekal na to, jak dopadne můj klik na ikonku obálky se zelenou šipečkou. Chvíli se nic nedělo, ale to jsem si nevšiml stavového řádku - zvláště jeho pravé části, kde ukazatel ukazoval počet stažených zpráv! Budiž světlo!
Čili Ti, co máte problémy k vybíráním pošty v KMail 1.8, (balíček KDE PIM 3.4) v Slackware, řešení máte na dosah. Pěkný večer...
Tiskni
Sdílej:
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... ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.