Thjeshtojmë ndërtimin e Linux nga burimet me ndihmën e faqes UmVirt LFS Packages

Ndoshta shumë përdorues të GNU/Linux, në dritën e iniciativave të fundit të autoriteteve për krijimin e një Interneti «sovran», janë shqetësuar për të siguruar veten për ndonjë rast kur repository-t e distribucioneve të njohura të GNU/Linux nuk do të jenë të arritshme.

Disa shkarkojnë repository-t e CentOS, Ubuntu, Debian, disa ndërtjnë distribucione të tyre mbi baza të distribucioneve ekzistuese, ndërsa disa, me libra LFS (Linux From Scratch) dhe BLFS (Beyond Linux From Scratch), e kanë filluar përgatitjen e distribucioneve të tyre nga burimet, pasi besojnë se në kushte të Internetit «sovran» patjetër do të ndodhin sulme hackerësh, epidemira virusesh, rrjedhje të të dhënave, dhe binarët thjesht do të skadojnë pas një kohe.

Së fundmi arrita të kompiloj plotësisht një makinë virtuale nga burimet duke u bazuar në udhëzimet e paraqitura në librin Linux From Scratch Systemd Edition v.8.3. Rezultatet do t'i ndaj me ju.

Procesi i ndërtimit të Linux

Procesi i ndërtimit të Linux nga burimet mund të ndahet në tri etapa:

  1. Në bazë të sistemit operativ ekzistues, krijohet një ambient ndërtimi LFS.
  2. Në ambientin e ndërtimit krijohet një imazh i makinës virtuale LFS.
  3. Në makinat virtuale instalohen paketa shtesë nga libri BLFS, të cilat nuk gjenden në librin LFS.

Skedarë statikë të skripteve

Gjatë punës me mjedisin e ndërtimit, është e dobishme të përdorësh kopjimin dhe SSH: kopjon komandat nga libri dhe i ngjit në konsolën e mjedisit të ndërtimit.

Pas nisjes së makinës virtuale të krijuar, u shfaqën probleme serioze. Ndryshe nga dritarja e terminalit, nuk është e mundur të ngjiten kodet në dritaren e klientit të makinës virtuale. Të shkruash komandat me tastierë është e pakëndshme dhe ka një rrezik të madh për gabime shkrimi. Rreziku i gabimeve shkrimi është se ato mund të shfaqen jo menjëherë, por pas një kohe dhe të shkaktojnë probleme serioze.

Dihet se komandat mund të futen jo vetëm me tastierë, por edhe nga rrjedha standarde (STDIN). Si burim i rrjedhës standarde mund të përdoren porta seriale si dhe rezultati i punës së programit skript, e njohur si rrjedha standarde (STDOUT).

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

wget http://example.com -O -

Nëse rezultati i komandës wget dërgohet në interpretues, është e mundur të ekzekutohen kode të rastit. Kodi do të ekzekutohet ashtu siç do të ishte shkruar në tastierë ose kopjuar nga buferi i shkëmbimit:

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

Kështu mund të vendosësh në ndonjë server Web skedarë me komanda dhe të dërgosh përmbajtjen e tyre në interpretues.

Skedarë dinamikë skripti

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

Këtu vjen në ndihmë një faqe dinamike që bazohet në serverin LAMP Web (Linux-Apache-MySQL-PHP). Nëse faqja mund të gjenerojë dinamikisht faqe (skedarë HTML) dhe imazhe, atëherë duhet të përballojë gjithashtu skedarët e zakonshëm tekstualë.

Pra ndodhi kështu. Krijova një faqe Paketat UmVirt LFS e cila gjeneron skripte për interpretuesin Bash. Në bazën e faqes ndodhet informacion mbi paketat, varësitë, patches, shtesat dhe komandat e ndërtimit.

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

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

Skripti i faqes do të marrë vetë të dhënat nga baza e të dhënave dhe do të formojë kodin e kontrollit të varësive dhe kodin e skriptit për instalimin e paketës. Interpretuesi do të përpunojë udhëzimet nga skripti.

Për ta bërë këtë të mundur, informacioni mbi paketat e instaluara ruhet në diskun e makinerisë virtuale në një bazë të dhënash.

Baza e të dhënave të paketave të instaluara ndodhet në katalogun /var/cache/ulfs-packages përfaqëson një listë skedash bosh me emra përkatës për paketat.

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

Komoditeti

Për ta bërë instalimin e paketave më të lehtë, kam shkruar skriptin chimp, një faqe tjetër UmVirt LFS Assistant, që përdor bazën e të dhënave Paketat UmVirt LFS. 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

Demostrimi

Për t'u njohur me funksionimin e shërbimeve Paketat UmVirt LFS dhe UmVirt LFS Assistant mund të shkarkoni imazhin bazë Initial UmVirt LFS v.0.1 Update 1. Të instaloni Xorg duke ekzekutuar një komande:

chimp install X

Gjatë procesit të punës së skriptit, do të instalohen 141 paketa në mënyrë automatike. Për të kursyer kohë në kompilim, mund të zëvendësoni vlerën e variablës MAKEFLAGS në skedarin /etc/profile nga "-j1" (një bërje) në "-j6" (gjashtë bërje).

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ë akses publik. Kushdo mund ta shkarkojë, ta instaloje dhe ta modifikojë shërbimin në kuadër të infrastrukturës së tij.

Burimi: habr.com

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster