Portál AbcLinuxu, 1. května 2025 14:02
Za prvé, čistě statickou binárku nelze ve skutečnosti udělat. I když vše slinkujeme se -static, bude binárka z ne úplně triviálních důvodů za běhu linkovat část libc. Bude sice podstatně odolnější, protože libc se mění málo, ale stoprocentní kompatibilita to není.Compiling without libc
/etc/nsswitch.conf
. A to i když je zbytek libc linkován staticky. Což je logické, během překladu nemůže vědět jestli na cílovém systému nebude náááhodou třeba NIS Ditto, autor potřebuje změnit balíčkovací systém na takový, který umí vyčíslit závislosti předem. Třeba můj systém (portage) má možnost nechat si všechny závislosti vypsat do souboru vhodného k předhození wgetu. Dokonce jsem tak i jeden systém nainstaloval.Deb a Yum je zase umějí postahovat do předem zadaného adresáře.
Cannot mix incompatible Qt libraries
a nespusti se. uz sem to hlasil v AURu a taky primo autorovi, ale oba delaji jako by to vsem fungovalo a zadnej problem neexistoval ...
LD_LIBRARY_PATH=./lib ldd xnview | grep Qt
a potom v lib adresári LD_LIBRARY_PATH=. ldd *.so.4 | grep Qt
či tam nenájdeš kde sa vlastne používa systémové Qt. (predpokladám ale, že žiadny problém nenájdeš, práve kvôli Xn v názvoch knižníc)
[kotyz@behemot XnViewMP-026]$ LD_LIBRARY_PATH=./lib ldd xnview | grep Qt
libQtWebKitXn.so.4 => ./lib/libQtWebKitXn.so.4 (0xb66f5000)
libQtGuiXn.so.4 => ./lib/libQtGuiXn.so.4 (0xb5be3000)
libQtCoreXn.so.4 => ./lib/libQtCoreXn.so.4 (0xb593d000)
libQtXmlPatternsXn.so.4 => ./lib/libQtXmlPatternsXn.so.4 (0xb544c000)
libQtNetworkXn.so.4 => ./lib/libQtNetworkXn.so.4 (0xb5315000)
libQtSvgXn.so.4 => ./lib/libQtSvgXn.so.4 (0xb52bb000)
libQtXmlXn.so.4 => ./lib/libQtXmlXn.so.4 (0xb5271000)
[kotyz@behemot lib]$ LD_LIBRARY_PATH=. ldd *.so.4 | grep Qt
libQtCore.so.4:
libQtCoreXn.so.4:
libQtGui.so.4:
libQtCoreXn.so.4 => ./libQtCoreXn.so.4 (0xb6a07000)
libQtGuiXn.so.4:
libQtCoreXn.so.4 => ./libQtCoreXn.so.4 (0xb69bd000)
libQtNetwork.so.4:
libQtCoreXn.so.4 => ./libQtCoreXn.so.4 (0xb73a8000)
libQtNetworkXn.so.4:
libQtCoreXn.so.4 => ./libQtCoreXn.so.4 (0xb74ea000)
libQtOpenGL.so.4:
libQtGuiXn.so.4 => ./libQtGuiXn.so.4 (0xb6bef000)
libQtCoreXn.so.4 => ./libQtCoreXn.so.4 (0xb6949000)
libQtOpenGLXn.so.4:
libQtGuiXn.so.4 => ./libQtGuiXn.so.4 (0xb6c41000)
libQtCoreXn.so.4 => ./libQtCoreXn.so.4 (0xb699b000)
libQtSvg.so.4:
libQtGuiXn.so.4 => ./libQtGuiXn.so.4 (0xb6c63000)
libQtCoreXn.so.4 => ./libQtCoreXn.so.4 (0xb69bd000)
libQtSvgXn.so.4:
libQtGuiXn.so.4 => ./libQtGuiXn.so.4 (0xb6c1b000)
libQtCoreXn.so.4 => ./libQtCoreXn.so.4 (0xb6975000)
libQtWebKit.so.4:
libQtXmlPatternsXn.so.4 => ./libQtXmlPatternsXn.so.4 (0xb60d3000)
libQtGuiXn.so.4 => ./libQtGuiXn.so.4 (0xb560f000)
libQtNetworkXn.so.4 => ./libQtNetworkXn.so.4 (0xb54d8000)
libQtCoreXn.so.4 => ./libQtCoreXn.so.4 (0xb5231000)
libQtWebKitXn.so.4:
libQtXmlPatternsXn.so.4 => ./libQtXmlPatternsXn.so.4 (0xb61ef000)
libQtGuiXn.so.4 => ./libQtGuiXn.so.4 (0xb572b000)
libQtNetworkXn.so.4 => ./libQtNetworkXn.so.4 (0xb55f4000)
libQtCoreXn.so.4 => ./libQtCoreXn.so.4 (0xb534d000)
libQtXml.so.4:
libQtCoreXn.so.4 => ./libQtCoreXn.so.4 (0xb75c9000)
libQtXmlPatterns.so.4:
libQtNetworkXn.so.4 => ./libQtNetworkXn.so.4 (0xb71d7000)
libQtCoreXn.so.4 => ./libQtCoreXn.so.4 (0xb6f31000)
libQtXmlPatternsXn.so.4:
libQtNetworkXn.so.4 => ./libQtNetworkXn.so.4 (0xb7153000)
libQtCoreXn.so.4 => ./libQtCoreXn.so.4 (0xb6ead000)
libQtXmlXn.so.4:
libQtCoreXn.so.4 => ./libQtCoreXn.so.4 (0xb752b000)
libQtGuiXn.so.4 => ./libQtGuiXn.so.4 (0xb6d8a000)
libQtCoreXn.so.4 => ./libQtCoreXn.so.4 (0xb6ae4000)
Statickým linkováním nebo balením knihoven se lze sice těmto problémům vyhnout,I to pouze omezeně. Velká část dependency hellu vzniká jinými typy závislostí než závislostmi na dynamicky linkovaných knihovnách.
Vynikající! Něco takového jsem už dlouho chtěl. Proti jiným distribucím je to velký pokrok. Výhoda je, že každý program má svůj podadresář a v něm všechny soubory, které k tomu programu patří. Všechno je přehledně uspořádané, roztříděné a je pěkně vidět, co k čemu patří. Na rozdíl od jiných distribucí, ve kterých jsou soubory všech programů různě rozhazané po celém systému, bez jakéhokolv třídění, je v tom nepořádek a je to velmi nepřehledné. Já vím, že existují skripty, ve kterých je zapsané, ke kterému programu který soubor patří, takže přidat nebo odebrat program, se vším, co k němu patří, není problém, ale není to ono. Přijde mi to stejné, jak kdybych měl nepořádek ve věcech a všechny věci různě rozhazané a netříděné a vůbec neměl uklizené a místo úklidu bych si pořídil sešit, do kterého si jenom zapíšu, kde mám kterou věc, abych ji našel. Právě proto se mi Gobo Linux líbí, protože mám rád pořádek. Líbí se mi taky jakým způsobem jsou sestavené balíky, způsob instalace a odinstalace balíků, a taky to, že má oproti jiným distribucím přehlednější kompilací. Zřejmě bych našel i další výhody této distribuce.
Začal jsem se o Gobo Linux zajímat, ale mám pocit, že se asi přestal vyvíjet, protože nikde na internetu jsem neobjevil novější verzi, než z roku 2006. Stejně tak novější články jsem na internetu nenašel. Když jsem se díval do repozitářů Gobo linuxu, verze programů jsou tam dost zastaralé a některé novější programy tam nejsou vůbec. Například Audacity je tam nanejvýš ve verzi 1.2.3, Jamin tam není vůbec a tak dále. Tak by mě zajímalo, jak je to s vývojem této distribuce. Opravdu se přestala vyvíjet? Pokud se to přestalo vyvíjet, je to škoda, protože nic tak vynikajícího jsem neviděl. Nebo se změnil jenom název, jako například Mandrake na Mandrivu?
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.