Portál AbcLinuxu, 30. dubna 2024 10:49

Zápisky z Berlína - 2. část: Plány LSB

8.1.2007 10:29 | Přečteno: 1376× | Výběrový blog

Hlavním tématem celé konference bylo určení cílů pro další verze standardu LSB (aktuální verze je 3.1, připravuje se verze 3.2 a větší změny se chystají pro verzi 4.0) a stanovení konkrétních úkolů s tím souvisejících. Plány jsou poměrně rozsáhlé a o leckterých pasážích se strhla poměrně značná diskuse. Následuje stručný přehled toho, co bylo odsouhlaseno.

(Poznámka inspirovaná reakcemi na předchozí díl: Všechny údaje čerpám ze svých poznámek a paměti; ani jedno není dokonalé. Pokud něco z toho, co je tu psáno, vypadá jako úplná pitomost, pravděpodobně je to proto, že jsem něco nepochopil, překroutil nebo si to špatně pamatuji. Za všechny chyby se předem omlouvám.)

Jednotné API pro instalaci softwaru

Firmy vyvíjející software chtějí mít vlastní instalátor, nezávislý na balíčkovacím systému, fungující stejně jako ve Windows. Tedy malý program, který uživatel spustí, on všechno nainstaluje, během toho kreslí obrázky, animuje video, ptá se uživatele na různé věci, kontroluje licence a čert ví, co ještě. Leckdo (třeba já) to nepovažuje za moc dobrý nápad, ale oni to prostě chtějí. (Příčin, proč to chtějí, je pravděpodobně víc, od prostého lpění na starých postupech až po fakt, že každé distro má svůj balíčkovací systém a připravovat od každé verze programu dvacet různých typů balíčků by otrávilo i mrtvého.)

Na konferenci jsme se tedy zabývali tím, jak tento nápad umožnit tak, aby napáchal co nejméně škod. Bylo rozhodnuto, že sestavíme oficiální API, které bude nezávislé na balíčkovacím systému. Jak konkrétně to bude vypadat a jak silná vrstva různých pomocných funkcí k tomu bude potřeba, není dosud jasné; v nejhorším případě vznikne druhý balíčkovací systém, zcela nezávislý na tom systémovém.

Zájemcům doporučuji k přečtení tento a tento blogpost Iana Murdocka (jeden z hlavních organizátorů LSB), kde se dosti detailně zamýšlí nad touto problematikou. Také si můžete prohlédnout webové stránky pracovní skupiny LSB pro řešení problému balíčků a instalátorů.

Začlenění Javy do LSB

Do standardu LSB v 4.0 by měla přibýt Java. K tomu je třeba stanovit, jaké chování interpreteru Javy se bude považovat za standard a jaké funkce budou garantovány. To není jednoduché, neboť v dnešní době existuje několik různých implementací Javy, které v důsledku různých extenzí, které si každý výrobce sám za sebe přidělal, už nejsou kompatibilní. Tvůrci aplikací psaných v Javě proto raději ke svému produktu rovnou přiloží i celé běhové prostředí Javy. Tento uzel bude třeba nějakým způsobem rozplést, buď standardizací holého základu (který ale bude těžké používat), nebo tím, že si vybereme určitá rozšíření (pak ale nevím, jak to budeme prosazovat).

Začlenění Pythonu

Součástí další verze LSB standardu bude interpreter Pythonu. Zde je situace trochu jasnější než u Javy, protože různých interpreterů není tolik. Bylo rozhodnuto, že standardizovat se bude originální interpret psaný v jazyce C (CPython), další alespoň prozatím ne. Bude jen třeba rozhodnout, které z mnoha rozšíření Pythonu jsou natolik profláknutá, aby se dala vložit do standardu. Zatím není zcela jasné, zda bude standard zahrnovat i binární rozhraní Pythonu směrem k C a zda by se měl standardizovat i jazyk jako takový (jeho syntaxe) nebo jen stanovit, že interpret musí být schopen bezchybně provádět nějaké konkrétní skripty.

Začlenění D-busu

Na konferenci bylo odsouhlaseno, že knihovna D-Bus, sloužící pro komunikaci mezi aplikacemi, je natolik rozšířená, že bude přidána do standardu LSB 3.2 jako volitelný standard.

Nové funkce z glibc

V rámci obvyklých aktualizací standardu budou do LSB 3.2 začleněny nové funkce, které se objevily v glibc. Přesný soupis najdete zde. Nejzajímavější je patrně rozhodnutí o přidání funkcí *at() a funkcí týkajících se služby inotify, které jsou sice velmi nové, ale velmi žádané.

       

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

8.1.2007 11:22 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Zápisky z Berlína - 2. část: Plány LSB
Odpovědět | Sbalit | Link | Blokovat | Admin
Ad instalační API a Java v LSB - řeší se nějak i knihovny Javy? Java je v současné době přesně v takovém stavu, kterému se snaží zabránit balíčkovací systémy, a který tak prosazují ti, co požadují instalační API - každá aplikace se stará o knihovny sama, takže nakonec máte v systému tu samou knihovnu (jar) mnohokrát, pokaždé s jinou aplikací, často se liší jen v setinkové verzi, navíc při updatu knihovny v mainstreamu se musí o update i v konkrétní aplikaci postarat autor aplikace.
Bluebear avatar 8.1.2007 21:43 Bluebear | skóre: 30 | blog: Bluebearův samožerblog | Praha
Rozbalit Rozbalit vše Re: Zápisky z Berlína - 2. část: Plány LSB
Ad instalační API a Java v LSB - řeší se nějak i knihovny Javy?

To bohužel nevím; o tom, jak se v Javě používají knihovny, mám jen velmi mlhavou představu. Očekával bych, že nejdřív se bude řešit standardizace základního javovského runtimu s jeho nejvlastnějšími knihovnami, a pak případně to ostatní.
To mi připomíná, jak jsem si pořídil květináč, že v něm budu mít květinu. Opravdu tam byla, ale potom být přestala...
8.1.2007 12:36 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Zápisky z Berlína - 2. část: Plány LSB
Odpovědět | Sbalit | Link | Blokovat | Admin
Bylo rozhodnuto, že sestavíme oficiální API, které bude nezávislé na balíčkovacím systému.
Kam tohle API bude instalovat software? A co udělá, když soubor, který se má nainstalovat, již existuje?
Quando omni flunkus moritati
8.1.2007 13:04 xkesh | skóre: 46 | blog: eXtempore
Rozbalit Rozbalit vše Re: Zápisky z Berlína - 2. část: Plány LSB
Kam tohle API bude instalovat software?
Přece do /Program Files/Company Label/Version/.
A co udělá, když soubor, který se má nainstalovat, již existuje?
Přepíše.

Nač vymýšlet něco nového, když tu máme osvědčené ;-)
Bluebear avatar 8.1.2007 14:41 Bluebear | skóre: 30 | blog: Bluebearův samožerblog | Praha
Rozbalit Rozbalit vše Re: Zápisky z Berlína - 2. část: Plány LSB
V případě takového řešení bych to spíš viděl na /opt/third_party/Company Label/Version/.

A co udělá, když soubor, který se má nainstalovat, již existuje?

To by se při takové organizaci nemělo nikdy stát, a pokud přece, API by mělo odmítnout ten soubor přepsat, případně umožnit uživateli volbu (pokud je to možné).
To mi připomíná, jak jsem si pořídil květináč, že v něm budu mít květinu. Opravdu tam byla, ale potom být přestala...
Bluebear avatar 8.1.2007 14:39 Bluebear | skóre: 30 | blog: Bluebearův samožerblog | Praha
Rozbalit Rozbalit vše Re: Zápisky z Berlína - 2. část: Plány LSB
To API by mělo komunikovat s balíčkovacím systémem, takže v ideálním případě by se měly všechny soubory nainstalovat tam, kam by je nainstaloval balíčkovací systém sám...
To mi připomíná, jak jsem si pořídil květináč, že v něm budu mít květinu. Opravdu tam byla, ale potom být přestala...
8.1.2007 14:40 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Zápisky z Berlína - 2. část: Plány LSB
No nevím, raději bych, aby se tyto third-party věci dávali do /opt, jak stanovuje FHS.
When your hammer is C++, everything begins to look like a thumb.
8.1.2007 14:45 xkesh | skóre: 46 | blog: eXtempore
Rozbalit Rozbalit vše Re: Zápisky z Berlína - 2. část: Plány LSB
No nevím, raději bych, aby se tyto third-party věci dávali do /opt, jak stanovuje FHS.
Nebojte, jistě si budete moci vybrat distribuci, která to bude dělat právě podle vašeho gusta :-D
8.1.2007 15:15 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Zápisky z Berlína - 2. část: Plány LSB
Nevím, proč by se měla nějaká distribuce řídit mým gustem a ne standardy :-P
When your hammer is C++, everything begins to look like a thumb.
Bluebear avatar 8.1.2007 21:48 Bluebear | skóre: 30 | blog: Bluebearův samožerblog | Praha
Rozbalit Rozbalit vše Re: Zápisky z Berlína - 2. část: Plány LSB
Nevím, proč by se měla nějaká distribuce řídit mým gustem a ne standardy :-P

A proč ne? V LSB, stejně jako kdekoli jinde, rozhodují lidé, a ti jsou ovlivnitelní. Doporučuji nastudovat dílo Nicola Machiavelliho a pustit se do toho. :-)
To mi připomíná, jak jsem si pořídil květináč, že v něm budu mít květinu. Opravdu tam byla, ale potom být přestala...
8.1.2007 15:58 David Jaša | skóre: 44 | blog: Dejvův blog
Rozbalit Rozbalit vše Re: Zápisky z Berlína - 2. část: Plány LSB
... pokud bude vaše gusto odpovídat LSB. Jinak máte smůlu. ;-)
8.1.2007 17:28 xkesh | skóre: 46 | blog: eXtempore
Rozbalit Rozbalit vše Re: Zápisky z Berlína - 2. část: Plány LSB
... pokud bude vaše gusto odpovídat LSB. Jinak máte smůlu. ;-)
To si povíme, až se to dohodne... a přesto nebude dodržovat ;-)
8.1.2007 20:52 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Zápisky z Berlína - 2. část: Plány LSB
No a v případě že Next-Next-Finish aplikace bude chtít přepisovat soubory, co se stane potom? Nevím jak jinde, ale dpkg v takovém případě instalaci ukamžitě ukončí a NNF se tím pádem nenainstaluje.

A pokud ten soubor bude shodou okolností nějaká knihovna (.so) s nekompatibilní verzí, tak jste v háji, protože buď nebude fungovat NNF nebo zbytek systému. A už musíte buď dokopat výrobce ke změně umístění toho souboru (ale to vám dpkg taky nedovolí nebo aspoň bude nadávat) nebo k jeho přejmenování.

Máte v plánu, jak vyřešit tohle?
Quando omni flunkus moritati
8.1.2007 21:21 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Zápisky z Berlína - 2. část: Plány LSB
Oops, přehlídl jsem, že jsi už odpovídal:
To by se při takové organizaci nemělo nikdy stát, a pokud přece, API by mělo odmítnout ten soubor přepsat, případně umožnit uživateli volbu (pokud je to možné).
A když to možné nebude?
Quando omni flunkus moritati
Bluebear avatar 8.1.2007 21:39 Bluebear | skóre: 30 | blog: Bluebearův samožerblog | Praha
Rozbalit Rozbalit vše Re: Zápisky z Berlína - 2. část: Plány LSB
A když to možné nebude?

Podle mého názoru by se měla v takovém případě ohlásit chyba a přerušit instalace. Pokud byly provedeny nějaké změny, vrátí se zpět.

Uvědomuji si, že "vrácení zpět" není jednoduchá úloha, ale řešit se to dá, například:

