Zdravim, chtel jsem si vykouset jak vypada a funguje nejaka distribuce vytvarena ze zdrojovych kodu a tak jsem vyzkousel SourceMage GNU/Linux a jsem jim nadsen, ale dost me zarazila jedna vec - po uspesnem nainstalovani systemu jsem provedl doporucovanou akci "sorcery rebuild" pro optimalizaci systemu. Zacalo to dobre - par dotazu ohledne zavislosti, atd., ale pak kdyz melo dojit k samotne kompilaci, tak system zacal stahovat zdrojovy kod k programu m4 z internetu, ale zhavaroval a zrejme se zacyklil (vypisoval neustale tu samou hlasku), protoze nemam ani sitovku ani pripojeni k netu. Kdyz se podivam na obsah zakladniho systemu, tak tam ten program je. Nevite cim to vyresit? Pri konfiguraci jadra jsem zadaval, ze nechci podporu site. Pokud tato optimalizace probiha tak, ze je pro ni potreba stahnout pozadovane zdrojaky z netu, tak by to chtelo nejak zduraznit. Jinak je to super ;-D ... Diky ...
Nejprve je potřeba v /var/lib/sorcery/codex/test najít pro příslušný spell soubor DETAILS. Z tohoto souboru lze "vyluštit" URL, ze kterého se příslušný spell stahuje. Potom je potřeba libovolným způsobem získat příslušný balík (bz2, tgz) a umístit ho do /var/spool/sorcery. Potom je možné normálně zadat cast -c spell a přeložení/instalace se provede.
Zdrojové kódy se ukládají do adresáře /var/spool/sorcery. Snaha vývojářů je, aby instalační CD bylo co nejmenší. Plánuje se možnost instalace pouze z diskety. Na CD se tak nacházejí pouze zdrojové kódy linuxového jádra, pcmcia, dhcpd, mwavem (WinModem), isdn, ppp a rp-pppoe (PPP-over-Ethernet – ADSL). Pokud bude větší zájem o Source Mage, není problém vytvořit větší CD obsahující více zdrojových kódů.
Jak je to se zavislostmi mezi jednotlivymi spelly? Dival jsem, jak takovy spell vypada a zjistil jsem, ze je tam i soubor DEPENDS. Pokud tedy na "cistem" systemu napisu 'cast gimp', tak se system podiva do souboru DEPENDS a zjisti, ze je potreba gtk+ a jpeg a zacne delat vse pro to, aby je mohl nainstalovat (instalovat glib, xfree86, ...)? Je to tak?
Jinak samozrejme dekuji za dalsi velmi pekny clanek a doufam, ze jich jeste par vyjde.
Ok ... Diky za odpovedi a jeste by me zajimala jedna vec ... Nevim jak je mozny a jestli jsem neudelal nejakou chybu pri intalaci, ale pri instalaci jsem zadal volby tiny sppedy a strip, ale kdyz se podivam na zaplneni diskoveho prostoru prikazem df, tak mi ukaze, ze i pres volby tiny a strip ma nainstalovany SourceMage Linux 500MB ... Myslel jsem si, ze to zabere max. 150MB ...
Umí SourceMage také reverzní závislosti?
Tedy např. jak řeší situaci, kdy při aktualizaci libsvga je třeba překompilovat i MPlayer, protože jinak by používal starou verzi knihovny.
Jak to SourceMage řeší? Odstraní staré knihovny a přestane to chodit, nechá tam staré knihovny, nebo oznámí balíky, které je třeba rekompilovat?
Gentoo to zatím nemá vyřešené a pokud je nová verze označená jako náhrada za starou (mají stejný SLOT), tak tu starou prostě zlikviduje a je na uživateli, aby to opravil.
Druhý dotaz se týká závislostí obecně: Jak moc je přesný strom DEPEND.
Má SourceMage nějaký nástroj, jak tento strom vyrobit a nebo se spoléhá na schopnost toho, kdo to napsal? V Gentoo jsem již několikrát narazil ne neúplné závislosti nebo na chybějící volitelné hodnoty. Výsledkem je pak zhavarování kompilace nebo balík, který má nebo nemá nějakou featuru podle toho, co jsem instaloval do systému předtím.
Jedná se o knihovnu statickou nebo sdílenou?
Automatický překlad závislých spellu je prováděn na základě souborů TRIGGERS.
MPlayer žádný TRIGGERS neobsahuje. Pokud je to chyba, je vhodné provést záznam na bugzille.
TRIGGERS soubor je obsažen například v spellu alsa-driver. Po přeložení linuxového jádra je automaticky zavolán překlad alsa-driver.
DEPENDS strom je zpravován vývojáři. Zcela jistě není 100%. Když něco nesedí, je vhodné informovat vývojáře (bugzilla).
Triggers je něco jiného - to si balík sám vyžádá rekompilaci sama sebe po aktualizaci někoho jiného.
Reverzní závislost balíku vynutí rekompilaci vybraných (nebo všech) balíků, které na něm staví.
Týká se to jak dynamických knihoven (kde to po odstranění staré verze s jiným soname může přestat chodit úplně), tak statických (kde je třeba rekompilovat všechny balíky dokonce i v případě pouhé opravy chyby při zachování kompatibility - viz případ chyby v zlib - co používalo dynamickou, bylo v pohodě a stačila tomu výměna balíku zlib, co statickou, muselo se rekompilovat celé.
V Source Mage je vždy nainstalovaná pouze jedna verze knihovny. Po aktualizaci systému (sorcery system-update) je automaticky spuštěn příkaz "cast --fix", který dá všechny nesrovnalosti do pořádku. "cast --fix" dělá kromě jiného "ldd check", tj. pokud se zjistí, že aplikace vyžaduje něco, co je v knihovně jinak, případně to tam vůbec není, je aplikace automaticky přeložena s již novou knihovnou.
Statické knihovny jsou řešeny pomocí TRIGGERS souborů.
Nejde to treba vyresit pomoci emerge --update --deep?
Chapu, ze myslite jeste trochu neco jineho, ale tohle snad staci. Navic udelat dokonale funkcni triggers je, myslim, nemozne. Vzdycky se na neco zapomene.
Gentoo je na muj vkus pruhlednejsi v nastavovani a je otazkou casu, kdy Portage bude mit tytez vlastnosti. Vyviji se velice rychle.
Samozřejmě, že nestačí. --deep --update nepočítá reverzní závislosti, ale pouze standardní závislosti. Na rozdíl od obyčejného --update ale jede rekurzívně.
Pokud tedy dáte emerge --deep --update -n mplayer, dokáže to zjistit, že některá ze závislých knihoven má novou verzi. Ale pokud kterákoliv z knihoven v závislostech zrovna nemá novou verzi, bude se to stále pokoušet linkovat se starou verzí.
Ale to stále ještě nemá nic společného s reverzními závislostmi. Např. po update GNOME-2.0 -> GNOME-2.2 přestala chodit všechna témata. Prostě proto, že se nepřekompilovaly. Aby to emerge zjistil, musel by umět vyhodnotit reverzní závislosti. Ve standardních závislostech GNOME totiž témata nejsou!
Závislosti = co potřebuji (nebo mohu pořebovat) ke kompilaci balíku
Reverzní závislosti = co kompilace balíku ovlivní (nebo může ovlivnit) v distribuci
1. Jsem UZIVATELEM Gentoo a nemam s nim skoro zadne problemy.
2. BALICKOVACI SYSTEM Gentoo je rychlejsi nez Source Mage. Na druhou stranu Sorcery si vytycilo o neco obtiznejsi cil (co do funkce), zatim se mi vsak zda v polovicnim stavu (kvuli rychlosti, obcasnym neosetrenym chybam).
3. Proc jsem se rozhodl ZUSTAT u gentoo?
Gentoo ma uzasne logicky predelane /etc. To poznate porovnanim s /etc u Mandrake (hruza). Source Mage je na muj vkus trochu konzervativni. Gentoo sice nema Portage v ncurses, zato lze vse jednoduse nastavit pomoci souboru. V tom nalezam, co mi v MDK a spol. chybelo - puvodni filozofii systemu.
Co se tyce rc skriptu, Source Mage primo do /init.d/net napere nastaveni site, to se mi nelibi. V gentoo je k tomu urceno /etc/conf.d.
4. Balickovacimu systemu Source Mage (pres jeho dobry navrh) bych vytkl MNOZSTVI SKRIPTU s nezvyklymi nazvy (cast, spell, ...). Pamet mam sice dobrou, ale obcas dostanu "okno". Kdyby mely vsechny skripty alespon predponu "mage", slo by zbytky slov dohledat TABem.
Gentoo ma jen dva skripty: emerge, coz je priblizne sorcery a nizkourovnovy ebuild, ktery dela vse ostatni (stazeni, rozbaleni,kompilace,...).
5. PROBLEMY PRI KOMPILACI jsou asitak 1:1 v Gentoo i Source Mage (vetsina veci jde na poprve).
6. Celkove ma Source Mage urcite budoucnost, par chyb, na nez jsem narazil se mu musi odpustit vzhledem k verzi, ktera jeste nedosahla jednicky.
Budu sledovat vyvoj Source Mage a UVIDIM.
7. Co vsak uz asi neopustim, je filozofie source-based distribuci, protoze konecne nalezam to, co jsem hledal pri prechodu z windows - jednoduchost, ucinnost a hlavne bezpecnost (v gentoo vim, kde co je).
Bod 4 opravdu nechapu. Chces rict ze ti SourceMage zabrani udelat si symlinky ? Ja naopak musim rict ze prave temito neobvyklymi nazvy me SourceMage zaujal a narozdil od Gentoo se chystam ze ho vyzkousim.<BR>
(Zkouset vsechny linuxove distribuce je prace na cely uvazek. Proto to nedelam. Cekam az me neco zaujme.)
jeden z argumentu, proc vystavet Linux na zelene louce je rychlost. Me by ale zajimalo kolik oproti napr. standardnimu RH ziskam? Prave treba RH je i v serverove oblasti velmi dobre propracovanou dist a ja nevim, zda usili vlozene napr do Source nebo Gentoo by byla adekvatni ziskanemu vysledku a rad bych slsel radu. Nejlepe necim podlozenou a ne jen dohady. Diky.
No tak jsem teda stahnul ten image, zakomprimovanej ma opravdu 138 MB, ale kdyz ho rozbalim, abych ho mohl napalit, tak ma 212 MB, coz na to male CDcko proste nenarvu, tak jsem to napalil na velky. :(
Muzu se teda zeptat, jak jsem to mel udelat?
To maly CDcko mam stale volny :)
Zdravim.