04. 12. 2005 Kdy mě Gentoo štve

Portage je skvělá věc. Má spoustu plusů, o kterých víme. Já se v tomto zápisu budu zabývat mínusy.

Portage je pomalý. Byl navržen určitým způsobem, který před léty vyhovoval. S tím, jak se zvýšil počet ebuildů, se nutně musí změnit jeho architektura. Ano, bolelo by to. Ale není vhodné to odkládat. Po seznámení s vývojem tohoto nástroje jsem se však bohužel ujistil v tom, že současný návrh (ala rsync) potrvá nadále. Minimálně několik dalších let.

Řešení vidím dvě. První nešťastná věc je podle mého názoru kombinace velkého množství shell skriptů a adresářů. Díky tomu, že se používá rsync pro synchronizaci jsou ty adresáře nutné. Co třeba tento návrh: uživatel by měl pouze databázi „balíčků“ a závislostí (jako u RPM) a ebuild včetně dodatečných souborů a samozřejmě zdrojových kódů by se stahovaly, až když by byl proveden příkaz emerge? Šetřilo by se tím pásmo, čas i diskový prostor. (*)

Jako druhý (realičtější) plán je postupné zušlechťování stromu portage (odstraňování přebytečných věcí), optimalizace programu (v tuto chvíli hodně bolí pomalé závislosti) a podpůrných skriptů. Stávající alternativní backendy ale stejně portage nezrychlí (nástroj musí prostě chodit do spousty adresářů). Nainstalováním souborového systému reiser4 věc nechci řešit.

Pomalost vývoje. O portage se stará asi tři stovky vývojářů (resp. k CVS stromu mají oni přístup). I já příspívám pomocí Bugzilly, jenže ta je opravdu zahlcena záznamy a vývojáři reagují dost pomalu. Velmi bych uvítal nějaký oficiální devel strom (něco jako gentooexperimental.org), který by však byl funkční a podporován komunitou Gentoo. Uživatelé by si mohli ke stávajícímu stromu přidat tento, ve kterém by všechny balíky byly automaticky maskovány, eventuelně by zde byla možnost volit mezi dvěma verzemi (v oficiální a v „unstable“). Tato větev by byla veřejná (něco na způsob WIKI).

Možná by pomohlo také vylepšit feedback od uživatelů. Napadají mě nějaké automatizované volby, zda unmaskovat ebuild. Často se stane, že developer z Bugzilly přesune (upraví) nový ebuild, pochopitelně jej zamaskuje (resp. dá mu arch flag) a bug uzavře. Pro něj je to hotové, ale často se stane, že tento ebuild je pak měsíce a měsíce stále nestabilní.

Konkrétní problémy. Během používání Gentoo sice oceníte výhody, které s sebou přináší portage. Časem ale narazíte na různé konkrétní překážky. Třeba nekonečné (stále nevyřešené) problémy s wxGTK (jedna aplikace potřebuje zakompilovánu podporu pro Unicode, jiná zase s Unicode nefunguje - a teď se rozhodni). Tady ovšem musím poznamenat, že těmito „lokálními“ problémy trpí i jiné balíčkovací systémy (jen se odpovědnost přenáší více na vývojáře/package maintainera).

Smyslem zápisu je rozproudit diskusi na toto téma. Gentoo tu byl, je a bude. Je to vyjímečná distribuce.

(*) - možná by stálo za to tuto myšlenku rozvinout. Opravdu nevidím důvod, prož ebuildy a podpůrné soubory (Changelogy, digesty, patche…) udržovat na lokálním disku. Názory?
21 April 2010 | oldblog
twitter.com linkedin.com
google.com/+ facebook.com
flickr.com youtube.com