[python] freeze,dynamicke knihovny
BoneFlute
boneflute na taco-beru.name
Čtvrtek Listopad 13 15:34:18 CET 2008
Petr Zlamal napsal(a):
>
>> Ahoj,
>>
>> 2008/11/13 BoneFlute <boneflute na taco-beru.name>:
>>
>>> Úvaha, že nezkušený uživatel nebude kompilovat knihovny je naprosto správná.
>>> I já jako ne nezkušený uživatel bych se ti na nějaké kompilování vybodl. Na
>>> druhou stranu připojovat knihovny k programu nějakým nesystémovým způsobem
>>> se mi příčí.
>>>
>>
>> zajímalo by mě, proč se ti statické linkování knihoven zdá být
>> "nějakým nesystémovým způsobem".
>> Je to docela standardní způsob distribuce aplikací (netvrdím, že je to
>> ten nejlepší), právě pokud chci zajistit že ten distribuovaný
>> prográmek bude všude mít k dispozici knihovny které potřebuje, ve
>> správné verzi. Pro patchované knihovny je to snad i ten nejlepší
>> postup.
>>
> Vidim to stejne. Treba Py2exe to tak dela. Vsechno si najde a
> nakopiruje. Balik je sice pak dost velky, ale ruku na srdce, pri dnesni
> kapacite. A navic to proste pude vsude kam to prinesu, luxus. Je to sice
> proti vizi linuxu stavet takovyto balik, ale pro lidi co ho jen
> vyuzivaji kuli praci je neocenitelne, ze to "proste bezi" a nemusi se v
> tom stourat.
Stále mi přijde, že to zveličujete.
To je opravdu tak velký rozdíl mezi těmito dvěma situacemi?
- wget mujprog.zip; unzip mujprog.zip; cd mujprog; ./mujprog.sh
- wget mujprog.deb; sudo dpgk -i mujprog.deb; mujprog
Pokuším se na to dívat jako laik, ale opravdu tam nevidím problém.
Normální instalace.
> Navic, ne kazdy aktualizuje system, takze neni tezke se treba setkat s
> fedorou 5, ktera jiz nema podporu repozitaru. A pak shanet PyQt4 pro
> toto distro..no nevim nevim.
No to je fakt. Takový problém by nastat mohl. Ačkoliv to vůbec
neodpovídá na mnou nastolený spor. Zda instalovat standardně knihovny v
balíčcích, nebo zda je linkovat s aplikací.
Pokud přilinkuješ knihovnu k aplikaci, a nedejbože se to stane zvykem,
tak se může stát, že v systému budeš mět více aplikací se stejnou
knihovnou. Což je hloupé.
Pokud budeš knihovny distribuovat (všimněte si, že já netvrdím, že ty
knihovny v podobě balíčku nemohou být přibaleny u programu) v podobě
balíčku, tak se nainstalují jen v případě té situace, že v systému ještě
nejsou. Což považuji za čisté, systémové řešení.
> Mam na to podobny nazor, taky zavidim ty zakazniky co si pulku
> potrebnych veci dotahaji sami. Kolik jich tak je? 3 procenta?
Neflamuj.
Proč ještě preferuji systémové řešení?
Samozřejmě, že vytvoření balíčků pro distibuce není samosebou. Taky to
vyžaduje určitou námahu a má svá úskalí. Rozdíl je ale v tom, že jdete
cestou prošlapanou, kde mnoho problémů už někdo řešil, nebo řeší.
Případně můžete to být právě vy, kdo to vyřeší a pomůže ostatním. Také
všichni vývojáři s vámi budou spolupracovat.
Zatímco když to vaše řešení je založeno na tom, že všechny problémy, na
které narazíte tak musíte vyřešit (plus mínus) vy sami. A také můžete
narazit na situaci, kdy vývojáři linuxu vám nechtěně budou házet klacky
pod nohy. Protože jste předpokládali, že něco bude fungovat a ono hele,
byla to jen shoda náhod.
Možná právě původní problém je takovým příkladem. Možná vývojáři
nepředpokládali, že někdo bude chtít narvat celé Qt4 (kolik může mět
souborů a mega?) o jedné soukromé aplikace. A udělali pouze nějaký
wraper... Nevím, je to jen taková úvaha.
--
BF
Další informace o konferenci Python