Despre asamblarea distribuției LR-Linux de la zero. Sau aproape de la zero
După cum știți, există multe distribuții Linux, bune și uneori diferite. Unele dintre ele sunt colecții complete de tot și de tot. Întrupând, prin urmare, în metadistributiv, cel mai bun exemplu este binecunoscutul Sisyphus. Unii urmăresc calea autoreglementării, convertindu-se eventual la ceva de genul Linux pe o dischetă [1]. Încă altele, în căutarea unui echilibru între aceste căi, se îndreaptă spre ideea de scalabilitate a utilizatorilor, care a apărut pentru prima oară în FreeBSD.
Cu toate acestea, există o soluție radicală la această contradicție dialectică - respingerea distribuției în general. Adică, asamblarea unui sistem funcțional de la componente individuale, începând cu kernel, compilator, glibc și terminând cu aplicațiile utilizatorilor. Aceasta a fost întruchipată în proiectul Linux de la Scratch.
Desigur, nu se poate spune că în acest caz Linux nu merge absolut nimic. În timp ce pe primele pagini ale manual [2] dezvoltator Bikmans Gerard (Gerard Beekmans) declară respingerea fundamentală nu numai de pachete pre-construite, dar, de asemenea, pe toate tipurile de CD-ROM și discuri de boot în asamblarea componentelor de bază. Dar, în cele din urmă se dovedește că o condiție necesară pentru o astfel de instalație este prezența a mașinii cu un funcțional (cel puțin capacitatea de a încărca) sistem bazat pe orice altă distribuție. Ceea ce va fi de acord, deși interesant, dar încă nu destul de ceea ce este de așteptat: de fapt, absolut orice distribuție Linux, unele cheltuieli (diferite în diferite cazuri) timpul și efortul (și bani pentru trafic), puteți reconstrui și reconfigura, face perfectă pe sine nu este similar. Și - în procesul de lucru real, și nu într-un spațiu paralel.
Cu toate acestea, ideea de a construi o distribuție din surse de la zero este foarte tentantă. Așa că am atras atenția asupra unui alt proiect care dezvoltă principiile SFS. Se numește LRs-Linux și se bazează în mare măsură pe LFS. Cu toate acestea, spre deosebire de prototip, aceasta este încă o distribuție, deși originală. Acesta este disponibil sub forma unei imagini iso a CD-ului de boot, pe care sunt plasate toate componentele necesare funcționării sistemului. Și, prin urmare, este autosuficient. Despre aceasta și vor fi discutate în acest articol.
Deci, pornim de pe CD - în modul cvasi-text, adică Frame Buffer. Și într-un mod foarte ciudat - monitorul trebuie imediat să reconfigureze, alinierea - pe capul pinguinului cu cutscene. În continuare - alegerea aspectului tastaturii, acesta devine locul obișnuit al Linux-CD-ului bootabil. Te avertizez că alege aspectul care este diferită de engleza americană, nu este recomandat - efectul poate fi destul de ciudat (deși și US-tastatura nu te salva de la surprize după instalare, dar - fiecare legume un fruct). Și apoi vine vorba de limba de instalare. Lista este extinsă (inclusiv rusă), dar elementele disponibile pentru selecție sunt numai limbile engleză, franceză și germană.
Imediat am observat că discul, conform descrierii, servește trei scopuri - ca un purtător de salvare, pentru așa-numitul. salvare, iar instalarea este simplă. Deci, dacă nu alegem nici o limbă, ne aflăm imediat în modul de salvare, adică pur și simplu în coajă, pentru a începe instalarea de la care nu este posibil (cel puțin nu am găsit această posibilitate). Deci americanul englez, deși marcat în mod implicit, este încă necesar.
Dar după aceasta - alegerea reală între modurile specificate. Alegem, bineînțeles, instalarea - nu există nimic de restaurat în timp ce salvați - numai din instalația în sine. Apoi - un mesaj despre posibilitatea încărcării modulelor (de exemplu, pentru un adaptor SCSI). Ceea ce instalații ar trebui să știe pentru memorie - nu veți obține nici cea mai mică idee în această direcție.
Apropo, toate acestea se întâmplă într-o singură consolă virtuală, astfel încât să nu puteți aduce documentația la cel de-al doilea ecran (bun și pe disc, dintr-un păcat mai departe, lipsește). Deci, ar trebui să aveți grijă de imprimare în avans (de la site-ul). Instrucțiunile de instalare sunt foarte modeste în formă și conținut, dar conțin o amestecare absolut necesară. Ceea ce este încă un secret, de la daunele pe care le voi spune când vine vorba de asta. Deși acesta este punctul de instrucțiune și trebuie citit în prima (și eventual ultima) viraj.
Deci, prima dintre astfel de mementouri este înainte de primul act grav, partiția discului. Precedes textul (și vreau să numesc soprovodilovka) afirmă că partiția rădăcină trebuie să ia 1.8 GB pentru swap secțiunea - 64-128 MB, și se poate face în mod individual de boot-secțiunea de 20 MB. Și în același timp ne reamintește că discurile ATA din Linux sunt numite / dev / hda, / dev / hdb, etc. sistem de fișiere Linux este marcat printr-un cod hexazecimal 83, iar partiția sistemului de swap - cod 82. Ceva pentru nimic - nu poate merge prost, chiar și în ultimul grad de scleroză.
Pentru partiționarea pe disc, este recomandat cfdisk (instrucțiunile spun că puteți folosi și un utilitar grafic, dar se pare că acesta este încă în proiect). Cu toate acestea, metoda nu este interzisă. numita cale grea. Sub ce, cum este ușor de ghicit, se înțelege un fdisk obișnuit.
Indiferent dacă ales ai un mod dificil sau ușor (de altfel, nu ar putea înțelege de ce cfdisk este considerat mai ușor de utilizat - pentru mine, așa că fdisk mult mai ușor, mai flexibil, și cel mai important - mai transparent), următorul pas - alegerea punctelor de montare a creat secțiuni. Cu atribuirea paralelă a sistemelor de fișiere. Printre acestea din urmă sunt disponibile Ext2FS (bine, desigur!), Sa jurnalizarea și ReiserFS Scion Ext3FS - nu RAID software-ul, sau XFS nu este listat. Și nu pot fi determinate manual nici:
Definirea punctelor de montare necesită o anumită precizie. Deci, dacă a fost creată o partiție specială sub / boot, aceasta trebuie montată mai devreme decât sistemul de fișiere rădăcină - altfel va dispărea pur și simplu din listă. Și când selectați elementele de meniu (și faceți-le în cifre, prin numere), este mai bine să nu faceți greșeli - tasta Ștergere nu șterge nimic și eroarea duce la o ejectare pe linia de comandă. Apoi, singura cale de ieșire, dacă există dorința de a continua aceste jocuri - reboot, și totul de la început.
Când partiționarea discului este completă, se recomandă să alegeți ce va fi instalat în dur. Opțiuni - purist seta AFM, un set de LRS reale (acesta - seturi disjuncte), LRS + Xfree86, LRS + Xfree86 + KDE (din păcate, în versiunea curentă 2.2.2 numai). Ca standard, versiunea LFS + este luată în considerare. Nu este necesar să fii intimidat de acest lucru - în etapa următoare va fi posibilă detalierea selecției în pachetele individuale (nu numai din setul selectat, ci și din cele neselectate).
Cu toate acestea, de fapt, gradele de libertate nu sunt atât de multe. Din cauza AFM include componentele de bază ale sistemului (fără un pic de ceva ce se poate face în acest set), o parte a LRS - aplicații de utilizator de bază și utilități (aici, desigur, de la ceva, și apoi o mulțime de lucruri, se poate renunța). Setul de XFree, dar reală X pornește, inclusiv mai multe ferestre manageri (WindowMaker, Blackbox, Xfce) și „aplicații abstracte X și utilități (nu toate dintre ele sunt văzute la mine este necesar, astfel încât spațiul pentru a șterge mai mult decât suficient). Și cu KDE - totul este clar, dacă există dorința de a folosi acest mediu, va trebui să pună aproape totul de la set.
Pentru a șterge pachetele din seturi ar trebui abordată cu grijă. Nu există control asupra dependențelor, nici o sugestie nu este oferită și nici un indiciu. Astfel, puteți opta în condiții de siguranță pentru a instala un kdebase fără biblioteca Qt - și să învețe despre imposibilitatea de ea numai atunci când compilați (și - nu o dată, ci mai mult pe aceasta mai târziu). Cu toate acestea, dacă ați înțeles relația dintre pachetele și bibliotecile pot fi (referindu-se, în acest caz, la AFM-Book, fără ea, nu se poate face) pentru a asambla componentele sistemului este foarte precis ca un rucsac bun pentru turisti - în cazul în care, după cum știm, nu ar trebui să fie nimic de prisos, dar totul trebuie necesar să fie.
Adevărat, sincer, m-am așteptat mai mult - și anume, posibilitatea unei alegeri individuale a tuturor componentelor sistemului. Și așa, în setul LFS, ele apar sub formă de binutilite generalizate, nettoole etc. Și pentru a înțelege ce se află în spatele lor, poți doar să citiți cu atenție aceeași carte a LFS și din ceva în interiorul pachetului să refuzați - și deloc este imposibil.
Cu toate acestea, plus sistemul, pachetele vor nu-bibelouri - Ei bine, care, mă rog, ai nevoie de ansamblul Midnight Commander cu sprijinul GNOME, așa cum este cazul în mod implicit pe cele mai multe distribuții Linux (chiar și sistemul de porturi FreeBSD care suferă). Și, personal, mi-a placut consola de programe orientate spre meniu sunt compilate fără suport pentru gpm - în opinia noastră, făcând clic pe mouse-ul pe care nu răscumpără off meniuri cu cutpaste consola tradițională.
Dar am fugit - în timp ce ne pregătim doar să construim pachetele. Pentru aceasta, mai întâi alegem compilatorul, gcc-2.95 sau gcc-3.0.3. Administrarea Spore spune că al doilea generează un cod mai rapid, dar nu poate construi surse vechi. Acesta din urmă este, în general adevărat, dar, din nou, anticipând evenimente, aș spune că toate selectate de mine (aproape toate AFM, LRS fără cele mai multe echipamente de rețea și minimal cu numai X golimy Blackbox'om) compilate fără probleme. Mai curând, problemele au fost, desigur, dar nu aveau nimic de-a face cu compilatorul.
Apoi, se întreabă dacă include optimizarea în construcție. Opțiunile sunt de la i386 la Athlon (ultima numai când este selectată gcc-3). Sau - manual, pentru orice procesor gcc acceptat. Sunt o afacere păcătoasă. nu sa deranjat să afle în prealabil dacă există o optimizare în gcc-3 pentru P-4 (și sistemul a fost plasat pe el), și nu au existat comentarii însoțitoare pe această temă. Deși acest lucru ar fi mai util decât o reamintire a codului sistemului de fișiere Linux. De aceea m-am limitat la optimizarea pentru i686 abstract.
Adevărat, nu pentru mult timp - aproximativ 15-20 de minute mai târziu, pâlpâirile s-au oprit, deși nu a existat nici o estompare a ecranului - liniile tocmai au înghețat în loc. La inceput m-am gandit ca masina a fost atarna la moarte - cu toate acestea, unii indicatori ai vietii HDD-ului amintesc de hard disk si CD ROM. M-am consultat cu instrucțiunea - și am scos cel mai important adevăr în el, care a fost menționat la început: că asamblarea sistemului poate dura între 2 și 14 ore. De exemplu, sa indicat că o instalare completă pe P-III / 800 necesită ore până la 10.
Nu am avut nici P-III / 800 (P-4 / 1.9) și finaliza instalarea nu am ordine, astfel că, potrivit estimărilor, în jurul a două întâlni a fost atât de puternic băută vodca kislyarki caucaziene si sa culcat pe mâncarea enervantă se bazează pe re-citirea LFS-Book (două sute de pagini cu dimensiunea a 10-a). Ca urmare, procedura a durat 2 ore și 25 de minute.
Dar asta nu era totul. Mai întâi a fost asamblarea kernel-ului - cu excepția cazului în care, desigur, am folosit kernel-ul LRkernel propus. Pe care l-am respins cu indignare, deși, în lumina unor evenimente ulterioare, aceasta ar fi cea mai bună soluție. Configurația kernel-ului este realizată (fără altă alternativă) prin intermediul lui make menuconfig, care se numește automat.
Nucleul nu a fost inclus în naiposlednih (2.4.17), fără sprijinul XFS (pentru un motiv oarecare nu este oferit la timp mount). Așa că nu am acordat prea multă atenție acestui lucru - trebuie să rearanjăm în curând. Dar nu mi-a plăcut deloc. După ce iese din meniu pentru a configura procesul de construire a început în mod automat, iar eu nici măcar nu au timp pentru a vedea ce se întâmplă - dacă merge bzImage, sau unele zdisk (judecând după mai departe, este acesta din urmă).
Și apoi, fără nici un fel de tranziție, de introducere a parolei pentru root (și sistemul de mai mult de o dată mi-a avertizat despre simplitatea folosită pentru acest înjurături obscene la una din limbile exotice), locuri de muncă utilizatorului și, imediat, configurația LILO. Acesta din urmă poate fi eliminat dacă alegeți să bootați de pe o dischetă - dar.
Am înregistrat imaginea kernel-ului într-o clipă (eronat, dar mai târziu sa dovedit că nici unul dintre cele obișnuite încă nu se potrivea). Și m-am mutat la ultimul punct al programului - curățarea binarelor de informațiile de depanare (așa că am tradus originalul). După aceea, i sa oferit să alegeți - reporniți sau activați consola. Aici aș alege, bineînțeles, acesta din urmă, vedeți ce este cu kernel-ul și, dacă este necesar, reparați /etc/lilo.config, dar mâncărime în trei degete namozolennyh:
Într-un cuvânt, înțelegi - nu a venit nimic din reboot. Vzgrustnuv, gata de a fi încărcate în salvare-operare și lupta cu LILO și kernel-ul, atunci când brusc aminte foarte salvare de instalare, și a decis să-l încercați - să lupte ceva special, nu a fost pentru asta.
Sa dovedit - nu în zadar, un lucru bun. Renunțați rapid la alegerea aspectului și a limbii - și vă aflați în faza de alegere a pachetelor. Aici, în lista de seturi este deja remarcat faptul că a fost instalat mai devreme (sa dovedit că a fost înregistrată în baza de date, undeva în / var). Și nu puteți doar să adăugați ceva, ci și să îl ștergeți. Am profitat de ambele posibilități (fructele citirii LFS-Book pe o mușcătură plictisitoare în timpul instalării).
Îndepărtarea a fost fără durere, dar cu instalarea a devenit mai proastă. Am decis să adaug comandantul de la miezul nopții, dar am uitat să menționez glib, fără de care a refuzat să se adune. Și el nu a raportat imediat acest lucru, ci mai degrabă pretindea că se compilase ceva acolo. Ei bine, nu este înfricoșător, doar câteva minute pierdute. Imaginați-vă cum ar fi să instalați KDE într-o instalare obișnuită, fără nimic util: cinci ore de divertisment - și începeți din nou.
În kit, apropo, qwerty / ru4 nu este, deoarece nu există alt ru; fonturi cantilever chirilice acolo, mapscreen pentru koi2alt acolo, locale rusă este, și nici un aspect. Straight de-a lungul Venechka Erofeev. Îmi amintesc, cu un alt distro (sau mai degrabă austrieci) - RockLinux, a fost ceva de genul asta. Ei bine, întregul set potibreny toate chirilic Altlinux - întotdeauna la îndemână, bagheta magică dreapta (un arc scăzut la toate că la www.altlinux.ru).
În general, rusificarea aventurilor mele pentru a construi Linux'a din nimic și sa încheiat. Bineînțeles, ceea ce mă distram este departe de a fi. De fapt, distribuția de obicei, cu meniul orientate spre obicei, deși pur textuală, instalare, oferind o mare libertate nu (dar nu mai puțin) de alegere decât altele (cele, desigur, că nu se află sub sloganulCu toate acestea, în cazul meu, ultimul nu a avut rezultate practice. În ciuda noului compilator și a optimizării, sistemul nu a fost deosebit de grăbit. Cel puțin vizibil, pentru Gentoo Linux (compilat folosind gcc-3, dar cu un kernel mai nou), acesta încă mai urmărește și urmărește. Chiar și ReiserFS (am uitat să spun că am ales acest sistem de fișiere special) nu sa arătat în plină splendoare asupra operației mele preferate (copierea multor fișiere mici).
Toate acestea nu sunt reproșuri. Oricum, ideea este bună, dar performanța nu este la cel mai înalt nivel - așa că versiunea este 0.2.6. Mai important, orientarea distribuției, în special cele care îi însoțesc, nu este foarte clară. Voi repeta că aproape nimeni care știe despre conexiunea dintre mc și glib are nevoie de o reamintire a codului de partiție swap. Dar, în cazuri neobișnuite, sugestiile ar putea fi mai detaliate. Și, cel mai important, ar exista mai multă libertate de alegere:
[1] Un exemplu de acest lucru este mulinux, (aproape) o distribuție funcțională, deși pe două dischete (al doilea este sistemul X). [înapoi la text]
[2] Care se numește - Cartea LFS. Trebuie să spun că citirea este foarte interesantă și utilă pentru orice utilizator Linux, chiar dacă nu intenționează să-și compună propria distribuție. [înapoi la text]