Portál AbcLinuxu, 30. dubna 2025 22:02
Už poměrně dlouho nosím v hlavě myšlenku, jakým způsobem by se (nejen) pro BFU dala zjednodušit instalace software v Linuxu. Možná si řeknete ... moment moment, vždyť stačí napsat aptitude/yum/urpmi/pacman/emerge/... název_balíku a máme vše z krku. A pokud se bojí konzole, máme tu ženiální grafické nadstavby, jako kpackage, yast, nebo synaptic.
Jenže BFU přemýšlí jinak. Někde na síti si najde článek o nějakém super programu. Ihned se ho rozhodne vyzkoušet a první co uvidí je adresa ke stažení. Jenže ta stáhne nějaké divné tar.gz, nebo tar.bz2 soubory a už to nejde nainstalovat klikem z grafického správce, jako ty předtím. V horším případě od Linuxu úplně uteče, v lepším ten zdroják zahodí a v tom úplně nejhorším případě se náš BFU zeptá Jak nainstaluji balíček s příponou tar.gz. Čeká ho zatracená svatá trojice a dost možná se mu ten balíček do systému povede nacpat ...
Jak je vidět v předchozím zápisku na toto téma, řešení není jednoduché. Můj nápad s vypsáním instalačních příkazů pro všechny distribuce byl naštěstí tak šílený, že si ho prakticky nikdo nevšiml
Co tedy potřebujeme? Potřebujeme jeden, distribučně (možná i platformně) nezávislý odkaz, který bude mít po své aktivaci za následek instalaci daného balíku té dané distribuce. Lidsky řečeno, na stránkách amaroku klikneme na odkaz instalace, spustí se nám nějaké udělátko, které nám v Debianu/Ubuntu provede aptitude install amarok
, v Gentoo emerge amarok
, ve Fedoře yum install amarok
... no a až se prosadí smart, tak pouze smart install amarok
. To, co je podstatné je, že v žádném případě nechceme obcházet balíčkovací systém! Ne, pouze chceme zjednodušit počáteční fázi instalace. Je samozřejmě jasné, že v distribucích typu Slackware, nebo LFS nic podobného fungovat nebude. Ale to je daň za nepoužívání řešení závislostí.
Protože už ten nápad nosím v hlavě nějakou dobu, prošel různými stádii. Od prvních nejasných počátků, po velké nadšení a přidávání ultra super vlastností, až po pokusné implementace a odebírání vlastností až na samotný základ.
glibc
nemusí vůbec vadit. Primárním cílem je software typu amarok, nebo xara extreme.Celé jsem to pojmenoval webbin (web based installer) a prvotní nástřel webbin-concept.tar.gz se sestává ze 4 souborů:
amarok.wbn
- XML popisný soubor. Obsahuje nějaké informace, ale především package_name
, což je jednoznačný a unikátní identifikátor balíčku.config.py
- distribučně závislá část (původně jsem měl vymyšlené složité heuristiky ubuntu_6.10.xml
- další distribučně závislá část. V podstatě je to databáze, kde klíči jednotlivých záznamů jsou ony unikátní identifikátory balíčků. Tento soubor by si měl tvořit distributor sám. Je možné použít i stávající soubor Packages (nebo ekvivalentní).webbin.py
- je vlastní kód. Je to jen koncept, takže se tolik nedivte (v kódu uvidíte reimplementaci Xpath pomocí stručných generátorů Jak to pracuje. Příkaz python webbin.py amarok.wbn
si ze souboru amarok.wbn vyčte potřebné informace, ale především unikátní název balíku. Ten dá potom vyhledat v databázi. Dlouho jsem si lámal hlavu, jak vyřešit verze, ale nakonec jsem přišel na to, že to není možné. TO, co vidíte v xml souboru je odlišný způsob ... verze se rozdělí do několika tříd (např) na stable, latest a třeba development. Uživatel si zvolí prioritní způsob instalace (anebo jej pro konkrétní případ překryje). Tím se obejde rozdílné verze v rozdílných distribucích. Také je možné, aby si každá distribuce zvolila systém pojmenování vlastní. Dovedu si představit Debianí třídy stable, testing, unstable, od Mandrivy třeba stable a cooker, Gentoo stable, masked, hard-masked a cvs/svn/git-overlay a v Archu tohle vůbec neřeší
Díky tomu, že víme, ze které repository daný balík pochází, můžeme ji nechat přidat do seznamu standardních zdrojů, provést update a instalaci.
Kde zatím tápu ... software mimo repository (a navíc dostupný jenom jako rpm v deb systému). Udělat (nebo alespoň přemýšlet o integraci) s autopackage, nebo s loki instalátorem? Tak, aby Sun mohl napsat takový netbeans.wbn
. Další věcí by byla podpora src balíčků.
Takže co na to říkáte?
Tiskni
Sdílej:
checkinstallněkdo neměl dlouho rozbitý systém, že?
Primárním cílem není instalace na kliknutí, ale zjednodušení prvního kroku instalacePro ...? Uživatele nebo vývojáře distribuce? Z mého pohledu je nejjednodušší, když si v menu distra např. vyberu program a kliknu na tlačítko: Nainstalovat. Blblblbl... nějaká akce, co mě už vůbec nepotřebuje a hotovo. Kvalita distra pak bude v tom, jak kvalitní bude programová nabídka tímto způsobem instalovatelná - to by mohlo souviset s tím, že z hlediska vývojáře by bylo lepší nalézt nějaký univerzální způsob prezentace balíčků, aby se nemusely donekonečna nafukovat repozitáře, o které se pak nakonec nemá kdo starat. Často také hodně udělají distribuční patche - tohle by odpadlo? Courat po netu a stahovat si odsud ručně software, to nepozvažuji jako uživatel za pohodlný způsob existence a jsem velice rád, že to v Linuxu obecně nemusím. Může to být zajímavá kratochvíle nebo hobby, to ano... ale pak to nepotřebuji mít až tak ulehčeno, asi ani ten první krok.
a především důsledné používání stávajícího balíčkovacího systému. Pokud nebude daný balíček k dispozici, mohlo by to umět vyřešit problém jinak, ale způsob zatím nevím ...Tím spíš to ale vidím spíše jako nástroj pro vývojáře, kteří ho pak zakomponují do vlastního spráce distribuce. BFU by de facto ani neměl na něco takového pomyslet, i když by si mohl umět nainstalovat programy skrze správce balíčků.
aptitude search amarok
(vim /etc/apt/sources.list
, aptitude update
) a aptitude install amarok
. Jenže co chudák BFU, pro nějž jsou tohle hieroglify? Navíc, můj nápad vůbec neodstraňuje možnosti instalaci z konzole, takže vyhledávat balíčky na webu není nutné. Nic stávajícího měnit nechci.
Ten tvůj způsob výběru z nějakého menu je běžně v grafických instalátorech - kpackage, yast, synaptic, nebo textové aptitude a naráží na množství balíčků. V takovém Debianu je kolem 20 000 balíčků (Gentoo kdysi uvádělo kolem 15 000) a vyhledávat v tomto množství není jednoduché ani pro zkušené uživatele (aneb kolikrát jste zjistili, že ten super program, o kterém právě čtete už máte dávno v repository)
Co se týká univerzálních balíčků, docela se mi líbí autopackage.org ... možná se ještě zkusím podívat co nabízí on.
Postup na Windows: vidím to, zaujme mě to, kliknu na odkaz a nainstaluju. Postup na Linuxu: vidím to, zaujme mě to ---> přepnu se do úplně jiného programu, chvíli hledám (ev. hledám repository a přidávám je) ---> nainstaluju. Moje řešení: vidím to, zaujme mě to, kliknu na odkaz (webbin to přeloží na název balíčku, ev si přidá repo a zavolá stávající systém) a nainstaluju.Moje řešení: vidím to, zaujme mě to, řeknu
emerge to
. Když se nudím a autoři používají CVS/SVN/GIT, napíšu pro to ebuild a hodím ho do overlaye Postup na Windows: vidím to, zaujme mě to, kliknu na odkaz a nainstaluju. Postup na Linuxu: vidím to, zaujme mě to ---> přepnu seHm, u mě to vypadá takto: Něco potřebuju, poptám se, popátrám, jestli něco takového existuje a jak se to jmenuje, prohledám repozitáře své distribuce, nainstaluji, vyzkouším. Hledám-li návod nebo když mám problémy, jdu se podívat do fóra distribuce / přes Google na www / na homepage programu (mám zkušenosti, že relevantní informace najdu v tomto pořadí). Ale ano, pochopil jsem, že vaše idea by leckomu instalace usnadnila... Jen bych ještě přece jen připodotkl, že obecně jako uživatel Linuxu nemám vůbec potřebu instalovat spoustu malých kravinek, jako to bylo za dávných časů s Windows. Částečně je to tím, že užitečné maličkosti jsou často už defaultně obsaženy, stačí je jen objevit, a taky snad tím, že člověk má zábavy dost se systémem samotným. Tedy bych si dovolil tvrdit, že představa linuxáka bloudícího po netu a hledajícího "nějaké" programy, co by ho mohly zaujmout, je mi dost vzdálená. Tím nic proti záměru, pouze si jen tak přemýšlím, jestli bych to já využil vzhledem ke svým návykům. Jinak jsem zastánce usnadňování co to jde.
Tedy bych si dovolil tvrdit, že představa linuxáka bloudícího po netu a hledajícího "nějaké" programy, co by ho mohly zaujmout, je mi dost vzdálená.No linuxáka snad ne (já tohle chápu jako velkou výhodu Linuxu, škoda, že to není marketingově zdůrazňováno), ale co lidé mající Linux (a jsou plní náviků z Windows) chvilku? Škoda, že se tu neozvali.
Tím nic proti záměru, pouze si jen tak přemýšlím, jestli bych to já využil vzhledem ke svým návykům. Jinak jsem zastánce usnadňování co to jde.Částečně to řeší i ten problém na co linkovat, když ne na zdrojáky, jak jsi psal v blogu. Já osobně umím používat balíčky a chápu jejich princip a výhody. takového.
... náviků z Windows ...No ale Michale... styď se!
No linuxáka snad ne (já tohle chápu jako velkou výhodu Linuxu, škoda, že to není marketingově zdůrazňováno), ale co lidé mající Linux (a jsou plní náviků z Windows) chvilku?
Dovolím si kacířskou myšlenku: neměla by se právě na tyto uživatele spíš zaměřit osvěta, která by jim vysvětlila, co je to package management a k čemu je dobrý, místo toho, aby se vytvářely mezivrstvy, které jim budou předstírat, že Linux jsou vlastně Windows v jiném balení?
Zatiaľ si to komplikujem rôznymi požiadavkami typu dvojitá konfigurácia (package + system) a podobne.
Jenže BFU přemýšlí jinak. Někde na síti si najde článek o nějakém super programu. Ihned se ho rozhodne vyzkoušet a první co uvidí je adresa ke stažení.To jsem viděl nejen u BFU. Kamarád Windowsák si nainstaloval Ubuntu a takhle si tam přidal Operu. Naštěstí to šlo - stáhnul .deb a nainstaloval. Opravdový BFU si Linux nikdy nenainstaluje, protože o něm nepíší články o tom, jak si vytvořit šifrovanou složku atd. na Živě.
package_name
bych udělal dle konvence DNS nebo Java package jmen – jinak nastanou konflikty ve jménech./package.wbn
) – pokud už si uživatel stáhne balíček se zdrojáky, může mu jeho správce souborů nebo manažer balíčků podle tohoto souboru pořád nabídnout správný způsob instalacexyz
kubuntu.org/packages/amarok-latest
), jak jsi navrhoval, mělo by být možné se nějak rozhodnout mezi instalací této, nebo oficiální stabilní verze. Takže se s těmi verzemi budu muset nějak vypořádat v každém případě.
Můj návrh je ten, že bude zvolen výchozí způsob (třeba instaluj stable) s tím, že si uživatel někde v pokročilých možnostech bude moci vybrat i jinou možnost.
uname -sr; test -x /usr/bin/{yum|apt-get|pacman|..}
zjistil na čem běží, přidal správná repository do správných konfiguráků, a spustil správný balíčkovač se správnými argumenty. Ad bezpečnost: BFU je to jedno, lepší uživatel se na ten skript nejdřív koukne (beztak se jen v prvním řádku nastaví jméno package, zbytek bude identický). A ruku na srdce, kdo kontroluje při dnešních zaneřáděných Makefiles
, co mu se systémem vyvede sudo make install
?
aby na webové stránce bylo možné přidat <link href="amarok.wbn" type="application/wbn" rel="web-based-installer"> a prohlížeč s příslušným pluginem pozná, že ta stránka nabízí možnost instalace softwaru a nějakým způsobem to uživateli nabídne Proč to komplikovat? <link href="amarok.sh" rel="installer"> je mnohem jednodušší.. Na nějaké XML bych se vykašlal.. Ten skript by jednoduše za runtime pomocí různýchA proč to komplikovat?uname -sr; test -x /usr/bin/{yum|apt-get|pacman|..}
zjistil na čem běží, přidal správná repository do správných konfiguráků, a spustil správný balíčkovač se správnými argumenty. Ad bezpečnost: BFU je to jedno, lepší uživatel se na ten skript nejdřív koukne (beztak se jen v prvním řádku nastaví jméno package, zbytek bude identický). A ruku na srdce, kdo kontroluje při dnešních zaneřáděnýchMakefiles
, co mu se systémem vyvedesudo make install
?
autoconf
:(
Vas postup predpoklada, ze distributor bude prohledavat vsechny mozne neoficialni repozitare pro jeho distribuci, aby mohl vybudovat vseobjimajici databazi balicku pro svoje distro. Jenze to je presne to, co distributor nikdy delat nebude. Pro nej konci svet oficialnim repozitarem (skladistem?).Rozhodně budu svůj postup konzultovat s lidmi, co se motají kolem distribucí. Přiznám se, že konkrétní způsob řešení neoficiálních repo neznám. Na druhou stranu o nich někdo vědět musí.
Podle mne tohle delat nebude nikdo. Takze resit alternativni repozitories nema smysl.Správci alternativních repository toto mohou vyřešit. Ovšem je fakt, že je nutné jim ...
Takovy identifikator by klidne mohlo byt URL domovske stranky programu.... co nejvíce ulehčit (to znamená nepřidávat) práci a identifikace podle URL je skvělý nápad! Díky
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.