1. API bude registrovat změny a poskytne funkci, dejme tomu, rollback(), která automaticky všecko vrátí. To je ten nejměkčí způsob, spoléhající na to, že autor instalátoru bude slušný a všechny změny bude opravdu dělat skrze to API a ne mimo. (Což se do jisté míry dá staticky ověřit, například ujištěním, že binárka instalátoru se linkuje jen proti našemu API a proti ničemu jinému.)

2. Celá instalace bude probíhat v nějakém druhu karantény (sandboxu), například pomocí chrootu nebo vrstveného filesystému (nemůžu si vzpomenout, jak se ten nástroj jmenuje, ale vy mi rozumíte, že? :-) ), takže když instalátor neuspěje nebo se zhroutí, celý obsah karantény se zahodí a systém zůstane nezměněn.
To mi připomíná, jak jsem si pořídil květináč, že v něm budu mít květinu. Opravdu tam byla, ale potom být přestala...
8.1.2007 22:37 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Zápisky z Berlína - 2. část: Plány LSB
Možná, že to vrácení zpět bude jednodušší úloha, než přesvědčit výrobce programu, že kolize v názvu souborů je chyba ;-)
Quando omni flunkus moritati
9.1.2007 08:10 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Zápisky z Berlína - 2. část: Plány LSB
Uvědomuji si, že "vrácení zpět" není jednoduchá úloha, ale řešit se to dá, například:
Je to jednoduché.
2. Celá instalace bude probíhat v nějakém druhu karantény (sandboxu), například pomocí chrootu nebo vrstveného filesystému (nemůžu si vzpomenout, jak se ten nástroj jmenuje, ale vy mi rozumíte, že? :-) ), takže když instalátor neuspěje nebo se zhroutí, celý obsah karantény se zahodí a systém zůstane nezměněn.
A přesně takhle to dělá Gentoo. Dokonce není potřeba žádný chroot, prostě instalační skript se na začátku zeptá na prefix cesty, kam má instalovat, a na konci se přesunou soubory na to samé umístění bez prefixu.
8.1.2007 15:56 David Jaša | skóre: 44 | blog: Dejvův blog
Rozbalit Rozbalit vše Re: Zápisky z Berlína - 2. část: Plány LSB
Odpovědět | Sbalit | Link | Blokovat | Admin
Díky za reportáže. Sám nejsem informatik a používám 3rd party softy, které z principu nikdy F/OSS nebudou a docela chápu, proč dnes nejsou pro linux k dispozici. Doufám, že právě tato iniciativa s tím něco udělá...
oVirt | SPICE
Josef Kufner avatar 8.1.2007 17:05 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Zápisky z Berlína - 2. část: Plány LSB
Odpovědět | Sbalit | Link | Blokovat | Admin
Javu néé... Jak takovej paskvil může někdo zahrnout do LSB?

A s tím nebalíčkovadlem to taky vypadá celkem zvrhle. Nebylo by jednodušší jim dát nástroj, který vyrobí těch pár balíčků pro nejpoužívanější balíčkovací systémy a jeden tarball?
Hello world ! Segmentation fault (core dumped)
Bluebear avatar 8.1.2007 18:08 Bluebear | skóre: 30 | blog: Bluebearův samožerblog | Praha
Rozbalit Rozbalit vše Re: Zápisky z Berlína - 2. část: Plány LSB
Nebylo by jednodušší jim dát nástroj, který vyrobí těch pár balíčků pro nejpoužívanější balíčkovací systémy a jeden tarball?

Bohužel vyrobit takový nástroj není nic jednoduchého, pokud chcete, aby to vyrábělo balíčky přesně odpovídající různým distribucím. V podstatě jediný známý způsob, jak to udělat spolehlivě, je nainstalovat si příslušné distribuce a sestavit každý balíček na každé z nich. Což je proveditelné, pokud máte serverovou farmu.

