Ne e thjeshtojmë ndërtimin e Linux nga burimi me ndihmën e faqes UmVirt LFS Packages

Ka shumë mundësi që shumë përdorues të GNU/Linux, në dritën e iniciativave të fundit të autoriteteve për të krijuar një Internet "sovran", janë shqetësuar për të siguruar veten në rast se repozitorët e distribucioneve të njohura të GNU/Linux bëhen të papërballueshëm.

Disa i shkarkojnë repozitorët e CentOS, Ubuntu, Debian, disa krijojnë distribuona të veta mbi bazën e distribuoneve ekzistuese, ndërsa disa, të armatosur me libra LFS (Linux From Scratch) dhe BLFS (Beyond Linux From Scratch), tashmë kanë filluar të kompilojnë distribuona të veta nga burimet, pasi mendojnë se në kushtet e Internetit "sovran" do të ndodhin sulme hacker, epidemitë e viruseve, rrjedhje të të dhënave, dhe binaret thjesht do të bëhen të tejkaluara pas një kohe.

Së fundmi arrita të kompiloj plotësisht një makinë virtuale nga burimet duke u bazuar në udhëzimet e drejtuara në librin Linux From Scratch Systemd Edition v.8.3. Të dhënat e rezultateve po i ndaj me ju.

Procesi i ndërtimit të Linuxit

Procesi i ndërtimit të Linux-it nga burimet mund të ndahet në tre etapa:

  1. Në bazë të sistemit operativ ekzistues, ndërtohet mjedisi i ndërtimit LFS.
  2. Në mjedisin e ndërtimit ndërtohet imazhi i makinës virtuale LFS.
  3. Në makinën virtuale, instalohen paketat shtesë nga libri BLFS që nuk ndodhen në librin LFS.

Skedarë statikë skripti

Gjatë punës me mjedisin e ndërtimit, është e dobishme të përdorësh kopjimin dhe SSH: kopjo komandat nga libri dhe ngjiti ato në terminalin e mjedisit të ndërtimit.

Pasi u nis makina virtuale e krijuar, u shfaqën probleme serioze. Ndryshe nga dritarja e terminalit, nuk është e mundur të ngjitet kodi në dritaren e klientit të makinës virtuale. Të shkruash komandat me tastierë është e vështirë dhe rreziku i gabimeve të shtypjes është i madh. Rreziku i gabimeve të shtypjes është se ato mund të shfaqen jo menjëherë, por pas një kohe dhe të çojnë në probleme serioze.

Është e njohur se komandat mund të jenë të futura jo vetëm nga tastiera, por edhe nga rrjedha standarde (STDIN). Burimi i rrjedhës standarde mund të jetë porta seriale, si dhe rezultati i programit të skriptit, i njohur si rrjedha standarde (STDOUT).

Shumë e dinë se komanda wget mund të tregojë përmbajtjen e skedarit të shkarkuar në rrjedhën standarde (STDOUT):

wget http://example.com -O -

Nëse drejtojmë daljen e komandës wget në interpreter, është e mundur të ekzekutojmë kode të rastit. Kodi do të ekzekutohet ashtu siç do të ishte futur në tastierë ose e kopjuar nga clipboard:

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

Në këtë mënyrë, mund të vendosim në ndonjë server Web skedarë me komanda dhe të dërgojmë përmbajtjen e tyre në interpreter.

Skedarë dinamikë skenash

Skedarët statikë janë natyrisht të mirë nëse e di saktësisht çfarë duhet të ekzekutohet, por çfarë ndodh nëse instalohet një paketë dhe nuk është e qartë nëse varësitë janë instaluar apo jo?

Më ndihmon një faqe dinamike që është e bazuar në LAMP Web-server (Linux-Apache-MySQL-PHP). Nëse faqja mund të gjenerojë dinamike faqe (skedarë HTML) dhe imazhe, atëherë duhet të jetë në gjendje të merrej me skedarë tekstualë normalë.

Kështu kjo ndodhi. E shkrova faqen UmVirt LFS Packages e cila gjeneron skenarë për interpreterin Bash. Në bazën e faqes ka informacion rreth paketave, varësive, patches, shtesave dhe komandave të ndërtimit.

Tani për të instaluar paketën mc (midnight commander), mund të përdorësh komandën:

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

Skenari i faqes do të marrë vetë të dhënat nga baza e të dhënave dhe do të formojë kodin e verifikimit të varësive dhe kodin e skenarit për instalimin e paketës. Interpreteri do të përpunojë udhëzimet nga skenari.

Për që kjo të bëhet e mundur, informacioni në lidhje me paketat e instaluara ruhet në diskun e makinës virtuale në një bazë të dhënash.

Baza e të dhënave të paketa të instaluara ndodhet në katalogun /var/cache/ulfs-packages përbëhet nga një listë skedarësh të zbrazët me emra që i përkasin emrave të paketave.

Nëse paketa nuk gjendet në bazën e të dhënave, ndodh instalimi rekursiv i varësive.

Lehtësira

Që instalimi i paketave të bëhet më i lehtë, kam shkruar skenarin chimp, një tjetër faqe UmVirt LFS Assistant, duke përdorur bazën UmVirt LFS Packages. Detyra kryesore UmVirt LFS Assistant — është ekzekutimi i komandave të tjera.

Me ndihmën e chimp, instalimi i paketave bëhet edhe më i thjeshtë:

chimp install mc

Demonstrim

Për të njohur funksionimin e shërbimeve UmVirt LFS Packages dhe UmVirt LFS Assistant mund të shkarkoni një imazh bazik Initial UmVirt LFS v.0.1 Update 1. Të kryhet instalimi i Xorg duke përdorur një komandë:

chimp install X

Gjatë punës së skriptit do të instalohen 141 paketa në mënyrë automatike. Për të kursyer kohë në kompilim, mund të ndërroni vlerën e variablës MAKEFLAGS në skedarin /etc/profile nga «-j1» (një rrjedhë) për shembull në «-j6» (gjashtë rrjedha).

Decentralizimi dhe personalizimi

Për qëllime sigurie, autonomisë dhe personalizimit, kodi burimor i shërbimeve UmVirt LFS Packages dhe UmVirt LFS Assistant është publikuar në mënyrë të hapur. Çdo kush mund ta shkarkojë, ta zbatojë dhe ta modifikojë shërbimin brenda infrastrukturës së tij.

Burimi: habr.com

Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS 🔥 Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS - ProHoster