[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