SuSE/Novell nedávno spustil volně přístupnou službu "OpenSuSE Build Service", kde je možné si přes web uploadovat své zdrojáky k nám, na našich serverech se to sestaví a dostanete přímo hotová RPMka (nejen pro OpenSUSE, ale tuším i pro RedHat a snad ještě pár dalších distribucí). Jenže tohle komerčním firmám nepomůže, protože si dost dobře nemohou dovolit poslat své zdrojáky na cizí server. :-(
To mi připomíná, jak jsem si pořídil květináč, že v něm budu mít květinu. Opravdu tam byla, ale potom být přestala...
8.1.2007 20:20 anicka | blog: ze_zivota
Rozbalit Rozbalit vše Re: Zápisky z Berlína - 2. část: Plány LSB
Na druhou stranu, v nejblizsi dobe bude BS zcela otevrene a nikdo nikomu nebude branit, aby si jej rozjel na svych vlastnich strojich.
^D
8.1.2007 20:42 xkesh | skóre: 46 | blog: eXtempore
Rozbalit Rozbalit vše Re: Zápisky z Berlína - 2. část: Plány LSB
Hleďme, tudy se ubírá vývoj.
Josef Kufner avatar 8.1.2007 20:42 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Zápisky z Berlína - 2. část: Plány LSB
Serverovou farmu? Vždyť distribucí pro které má smysl balíčky dělat je pár (šest?) a na jeden obyčejný disk se to vejde. Stačilo by udržovat poslední stable těch několika zajímavých distribucí s potřebnýma knihovnama, což není problém. Pak stačí akorát mít script, který po nabootování a automatickém přihlášení stáhne aktuální zdrojáky, zkompiluje je, ubalí balíček, spustí sérii testů, jestli to funguje a nakonec rebootne do dalšího distra. Víceméně jde jen o to, aby výsledný balíček byl zkompilován se správnýma verzema knihoven a měl rozumné závislosti. Přes noc by to vcelku obyčejný počítač mohl v pohodě stihnout.
Hello world ! Segmentation fault (core dumped)
8.1.2007 21:33 Spike | skóre: 30 | blog: Communicator | Praha
Rozbalit Rozbalit vše Re: Zápisky z Berlína - 2. část: Plány LSB
Nač rebootovat? Virtualizace nebo chroot mi přijde pohodlnější. ;)
Bluebear avatar 8.1.2007 21:41 Bluebear | skóre: 30 | blog: Bluebearův samožerblog | Praha
Rozbalit Rozbalit vše Re: Zápisky z Berlína - 2. část: Plány LSB
Jistě, to všechno jde také, záleží jen na tom, v jak velkém měřítku to chcete provozovat. Na jeden nebo několik málo menších balíčků by jedno PC asi stačilo, ovšem pokud hodláte buildovat takové obludy, jako OpenOffice, Xka a podobné, asi by bylo lepší mít těch počů víc.
To mi připomíná, jak jsem si pořídil květináč, že v něm budu mít květinu. Opravdu tam byla, ale potom být přestala...
9.1.2007 08:25 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Zápisky z Berlína - 2. část: Plány LSB
Až na uživatele LFS a Gentoo jsou toto zrovna balíčky, jejich kompilaci necháváme na svých distributorech :-)
When your hammer is C++, everything begins to look like a thumb.
9.1.2007 09:17 David Jaša | skóre: 44 | blog: Dejvův blog
Rozbalit Rozbalit vše Re: Zápisky z Berlína - 2. část: Plány LSB
A já myslel, že se tady bavíme o instalaci softů, které distributoři nikdy kompilovat nebudou a toto byl jenom příklad. ;-)
Brabi avatar 13.1.2007 21:16 Brabi | skóre: 8 | blog: Fiend's records | Praha
Rozbalit Rozbalit vše Re: Zápisky z Berlína - 2. část: Plány LSB
Odpovědět | Sbalit | Link | Blokovat | Admin
O podobný instalátor se už snaží projekt Autopackage - www.autopackage.org
Pets are always a great help in times of stress. And in times of starvation too, o'course.

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.