Mandriva, Debian, Ubuntu, Suse… Které další? Proč se proboha nevytvoří jednotné rozhraní pro konfiguraci a zprávu systému, na který by existovaly distribučně nezávislé klientské aplikace pro uživatele? Fakt je nutné aby každé distro muselo mít vlastní absolutně jiný, navíc nepřenosný konfigurační a tweakovací systém? Na co, proboha?
Tahle výtka byla směřována všeobecně, nejen na Ubuntu.
Představte si nováčka, který zkouší Linux. Jako první zvolí – dejme tomu – OpenSuSe. Naučí se jej jakž takž zkonfigurovat, ale prostě mu nevyhovuje. Mohl by zkusit třeba Ubuntu, nebo Mandrivu, jenže problém je v tom, že při konfiguraci má k dispozici úplně jiný konfigurační systém, nástroje a aplikace. takže musí znovu zkoumat jak co a kde nastavit, popřípadě co si pro dané účely musí stáhnout za balíky. Natož aby si základní konfiguraci systému zazálohoval na flashku, a potom už jen exportoval do nové distribuce při instalaci. To je docela otravné a ne zrovna rozumné.
Myslím, že by bylo mnohem lepší, kdyby se to úsilí které vývojáři věnují pro tvorbu jednoúčelových utilitek na jedno distro vložilo do univerzálního konfiguračního systému pro os. Linux…
„Fedora když něco vyvine, například package-kit, bývá to často přenositelné.“
Mají u mě bod, to je krok správným směrem. Nicméně ještě to podle mě není ono.
Když mluvím o univerzálním konfiguračním systému pro Linux, mám na mysli systémovou vrstvu mezi konfiguračními daty a aplikacemi (a dalšími částmi systému), která se stará o konfigurační data. S aplikacemi komunikuje pomocí jednoduchého přesně definovaného API a obstarává též i ostatní operace (zálohy, export, hlídání přístupových práv, možné závislosti, tvorba profilů, atpd…).
Jinými slovy, už by nebylo potřeba, aby se vývojáři při tvorbě aplikací starali kam a jak uložit konfigurační data, protože tuto starost by delegovali na tuto systémovou vrstvu. Což by v konečném důsledku mohlo významně zjednodušit vývoj a přenos projektů mezi jednotlivými distribucemi.
I pro uživatele by to poté bylo jednodušší. Existoval by např. sada formátů a pravidel pro ukládání dat, takže tvůrce distribuce si zvolí nějaký implicitní, a uživatel při instalaci by měl možnost, daný formát změnit. O export a import konfiguračních dat by se starala také tato vrstva. Uživatel (admin) by se pouze postaral o to, aby se importovaná data, např. ve formě nějakého balíčku, dostala do nově instalovaného systému. Atd…, výhod takového systému je určitě spousta, v Linuxu záleží jen na nás co a jak dobře bude nějaký projekt umět…
Jo jo ten pokus už tu byl …
http://www.solucorp.qc.ca/linuxconf/
Blbé je, že udržovat matici A aplikací x D distribucí je poměrně náročné a donutit distribuce k jednotném uložení souborů, nastavení sítě atd. se i přes LSB moc nedaří.
Další pokus (notně vysmívaný jako Linuxové registry) je gconf .
Má přesně definované API a může mít různé backendy (od adresářů, přes XML soubory, databáze, LDAP servery). Zatím je masivně nasazen v GNOME, ale slušelo by záběr rozšířit.
Mít v LDAP defaultní nastavení v hierarchii Globál, doména, subsíť/podorganizace, stroj, skupina uživatelů, uživatel, tak to gconf složí/přemaskuje dohromady a koncový objekt dostane přesně připravenou sadu konfigurací.
Nebo umí třeba „povinná“ nastavení, uživatel si je prostě nemůže změnit. To je sice proti svobodě OSS, ale ocení to správci sítě s 500+ desktopových linuxů.
Gconf je mimochodem jedna z věcí které zapříčiňují, že Enterprise desktopové distribuce mají jako default Gnome. KDE nic takového nemá (teď na mne křičte ;-) ) takže se nedá efektivně spravovat ve veliké síti.
No do určitého počtu strojů, je textová konfigurace velice efektivní.
Ale v počtu 500 a víc …
--- Pozor, následuje sarkasmus ---
Používáte ve vaší LAN DNS? Proč, když by se to dalo „efektivně“ spravovat v /etc/hosts ?
DHCP? Ne vše budeme nastavovat v /etc/network/interfaces
Proč používat LDAP? Vždyť /etc/passwd /etc/group a /etc/shadow jsou efektivní?
--- Konec sarkasmu ---
Od určitého počtu strojů je „síťové“ repository konfigurace výhodou.
Několik let dělám výhradně na Linuxu a když teď nasazujeme víc a víc Linuxů na desktop tak začínám chápat výhody správy, ala MS ActiveDirectory.
(oni si MS admini většinou neuvědomují jak silný nástroj mají …)
Nejsem si jistý, ale ten linuxconf mi silně připomíná nástroj, který se před léty používal pro konfiguraci distribucí na bázi Red hatu.
Jinak GConf se mi taky silně líbí. Ale zatím jsem se ještě nedostal k tomu jej nějak detailněji prozkoumat. Navíc mám trochu obavy zda není provázaný na GTK, poř. Gnome. :( Nerad bych do svých projektů tahal závislosti na jiných frameworcích, nebo různých prostředích. Nicméně mám v plánu se mu mrknout na zoubek :)
Kolega tím myslel, že jednotný a univerzální program je utopie. Je to nápad, jehož realizace je předem odsouzena k zániku.
Máme univerzální programy, které v praxi více či méně nefungují. Vidím minimálně desatero důvodů proč takový program nepsat. Rozvádět to ale nechci, neb nemám čas na takové tlachání o ničem. Ti zarputilí kritikové by se měli zamyslet sami nad sebou, a třeba místo keců napsat něco lepšího.
Vážený človíčku, přečetl jste si co jste psal?
Jednak jsem toho názoru, že kolega tím svým příspěvkem chtěl spíše vyjádřit obavu, že by jej existence takovéhoto systému omezila – což se mi zdá jako neopodstatněné.
„Je to nápad, jehož realizace je předem odsouzena k zániku.
Máme univerzální programy, které v praxi více či méně nefungují. Vidím minimálně desatero důvodů proč takový program nepsat.“
Těch deset důvodů by mě rozhodně zajímalo. Škoda, že jste je nenapsal, já vidím spousty důvodů proč by se nám taková věc vyplatila – a to hodně rychle.
„Rozvádět to ale nechci, neb nemám čas na takové tlachání o ničem.“
Hmm… tohle fakt nechápu. S takovým přístupem se divím, že nejsme v pralesa, nesedí nás tlupa na nějakém baobabu a nejsilnější samec nerozdává banány.
Já zas nemám čas učit se deset různých konfiguračních utilit pro sedm různých dister, deset různých konfiguračních formátů pro deset různých aplikací a vytvářet stejný nastavení na deseti různých distrech deseti různými způsoby.
„Ti zarputilí kritikové by se měli zamyslet sami nad sebou, a třeba místo keců napsat něco lepšího.“
Milerád – jen díky za fakt užitečnou podporu ;-)
> Vážený človíčku, přečetl jste si co jste psal?
Ani trochu se mi nelíbí tvůj přezíravý tón. Pokud mě přesto takto oslovuješ, nevidím
důvod proč mi vykáš.
Dobře, trochu to rozvedu.
> Když mluvím o univerzálním konfiguračním systému pro Linux, mám na mysli systémovou
> vrstvu mezi konfiguračními daty a aplikacemi (a dalšími částmi systému), která se stará
> o konfigurační data. S aplikacemi komunikuje pomocí jednoduchého přesně definovaného API
> a obstarává též i ostatní operace (zálohy, export, hlídání přístupových práv, možné
> závislosti, tvorba profilů, atpd…).
To by znamenalo:
1/ masivní podpodu komunit vytvářející distribuce
2/ přechod pokud možno všech aplikací na tento systém
dále:
3/ přístupová práva jsou pouze doménou OS a jakékoli ostatní způsoby mi přijdou memístné
a vytvoří potenciál pro bezpečnostní díry.
4/ export/import konfigurací mezi distribucemi vidím jako velmi problematická témata (kdo
to bude kvalitně podporovat?)
> Jinými slovy, už by nebylo potřeba, aby se vývojáři při tvorbě aplikací starali kam a
> jak uložit konfigurační data, protože tuto starost by delegovali na tuto systémovou
> vrstvu. Což by v konečném důsledku mohlo významně zjednodušit vývoj a přenos projektů
> mezi jednotlivými distribucemi.
Ano, tak jako to dnes výborně funguje v registrech. Spousta zbytkového balastu.
Konfigurační data myslím lze jednoduše přečíst pomocí tisíců knihoven, z kterých si
jako vývojář vybereš tu, která vývojáři sedí. Ne tu, která sedí tobě, pomocí toho
přeceňovaného univerzálního API.
Automatický přenos konfiguráků mezi distribucemi může být netriviální natolik, že
přenos stejně bude víceméně na inteligentní bytosti. Netvrdím, že zde nemůže nějaký
program pomoci, jen říkám, že to asi nebude ta mezivrstva.
> Hmm… tohle fakt nechápu. S takovým přístupem se divím, že nejsme v pralesa,
> nesedí nás tlupa na nějakém baobabu a nejsilnější samec nerozdává banány.
Nesedíme v pralesech, protože drtivá většina lidí něco dělá a neplácá o tom v
diskuzích.
> Já zas nemám čas učit se deset různých konfiguračních utilit pro sedm různých
> dister, deset různých konfiguračních formátů pro deset různých aplikací a vytvářet
> stejný nastavení na deseti různých distrech deseti různými způsoby.
Tak nepoužívej sedm dister, ale to, co ti nejvíc sedí. Máš možnost výběru.
Pokud někoho zadrátuješ jedním API, tak mu tu možnost výběru sebereš. Není to
prostě správná cesta.
Vývojáři skutečně užitečných programů které ty sám používáš nejsou tupci (většinou),
nech jim svobodu alespoň do té míry, že jim nebudeš diktovat, kam a jak ukládat
konfigy. Na druhou stranu je bij po hlavě, pokud k těm konfigům nenapíšou
kvalitní dokumentaci a udělají ti z přechodu na jiné distro (pokud fakt musíš)
peklo.
> Milerád – jen díky za fakt užitečnou podporu ;-)
Kritika je v pořádku, pokud je konstruktivní. Pokud ne, pak nemá smysl. Myslím,
že diskuze na téma tohoto článku překročila svůj zenit užitečnosti, už díky
tomu, že autor toho programu tenhle článek a diskuzi nečte. Je to tady takové
plácnutí do vody, které mě stálo 30 minut života.
Přestože si o tom ještě můžeme povídat takřka neomezeně dlouho, toto je asi vše
co jsem mohl k tvému skvělému mezivrstvému nápadu mít.
Až jí napíšeš a bude trochu fungovat, do diskuze se zapojím trochou konstruktivní
kritiky.
Děkuji, za reakci.
Tón první věty neměl být rozhodně přezíravý (pokud Ti takový připadá, pak se omlouvám), proto jsem ti také dále vykal. Ale stejně jako ty i já jsem vyjádřil nelibost nad Tvojí reakcí, která všechny kteří se rozhodnou prezentovat svůj názor hází mezi žvanily. Za to že nesedíme v pralesích určitě vděčíme lidem kteří něco dělají, ale též i lidem, kteří mají nějakou myšlenku, chtějí a umějí (a mají odvahu) o ní jednat, diskutovat a předávat ji dál… Říká se tomu komunikace ;-) a ať se ti to líbí nebo ne, je v každé lidské činnosti docela důležitá.
Na tzv. „konstruktivní kritiku“ se shodí kde co se komu nelíbí. A v čem moje příspěvky na toto téma nebyli „konstruktivní kritikou“? Obsahovaly poukázání na to co se mi konkrétně nelíbí,
proč se mi to nelíbí a jaké konkrétní řešení a z jakých důvodů bych navrhoval já a jsem ochoten k další diskuzi. Tedy v žádný příspěvek typu „Je to na hov..! Jděte s tím někam“. Pokud se ti podobné příspěvky nelíbí, nebo s autorem nesouhlasíš, není ještě nutné autora seřvat do němoty. To moc konstruktivní
nebylo. Toliko ke konstruktivní kritice.
Ano, ten počet dister je trochu přehnaný. Jednak z rozčílení (nemáš čas argumentovat, ale na jedovatý příspěvek si čas najdeš – já zas nemám čas dělat zbytečné věci), a jednak rozhodně ukázal na jeden z problémů, který mi vadí. Já převážně jedno distro už používám (Debian), ale musí to být tak pořád? A co ti kteří teprve to svoje „jediné“ hledají? A co třeba ti kteří jsou nuceni s více distribucemi z nějakého důvodu pracovat? A co vývojáři, kteří musí zajistit aby jejich projekty měly stejné podmínky na všech distribucích? A vůbec, proč musím používat jen jedno distro a nechtít mít usnadněnou konfiguraci, provádět ji stejným způsobem jako na těch předešlých, či dokonce možnost exportu?
A když už jsme u vývojářů. nikdo mi ještě smysluplně nevysvětlil, proč by měl ausgerechnet vývojář každého projektu určovat kde budou konfigurační soubory jeho programů. Nebo by jim mělo vadit, že si je systém uloží na nějaké předem určené místo. Myslím, že že pro vývojáře by měla být důležitá dostupnost dat v konfiguracích. Vidím to spíš jako výhodu jak pro něj, tak pro uživatele. Jednak proto, že se v při vývoji a tvorbě popisu konfigurace může soustředit na konfiguraci samotnou, jednak proto že uživateli bude stačit znát jeden jediný (jaký to rozdíl oproti dnešku) systém ukládání konfiguračních dat a jejich umístění. Mimochodem eliminovalo by to i ten nehorázný bordel (s odpuštěním) v domovských adresářích.
Další věcí je – dle mého názoru – podivný argument, když je jednotné API jste omezen. Tečka. A je to ze stolu, další prosím,… Jenomže to je pravda jen z části – zase na druhou stranu, pokud je dané rozhraní kvalitně navrženo tak, aby pokrývalo minimálně většinu běžných potřeb a dána i jistá možnost jej do určité míry doplnit (přizpůsobit – např. moduly) vidím v tom jen výše zmíněná pozitiva. Navíc myslím, že pro vývojáře by bylo IMHO o dost snažší, když by měl jedno dobře zdokumentované a navržené API, o němž by věděl, že bude podporované na všech (minimálně nejpoužívanějších) distribucích. Nemusí už znovu hledat, nebo vymýšlet již jednou vymyšlené kolo.
Krásným příkladem výše zmíněného budiž asociace souborů v Linuxu. Každý existující framework, který tuto službu nabízí si je implementuje sám. Já teď v jednom svém projektu řeším jak se k stávajícímu stavu postavit. Mám použít nějaký z existujících mime typů? A který? Nebo mám udělat nějaký konverzní modul jenž poskytne koncovému uživateli možnost používat nastavení asociací z jeho prostředí? A jak a kolik jich mám vlastně podporovat, když každé prostředí používá jiný formát pro ukládání těchto dat a jsou každý na jiném místě? Nebo snad mám použít / vytvořit jiný vlastní systém pro tato nastavení a nechat uživatele ať si to přizpůsobí jak chce? To je sice pěkné, ale po kolikáté už to bude dělat a bude mít na to vůbec ještě nervy? A proč vlastně přidávat uživateli na disk tatáž data znovu? Tohle je svoboda, nebo anarchie (ve smyslu bezvládí, chasou)?
K importu, exportu a registrům Windows. Myslím si, že pokud by byl univerzální konfig. systém navržen jako mezivrstva mezi aplikacemi a systémem, nebylo by velkým problémem pro tuto mezivrstvu vytvořit určitou sadu pravidel podle níž by tato mezivrstva data konfigurací ukládala a podle níž by s nimi také dále pracovala. Věřím, že i některé (pravděpodobně systémové, nebo nějak specifické) projekty měly speciální požadavky pro zprávu konfigurací. Pak by určitě bylo možné, aby autoři definovaly sadu takových pravidel i pro svůj projekt. Potom by nemělo být zas až tak velký problém exportovat konfiguraci z jednoho distra na druhé – všimněte si že nepíšu nic o tom, že by nebyl nutný zásah nebo jistá korekce uživatelem (tedy inteligentní bytostí). Je mi jasné, že při dnešním stavu to může být (a mnohdy je) hodně velký oříšek.
Registry systému Windows jsou děs. O tom mi nemusíte moc vykládat, nejednou jsem na toto téma měl „diskuzy“ s LO. Jenže podle mého mínění je problém v tom jak jsou navrhnuty a jaké možnosti jejich zprávy má jak systém sám tak uživatel. Myšlenka jako taková zas úplně špatná není. Chybí jakákoliv zpráva a řízení ukládaných dat, aplikace si přidávají, ubírají a mění kde co chtějí (stav na XP – od Vist by měla být prý určitá omezení, která však spíš problém přesouvají jinam, než řeší), Chybí dostatečná kontrola a komunikace s instalátorem, který maže to co má předepsáno, ne to co si tam aplikace opravdu zapsaly, regcleaner je absolutně neefektivní, atd… mimochodem, děláte si iluze o tom, že u nás na Linuxu k podobným situacím nedochází? Ale dochází, jen jinde a mám – pokud mám dostatečná práva – i větší možnosti to trochu korigovat. Nicméně je to znovu vynalézané kolo a zbytečná práce pro mě (uživatele) navíc…
Mimochodem k těm právům jsem měl na mysli řešení přístupu k datům na základě těchto práv. Já nechci aby tento systém implementoval zprávu práv jako takových, ale bude nutně docházet k určitým kolizím, a jejich řešení by právě spadalo pod „pravomoc“ tohoto subsystému s požehnáním admina (roota).
ad 1–2) na toto se mi odpovídá nejhůře. Celá věc samozřejmě počítá jak s masovou podporou v komunitě, tak i u tvůrců distribucí, bez toho by nešlo asi nic. Jenže tak je to ze vším v Linuxu. každý velký projekt většinou začne s „nadějí, že bude užitečný“. Ovšem jistota na úspěch není žádná. A dvojnásob to platí i u tak mamutích projektů jako např. HAL, D-BUS, KDE, konec konců i Linux sám jako takový. atpd. To zda bude mít, nebo nebude uspěch ukáže jednak diskuze a jednak (a to stoprocentně) až čas…
Hmm, ok. :-)
Můžeme o tom všem polemizovat dokola. Já prostě potřebu vyšší míru abstrakce u konfigů necítím (na rozdíl např. u hardware – HAL, případně pro D-BUS) a mezi distry přecházím minimálně.
Windowsí registry nepovažuju za dobrý nápad obecně, z pohledu spolehlivosti, je to jedno místo kde se vše může pokazit, je snadno napadnutelné a těžko se ručně obsluhuje. Mohli to v M$ napsat líp, ale myslím, že by registry trpěly těmi stejnými problémy i tak, jen o málo méně.
Jako centrální místo pro úložiště konfigů mám /etc, případně u ručně zkompilovaných programů jinde. Pro „profily“ máme přepínače samotných programů, který změní cestu ke konfigu samotnému (jiný soubor).
To, že nemají stejný formát mi nevadí, pokud jsou dobře dokumentovány. Logika je totiž většinou velmi podobná. Ano, není to ideální, ale podle mě lepší, než pak řešit problémy ještě s tou mezivrstvou.
To co píšeš mi přijde zbytečně komplexní a problematické už jen v rovině, v jaké si o tom povídáme tady. Prostě už to není KIS. Navíc tím API nepokryješ všechny potřeby vývojáře a bude docházet k tomu, že něco bude ukládat v těch registrech, a něco ne. Tím současnou situaci nevylepšíš, jak si, myslím mylně, myslíš, ale přesně naopak. Bude to ještě horší. Ale asi jsem v tomhle příliš konzervativní.
Dokážu připustit, že pokud by to bylo hodně dobře navrženo, bezpečně napsáno a najednou by to používali všichni, mohlo by to být užitečné. Realita je ale jiná a počáteční podmínky jsou prostě takové, jaké jsou. Cesta k unifikovanému řešení které popisuješ je za daných podmínek IMHO nerealizovatelná.
To je podobné, jako problém se SMTP. Existuje celá řada různých, tvému podobných, návrhů, jak SMTP nahradit. Vymyslet ideu něčeho lepšího není vůbec těžké. Realizace je ale nemožná. SMTP tady prostě bude, dokud to půjde. Podobně jako IPv4. Nechci prosím další flame, tohle je uvedeno jako analogie, které, jak víme, pokulhávají *vždy*.
Máme na to prostě evidentně trochu jiný názor. A to je vlastně dobře. :-)
Děkuju za reakci.
„Máme na to prostě evidentně trochu jiný názor. A to je vlastně dobře. :-)“
Ano, vidím to také tak. A jsem Ti moc vděčný, že jsi nakonec svůj názor napsal – pomohlo mi to podívat se na problematiku i jinýma očima a to je víc než potřeba. Myslím, že diskuze nakonec svůj účel splnila.
Patří ti můj velký dík :)