Morda mnogi uporabniki GNU/Linux Glede na nedavne vladne pobude za vzpostavitev "suverenega" interneta nas skrbi cilj zaščite v primeru nedostopnosti repozitorijev priljubljenih distribucij GNU.Linux.
Kdo prenaša repozitorije? CentOS, Ubuntu, Debian, nekateri ljudje gradijo svoje distribucije na podlagi obstoječih distribucij, medtem ko so drugi oboroženi s knjigami LFS (Linux Iz nič) in BLFS (Onkraj Linux From Scratch) se je že lotil sestavljanja svojih distribucij iz izvorne kode, saj verjame, da se bodo v pogojih "suverenega" interneta neizogibno pojavili hekerski napadi, virusne epidemije, uhajanje podatkov in binarne datoteke bodo čez nekaj časa preprosto zastarele.
Pred kratkim sem se lotil prevajanja virtualnega stroja v celoti iz izvorne kode na podlagi navodil v knjigi. Linux Iz nič, različica Systemd v.8.3. Z veseljem delim rezultate z vami.
Postopek sestavljanja Linux
Postopek sestavljanja Linux iz izvorne kode lahko razdelimo na tri faze:
- Gradbeno okolje LFS je sestavljeno na podlagi obstoječega operacijskega sistema.
- Gradilno okolje bo zgradilo sliko navideznega stroja LFS.
- Dodatni paketi iz knjige BLFS, ki niso v knjigi LFS, so nameščeni v virtualni stroj.
Statične skriptne datoteke
Pri delu z gradbenim okoljem je priročno uporabljati odložišče in SSH: kopiral sem ukaze iz knjige in jih prilepil v konzolo gradbenega okolja.
Po zagonu ustvarjenega virtualnega stroja so se pojavile resne težave. Za razliko od okna terminala ne morete prilepiti kode v okno odjemalca navideznega stroja. Vnašanje ukazov s tipkovnico je neprijetno in obstaja velika nevarnost tipkarskih napak. Nevarnost tipkarskih napak je, da se morda ne pojavijo takoj, ampak čez nekaj časa in povzročijo resne težave.
Znano je, da lahko ukaze vnašate ne samo s tipkovnice, temveč tudi iz standardnega toka (STDIN). Izvor standardnega toka so lahko serijska vrata, pa tudi rezultat skriptnega programa, tako imenovani standardni izhod (STDOUT).
Veliko ljudi ve, da lahko ukaz wget izpiše vsebino prenesene datoteke v standardni izhod (STDOUT):
wget http://example.com -O -Če se izhod ukaza wget pošlje tolmaču, se lahko izvede poljubna koda. Koda bo izvedena, kot da bi bila vtipkana na tipkovnici ali kopirana iz odložišča:
wget http://umvirt.com/linux/helloworld.sh -O - | bashNa ta način lahko datoteke z ukazi postavite na nek spletni strežnik in njihovo vsebino pošljete tolmaču.
Dinamične skriptne datoteke
Statične datoteke so seveda dobra stvar, če točno veste, kaj je treba narediti, toda če je paket nameščen, če odvisnosti niso jasno nameščene ali ne, kaj potem?
Na pomoč priskoči dinamično spletno mesto, ki temelji na Spletni strežnik LAMP (Linux-Apache-MySQL-PHP). Če lahko spletno mesto dinamično generira strani (datoteke HTML) in slike, potem bi moralo biti sposobno obdelati tudi navadne besedilne datoteke.
In tako se je zgodilo. Napisal spletno stran ki generira skripte za tolmač Bash. Baza podatkov spletnega mesta vsebuje informacije o paketih, odvisnostih, popravkih, dodatkih in ukazih za gradnjo.
Zdaj lahko za namestitev paketa mc (midnight commander) vnesete ukaz:
wget --no-check-cerificate https://umvirt.com/linux/packages/0.1/mc/install -O - | bashSam skript spletnega mesta bo prejel podatke iz baze podatkov in ustvaril kodo za preverjanje odvisnosti ter kodo skripta za namestitev paketa. Tolmač bo obdelal navodila iz scenarija.
Da bi bilo to mogoče, so informacije o nameščenih paketih shranjene v bazi podatkov na disku navideznega stroja.
Baza podatkov nameščenih paketov se nahaja v imeniku /var/cache/ulfs-packages je seznam praznih datotek z imeni, ki ustrezajo imenom paketov.
Če paketa ni mogoče najti v bazi podatkov, se odvisnosti namestijo rekurzivno.
Objekti
Za lažjo namestitev paketov je drugo spletno mesto napisalo skript za šimpanze , z uporabo baze Paketi UmVirt LFS. Glavna naloga UmVirt LFS pomočnik - to je izvajanje drugih ukazov.
S chimp postane namestitev paketov še lažja:
chimp install mcDemonstracija
Za seznanitev z delom služb Paketi UmVirt LFS и UmVirt LFS pomočnik lahko prenesete osnovno sliko . Namestite Xorg z enim ukazom:
chimp install XMed izvajanjem skripta bo samodejno nameščenih 141 paketov. Če želite prihraniti čas prevajanja, lahko zamenjate vrednost spremenljivke MAKEFLAGS v datoteki /etc/profile iz “-j1” (ena nit) v, na primer, “-j6” (šest niti).
Decentralizacija in prilagajanje
Za namene zagotavljanja varnosti, avtonomije in prilagajanja je izvorna koda storitev UmVirt LFS Packages in UmVirt LFS Assistant javno objavljena. Vsakdo ga lahko prenese, uvede in prilagodi storitve znotraj svoje infrastrukture.
Vir: www.habr.com
