Textové soubory, skripty, bash, vi, sed, ..., co víc si přát?
Říkám si, kdo proboha mohl tohle napsat? Dívám se na VÁŠ článek Gentoo Linux FAQ, kde píšete například:
"K Linuxu jsem nepřešel proto, abych znovu našel Windows."
"Konfigurace pomocí textových souborů mi vyhovuje více. Rychle se dá změnit, zálohovat, přenést atd."
Zmíněný článek byl publikován 23.4.2003. Co způsobilo takový posun?
ale tu nikto nespochybnuje vyhody konfiguracie v textovych suboroch, no pre BFU su tazko pochopitelne a musi sa pozerat do dokumentacie, aby mohol nieco nastavit; im omnoho viac vyhovuju klikacie nastroje
mnoho ludi by sice mohlo namietnut, ze BFU si nema sam spravovat PC, no bohuzial isty "operacny system" sa snazi dokazat opak
Ale neni to spatne. Windows jsou napsane pro lamy, "zjednoduseni" pro experty nejsou a nebudou. Neni k tomu duvod, je to business. U Linuxu je treba si ujasnit k cemu ho vlastne chceme. Chceme system pro bezne uzivatele? Pak musi byt moznost spravovat to jako lama. Chceme system pro experty a priznivce? Pak se nic menit nemusi...
Klikací nástroje pro BFU a kompletní správa systému jsou dvě odlišné věci. BFU si nemá sám spravovat PC, ale musí být schopen řešit své reálné problémy.
Znám například uživatele, kteří si vozí notebook na chalupu. Doma se připojuje k internetu přes pevnou linku, na chalupě přes mobil, doma má tiskárnu ABC, na chalupě XZY, a tak dále. Takže:
a) Je nesmysl, aby si pro každý převoz notebooku najímal počítačového specialistu, který by mu opravil konfigurační soubory.
b) Bylo by nežádoucí, aby se sám vrtal v konfiguračních souborech, mohl by tím lehce napáchat hodně škod.
Oba problémy řeší vhodně navržené klikací rozhraní.
Naproti tomu by podle mého názoru bylo kontraproduktivní se snažit, aby počítačoví administrátoři spravovali počítač kompletně přes GUI.
"Naproti tomu by podle mého názoru bylo kontraproduktivní se snažit, aby počítačoví administrátoři spravovali počítač kompletně přes GUI."
Podle mě by to kontraproduktivní nebylo, naopak. (jen by si někteří nepřipadali, jako takoví experti jako když editují přímo textové soubory). Akorát vytvořit kvalitní GUI dá práci a ta může být vyšší než užitek z jeho používání (což neznamená, že by jeho používání nebylo užitečné) - takže přímá editace konfiguráků (bez GUI) je vlastně taková oběť, za to, že si ještě nikdo nedal práci s návrhem GUI (nebo třeba textového UI).
A tím, že bude oddělené GUI (editory) od uložených informací (XML konfiguráky) a od definice možností (XML Schéma) bude monžné editovat jak ručně, tak i přímo XML, tak i automatizovaně - např. instalátor jednoho programu potřebuje upravit nastavení jiného, v tom případě je práce s DOMem jednodušší a spolehlivější, než nějaké pochybné přidávání řádků do textového souboru nebo nedej boře jeho odstraňování či editace.
Vy asi nic nespravujete. Když něco nejde, tak se stávám nedůvěřivý (ostatně paranoia je nemocí většiny správců) :-) A jak mám věřit něčemu, co je mezi mnou a konfigurákem?!? To raději edituji textový soubor v /etc než klikám na GUI. Co když X nenaběhne?!? Co pak bude s GUI? Zkrátka simple text má své velké přednosti. Když uživatelé chtějí GUI, OK, mohou si přidávat periferie, měnit vizuální podobu. Ale nastavování střev OS IMHO nelze přes GUI.
"A jak mám věřit něčemu, co je mezi mnou a konfigurákem?"
A jak mám věřit Linuxovému jádru, KDE, firefoxu...? Radši tomu věřit nebudu a napíšu si svůj OS a programy :-D
Velkou chybou Windows není to, že mají GUI nástroje pro nastavování systému (to je naopak výhoda), ale to, že GUI je často jedinou cestou, jak něco nastavit. Oproti tomu je koncept (xml) soubory + volitelné GUI mnohem lepší. GUI použít můžu ale nemusím. Výhodu XMl vidím hlavně v automatizaci: oproti různorodým formátům a syntaxím textových konfiguračních souborech přináší jednotný rámec pro přístup k nastavení - řeším, co chci zadat, ne jaké tam píšu závorky a uvozovky.
Osobně mi přijde jednodušší pracovat s DOMem, se kterým se pracuje vždy stejně (viz např. http://www.roseindia.net/xml/dom/createdomchildelement.shtml) než abych se musel učit syntaxi určitého konfiguračního souboru a dával si pozor, jestli jsem správně vložil řádek/sekci...XML je vrstva, která mi umožní jednotný přístup k informacím (nastavení).
Co myslíte, že mám na desktopu? Já nemluvím o sobě, svůj systém používat dovedu. Jenže dávno je doba, kdy byly unix-like systémy věcí pouze znalých jedinců. Spravuji pár počítačů lidem, kteří jsou BFU, a tak mám zájem, aby ta klikátka fungovala. Jenže ona nefungují, a tak se ptám, proč. Jasně, že je super, že lze používat VIM, ale když už ta klikátka jsou, tak ať fungují! :-)
Tipuji to na nepochopení článku: textové konfiguráky jsou super (nikde ve článku není, že by se měly nahradit), ale jednotné rozhraní, které by je dokázalo editovat, chybí. Což např. u HTPC (kde je nanejvýš kurzor ovládaný dálkovým ovladačem) nebo PDAček bez HW klávesnice dost vadí.
Jsme na Linuxu téměř úplný začátečník, takže můžu přispět jen dojmy , nikoliv odborným názorem. Když jsem přešel z woken, tak jsem s nadchl do textových konfiguráků, protože se tím dá spoustu věcí vřešit a opravi a člověk vždycky ví (nebo tuší) ,co opravuje. Ve woknech zmateně překlikává z jedné záložky se složitými formuláři na zatrhávání a většinu nepřestane , dokud ho nepolíbí můza a náhodou nenajde, co hledá. Nakonec to stejně dopadne tak, že si jednou za čas smažu celý profil a udělám nový.
Jediné , co bych textovým konfigurákům chtěl vytknout je nejednotnost. Každej je jinej a pokud člověk nepřečte dokumentaci, tak se v tom nevyzná a neví , co kam napsat. Prč se nedělají ty konfiguráky s lepší nápovědou a nedělaj se snáze čitelné? Zabere to vždy hrozně čas a dá se to dělat jen, když má člověk náladu na hádanky.
Protože každý pes jiná ves. Dnešní aplikace, které běží na Linuxu - unixech, mají kořeny v několika různých unixech a v jistém druhu i filozofiích (MIT, Berkeley). Když si listuji v /etc tak mám pocit, že v zásadě existuje tak 5 formátů, a preferuje se nejvhodnější formát pro dané použití (group nebo passwd jsou triviálně parsovatelné. Jinak ale jediné soubory, které jsem poslední dobou editoval jsou /etc/ld.so.conf, xorg.conf, profile a yum.conf. Používám Fedoru 8 na notebooku na desktop na vývoj. Jinak fakt do konfiguráků nelezu (vyjma postgresql.conf, což nepočítám, že by někdo provozoval), takže mne překvapuje ta averze vůči konfigurákům. Krizový je xorg.conf - naštěstí snad byl - už aktuální verze Xorg se bez něj docela dobře obejde a v té další by měl odejít už na věčná loviště.
Schválně, když tady vedeme tak zarputilou diskuzi ohledně konfigurací, který cfg jste editovali ručně?
snad kazda aplikace ma konfigurak
na serveru jich bude urcite vic a budou komplexnejsi na desktopu jich bude spousta jednoduchych + par slozitych na xka site a systemove sluzby
"Když si listuji v /etc tak mám pocit, že v zásadě existuje tak 5 formátů"
Proto si myslím, že by bylo bezva dohodnout se na nějakém jednom formátu-struktuře.
Ten by měl být schopen:
- pojmout jak jednoduché věci jako klíč=hodnota, tak i složitější struktury (skupina atributů, skupina skupin...)
- práce s různými datovými typy, staral se o escapování, umožnil zapisovat hodnoty obsahující znak konce řádku...
- měl formát pro deklarativní (nikoli ve zdrojáku aplikace) zápis požadavků na konfigurační soubor a v důsledku toho umožnil validaci konfiguráku (hned po editaci nebo už během ní)
- byl snadno strojově zpracovatelný (aby když chci z jednoho programu změnit hodnotu atributu xyz, jsem se nepotřeboval učit syntaxi daného konfiguračního souboru, ale jen řekl, že se má atributu xyz nastavit hodnota "abc").
"postgresql.conf, což nepočítám, že by někdo provozoval"
Tuhle narážku nějak nechápu. Nebo snad myslíš, že tuhle skvělou databázi nikdo nepoužívá? :-)
"který cfg jste editovali ručně?"
pg_hba.conf, apache, samba, /etc/exports, ...
(ale žádný požitek z ručního upravování konfiguráků nemám :-)
Uz se to mele dokola:
a) nove GUI aplikace uz jsou z 90% v xml
b) starsi aplikace maji takovy format, ktery pro danou aplikaci je co nejjednodussi - spolecny univerzalni format uz tak jednoduchy nebude, napr. v /etc/passwd nejsou klice, sekce atd ponevadz tam nemaji zadny duvod, a zbytecne by komplikovali parser,ktery se muze napsat jednoduchy a pritom odolny vuci chybam. Nektere konfig soubory pouziva vice aplikaci, typicky /etc/passwd, ktere maji ruzne moznosti (sed, bash .. perl) a je snaha neprotezovat zadnou aplikaci, a delat veci co nejjednodussi.
c) existujici aplikace na novy format neprejdou, kdybych v konferenci navrhl prejit na novy conf postgresu, tak mne rozcupuji jak hada
d) vsechny textove conf. soubory jsou relativne snadno zpracovatelne - tak jsou navrzene, a se znalosti regularnich vyrazu hodnotu snadno ziskate a i snadno zmenite. Predpoklada se ale znalost regularnich vyrazu .. to je ekvivalent XPath .. bez znalosti XPath si s XML taky ani neskrtnete - to o cem jsme se bavili s MiG (Honza Molic) je moznost namapovat libovolny cfg soubor na virtualni adresarovou strukturu. Pak by odpadly ty regularni vyrazy .. pokud dokazete cat /cesta a echo '....' > /cesta tak snadno zmenite libovolny klic libovolneho programu z libovolneho prostredi
"postgresql.conf, což nepočítám, že by někdo provozoval"
Tuhle narážku nějak nechápu. Nebo snad myslíš, že tuhle skvělou databázi nikdo nepoužívá? :-)
Jelikoz jsem jeden z lidi, ktery pg v cechach podporuje, tak postgresql.conf znam nazpamet. Za jinych okolnosti bych asi do pg.conf nelezl, a pochybuji, ze by BFU neco s postgresql.conf delal - jinak je to ale ukazka velmi ciste navrzeneho a zdokumentovaneho formatu. Predstavim se: http://www.pgsql.cz/index.php/Pavel_St%C4%9Bhule I kdyz to nebylo mineno jako narazka na pg, myslim, si, ze si nejakou tu narazku mohu dovolit ;)
Nevim, ze by existovalo GUI pro pg, ale existuje GUI pro Apache, Sambu .. v podstate do tech konfiguraku vubec nemusite. Jadro cele teto debaty se toci kolem toho, nakolik se ma Linux nebo jednotlive distribuce prizpusobit BFU. Samozrejme BFU uvitaji GUI, podobnost s win a ti, co uz maji neco za sebou se GUI nebrani, ale vyzaduji txt konfiguraky, ponevadz si z nejakeho duvodu mysli, ze nic lepsiho neni. A ted jde o to to nejak sladit. Sam si myslim, ze cela tato diskuze je z casti atak win, protoze pokud clovek nechce delat neco specialniho, tak vetsinou do konfigu uz neleze. Postupem casu se to lepsi, a verim, ze v distribucich pro BFU jako je UBUNTU to bude casem dotazene. Nesmime zapominat, ze s myslenkou, ktera do jiste miry rve zily vsem znalym uzivatelum, tj. ze Linux je pro bezneho uzivatele, prislo az v podstate UBUNTU a to mozna ani ne pred 4 roky. Do te doby platilo jednoduche pravidlo - chces pouzivat Linux, tak se nauc, nechces nepouzivej.
Slušně navržené konfigurační soubory má třeba .NET Framework. Ale to nic nemění na tom, že si pro každou aplikaci budete muset nastudovat manuál. A to GUI nezmění. Microsoft se v minulosti o podobný kotrmelec pokoušel pomocí MMC, ale také se mu to moc nepovedlo. A naučit se syntaxi mi nepřijde složité, ale možná je to profesní deformace. BFU neumí používat ani Windows, takže mi to přijde bezpředmětné. Podstatou konfigurování je porozumění tomu, co konfiguruji. A jak jsem řekl, to vám GUI nedá. Ano, přináší pohodlí, ale to není to, co brání BFU v konfigurování aplikací.
Uz som v tejto diskusii pisal o gconf (http://www.root.cz/clanky/linuxu-chybi-univerzalni-konfiguracni-system/nazory/179514/), ktory je este lepsie navrhnuty a ma API, CLI, GUI interfaces. A ma dokonca volitelny backend. A jeho format v XML mi pride este lepsi nez ten .NET konfigurak.
Je ale zaujimave, ze v tejto diskusii sa ludia bavia iba ci xml, alebo txt konfigurak, co je nepodstatne. Komunita asi straca rozum, alebo do tejto diskusie zvacsa prispevaju iba ti, co clanok a problematiku nechapu. :(