VÔib-olla on paljusid GNU/Linuxi kasutajaid viimasel ajal toimunud riiklike algatuste tÔttu, mis on suunatud «suverÀÀnse» Interneti loomisele, pannud rahule, et valmistuda juhtumiks, kui populaarsed GNU/Linuxi distributsioonide hoidlad ei ole enam saadaval.
MĂ”ni tĂ”mbab alla CentOSi, Ubuntu vĂ”i Debian hoidlaid, keegi kogub oma distributsioone olemasolevate distributsioonide alusel, samas kui teised, relvastatuna LFS (Linux From Scratch) ja BLFS (Beyond Linux From Scratch) raamatutega, on juba hakanud kompileerima oma distributsioone lĂ€htekoodist, usuvad, et «suverÀÀnse» Interneti tingimustes toimuvad kindlasti hĂ€kkerirĂŒnnakud, viirushaigused, andmelekked ja binaarfailid muutuvad lihtsalt mĂ”ne aja pĂ€rast aegunuks.
Hiljuti Ônnestus mul tÀielikult kompileerida virtuaalmasina lÀhtekoodist, lÀhtudes Linux From Scratch Systemd Edition v.8.3 raamatu juhistest. Kiirustan oma tulemusi teiega jagama.
Linuxi koostamisprotsess
Linuxi koostamisprotsessi lÀhtekoodist saab jagada kolme etappi:
- Olemasoleva operatsioonisĂŒsteemi pĂ”hjal luuakse LFS-i koostamiseskkond.
- Koostamiseskkonnas luuakse LFS-i virtuaalmasina pilt.
- Virtuaalmasinas installitakse BLFS-i raamatust tÀiendavaid pakette, mida LFS-i raamatus pole.
Statilised skriptifailid
Koostamiseskkonnaga töötades on mugav kasutada lÔikepinda ja SSH-d: kopeerid raamatust kÀsud ja kleepid need koostamiseskkonna konsolisse.
PÀrast loodud virtuaalmasina kÀivitamist tekkisid tÔsised probleemid. Erinevalt terminaliaknast ei ole virtuaalmasina kliendiaken vÔimaldanud koodi kleepimist. Klaviatuuriga kÀskude sisestamine on ebamugav ja vigade oht on suur. Vigade oht seisneb selles, et need vÔivad ilmneda mitte kohe, vaid mÔne aja pÀrast ja tuua kaasa tÔsiseid probleeme.
On teada, et kÀskusid saab sisestada mitte ainult klaviatuurilt, vaid ka standardvoolu (STDIN) kaudu. Standardvoolu allikana vÔib kasutada jÀrjestikust portaali ning samuti programmis skriptide vÀljundit, mida tuntakse kui standardne vÀljund (STDOUT).
Paljud teavad, et kÀsk wget vÔib edastada alla laaditud faili sisu standardsele vÀljundile (STDOUT):
wget http://example.com -O -Kui kÀivitada wget kÀsu vÀljund tÔlgendajasse, saab tÀita juhuslikku koodi. Kood kÀivitatakse justkui oleks see klaviatuurile sisestatud vÔi lÔikepuhvrisse kopeeritud:
wget http://umvirt.com/linux/helloworld.sh -O - | bashNii saab veebiserveris paigutada faile kÀskudega ja saata nende sisu tÔlgendajasse.
DĂŒnaamilised skriptifailid
Statilised failid on tÔepoolest head, kui tead tÀpselt, mida tuleb tÀita. Aga kui toimub paketi installimine ja ei ole selge, kas sÔltuvused on paigaldatud, siis mis siis?
DĂŒnaamiline veebisait tuleb appi, mis pĂ”hineb LAMP veebiserveril (Linux-Apache-MySQL-PHP). Kui sait suudab dĂŒnaamiliselt genereerida lehti (HTML-failid) ja pilte, peaks ta ka tavaliste tekstifailidega suurepĂ€raselt hakkama saama.
Nii see lÀkski. Kirjutasin saidi mis genereerib skripte Bash tÔlgendajale. Saidi andmebaasis on teave pakettide, sÔltuvuste, plaastrite, laiendite ja kokkupanekukÀskude kohta.
NĂŒĂŒd saab mc (midnight commander) paketi installimiseks kasutada kĂ€sku:
wget --no-check-certificate https://umvirt.com/linux/packages/0.1/mc/install -O - | bashSaidilt saadud skript kogub andmed andmebaasist ja loob sÔltuvuste kontrollimiseks ja paketi installimiseks vajaliku skripti koodi. TÔlgendaja töötleb skripti instruktsioone.
Selleks, et see vÔimalik oleks, salvestatakse virtuaalmasina kettale teave installitud paketid kohta andmebaasi.
Installitud pakettide andmebaas asub kataloogis /var/cache/ulfs-packages mis sisaldab loendit tĂŒhjadest failidest, mille nimed vastavad pakettide nimedele.
Kui paketti andmebaasist ei leita, toimub sÔltuvuste rekursiivne installimine.
Mugavused
Pakettide installimise mugavuse suurendamiseks kirjutasin skripti chimp, veel ĂŒhe saidi , mis kasutab andmebaasi UmVirt LFS Packages. Peamine ĂŒlesanne UmVirt LFS Assistant on teiste kĂ€skude tĂ€itmine.
Chimpi abil muutub pakettide installimine veelgi lihtsamaks:
chimp install mcDemonstratsioon
RÀÀkides teenuste toimimisest UmVirt LFS Packages ja UmVirt LFS Assistant saab alla laadida pĂ”hiversiooni . Teostada Xorg installimine, kasutades ĂŒhte kĂ€sku:
chimp install XSkripti töösse sekkumise korral paigaldatakse automaatselt 141 paketti. Aja sÀÀstmiseks kompileerimisel vĂ”ite failis /etc/profile muuta muutuja MAKEFLAGS vÀÀrtust «-j1» (ĂŒks lĂ”ng) nĂ€iteks vÀÀrtusele «-j6» (kuus lĂ”nga).
Detsentraliseerimine ja kohandamine
Ohutuse, autonoomsuse ja kohandamise eesmĂ€rkidel on UmVirt LFS Packages ja UmVirt LFS Assistant teenuste lĂ€htekood avalikult kĂ€ttesaadav. IgaĂŒks saab selle alla laadida, vĂ€lja töötada ja teenuseid oma infrastruktuuri raames kohandada.
Allikas: habr.com
