Forenkling af samling Linux fra kildekode ved hjælp af UmVirt LFS Packages-webstedet

Måske mange af GNU/-brugerneLinux I lyset af de seneste regeringsinitiativer for at skabe et "suverænt" internet, er vi optaget af målet om at beskytte os selv i tilfælde af utilgængelighed af arkiver for populære GNU-distributioner.Linux.

Hvem downloader repositorierne? CentOS, Ubuntu, DebianNogle mennesker bygger deres egne distributioner baseret på eksisterende distributioner, mens andre er bevæbnet med LFS-bøger (Linux Fra bunden) og BLFS (Beyond Linux (From Scratch) er allerede begyndt at kompilere sine distributioner fra kildekode, da han mener, at under forholdene med et "suverænt" internet vil hackerangreb, virusepidemier, datalækager uundgåeligt forekomme, og binære filer vil simpelthen blive forældede efter et stykke tid.

Jeg er for nylig kommet i gang med at kompilere en virtuel maskine udelukkende fra kildekode baseret på instruktionerne i bogen. Linux From Scratch Systemd Edition v.8.3. Jeg glæder mig til at dele resultaterne med jer.

Monteringsproces Linux

Monteringsproces Linux fra kildekoden kan opdeles i tre faser:

  1. Et LFS build-miljø er samlet baseret på det eksisterende operativsystem.
  2. Byggemiljøet vil bygge et billede af den virtuelle LFS-maskine.
  3. Yderligere pakker fra BLFS-bogen, som ikke er i LFS-bogen, installeres på den virtuelle maskine.

Statiske script-filer

Når du arbejder med byggemiljøet, er det praktisk at bruge udklipsholderen og SSH: Jeg kopierede kommandoerne fra bogen og indsatte dem i byggemiljøkonsollen.

Efter lancering af den oprettede virtuelle maskine opstod der alvorlige problemer. I modsætning til et terminalvindue kan du ikke indsætte kode i et virtuel maskine-klientvindue. Det er ubelejligt at skrive kommandoer ved hjælp af tastaturet, og der er stor risiko for tastefejl. Faren ved stavefejl er, at de måske ikke vises med det samme, men efter et stykke tid og fører til alvorlige problemer.

Det er kendt, at kommandoer ikke kun kan indtastes fra tastaturet, men også fra standardstrømmen (STDIN). Kilden til standardstrømmen kan være en seriel port, såvel som resultatet af scriptprogrammet, det såkaldte standard output (STDOUT).

Mange mennesker ved, at wget-kommandoen kan udlæse indholdet af en downloadet fil til standardoutput (STDOUT):

wget http://example.com -O -

Hvis outputtet af wget-kommandoen sendes til fortolkeren, kan vilkårlig kode udføres. Koden vil blive udført, som om den var blevet skrevet på tastaturet eller kopieret fra udklipsholderen:

wget http://umvirt.com/linux/helloworld.sh -O - | bash

På denne måde kan du placere filer med kommandoer på en eller anden webserver og sende deres indhold til tolken.

Dynamiske script-filer

Statiske filer er selvfølgelig en god ting, hvis du ved præcis, hvad der skal gøres, men hvis en pakke er installeret, hvis afhængighederne ikke er klart installeret eller ej, hvad så?

Det dynamiske websted, der er baseret på, kommer til undsætning LAMP webserver (Linux-Apache-MySQL-PHP). Hvis et websted dynamisk kan generere sider (HTML-filer) og billeder, bør det kunne håndtere almindelige tekstfiler.

Og så skete det. Skrev hjemmesiden UmVirt LFS-pakker som genererer scripts til Bash-fortolkeren. Sitedatabasen indeholder information om pakker, afhængigheder, patches, tilføjelser og build-kommandoer.

For nu at installere pakken mc (midnight commander) kan du indtaste kommandoen:

wget --no-check-cerificate https://umvirt.com/linux/packages/0.1/mc/install -O - | bash

Selve webstedsscriptet vil modtage data fra databasen og generere afhængighedskontrolkode og scriptkode til installation af pakken. Tolken vil behandle instruktionerne fra manuskriptet.

For at gøre dette muligt, gemmes oplysninger om installerede pakker i en database på den virtuelle maskine disk.

Databasen med installerede pakker er placeret i mappen /var/cache/ulfs-pakker er en liste over tomme filer med navne svarende til navnene på pakkerne.

Hvis pakken ikke findes i databasen, installeres afhængigheder rekursivt.

bekvemmelighed

For at gøre installationen af ​​pakker mere bekvem, skrev et andet websted chimpans-scriptet UmVirt LFS-assistent, ved hjælp af basen UmVirt LFS-pakker. Hovedopgaven UmVirt LFS-assistent - dette er udførelsen af ​​andre kommandoer.

Med chimpanse bliver det endnu nemmere at installere pakker:

chimp install mc

demonstration

At sætte sig ind i arbejdet med tjenester UmVirt LFS-pakker и UmVirt LFS-assistent du kan downloade basisbilledet Indledende UmVirt LFS v.0.1-opdatering 1. Installer Xorg ved hjælp af én kommando:

chimp install X

Mens scriptet kører, vil 141 pakker blive installeret automatisk. For at spare kompileringstid kan du erstatte værdien af ​​MAKEFLAGS-variablen i filen /etc/profile fra "-j1" (én tråd) til for eksempel "-j6" (seks tråde).

Decentralisering og tilpasning

Med det formål at sikre sikkerhed, autonomi og tilpasning er kildekoden til UmVirt LFS-pakkerne og UmVirt LFS Assistant-tjenesterne offentliggjort i det offentlige domæne. Alle kan downloade det, implementere det og tilpasse tjenester inden for deres infrastruktur.

Kilde: www.habr.com

Køb pålidelig hosting til websteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster