Debian i Fedora pokušavaju riješiti problem ovisnosti

Linux distribucije suočavaju se s problemom povećanja ovisnosti projekata, iako zadržava se broj ovisnosti za Python, Perl i Ruby kôd U razumnim granicama, JavaScript projekti uvježbavaju podjelu na vrlo male knjižnice, često izvodeći jednostavnu funkciju.

Repozitorij NPM već ima preko milijun paketa i tipične primjene veza do stotina ovisnosti, koji zauzvrat imaju svoje ovisnosti, što otežava održavanje i distribuciju tradicionalnih paketa s JavaScript aplikacijama na Linux distribucijama.

Zbog uskog ispreplitanja ovisnosti JavaScript knjižnica, ažuriranje bilo kojeg paketa s takvim knjižnicama u distribuciji može razbiti druge pakete.

Vezi s verzijama pogoršavaju problem: Jedna knjižnica može zahtijevati da jedna verzija ovisnosti radi stabilno, a druga može zahtijevati drugu.

Mnogi projekti zahtijevaju najnovije verzije knjižnica za rad, koji ne udovoljavaju uvijek zahtjevima stabilnosti distribucije (kontinuirani se razvoj prakticira u ekosustavu Node.js koristeći najnovije verzije okvira, a distribucija treba podršku nekoliko godina).

Pokušaji popravljanja verzija paketa samo u distribuciji dovesti do povećanja zastarjelih verzija u spremištu koje se godinama nije ažuriralo. Prekid održavanja jednog paketa negativno utječe na mnoge druge pakete i stvara još više problema.

Nadalje, lunakrsne ovisnosti dovode do činjenice da su mnoge knjižnice u Node.js je nemoguće deinstalirati iz sustavašto vam pak onemogućava deinstaliranje drugih programa Node.js.

Da bi se pozabavio tim problemom, Fedora projekt nedavno je odobrio plan za zaustavljanje zadanog formiranja zasebnih paketa s knjižnicama koje se koriste u projektima temeljenim na Node.js.

Odlučio je, počevši od Fedore 34, isporučiti samo osnovne pakete za Node.js s interpretatorom, zaglavljima, primarnim knjižnicama, binarnim datotekama i osnovnim alatima za upravljanje paketima (NPM, pređa).

U aplikacijama Fedora spremišta koje koriste Node.js, dopušteno je ugrađivati ​​sve postojeće ovisnosti u paket, bez dijeljenja i odvajanja knjižnica koje se koriste u zasebnim paketima.

Ugrađivanjem knjižnica riješit će se nereda u malim paketima, pojednostaviti održavanje paketa (prethodno je održavatelj proveo više vremena pregledavajući i testirajući stotine paketa s knjižnicama nego u glavnom paketu s programom), spasivši infrastrukturu od sukoba knjižnica i riješiti probleme s povezivanjem s verzijama knjižnica (održavači će u paket uključiti testirane i proizvodno testirane verzije).

Loša strana integracije bit će kompliciranje procesa unošenja ispravki na ranjivosti u knjižnicama, što će zahtijevati koordinirani rad održavatelja svih paketa koji uključuju ranjivu knjižnicu. Postoji opasnost da paket zaboravi ažurirati ranjivu ugrađenu knjižnicu i paket ostane neprimijećen.

Programeri za Debian također raspravlja o prelasku na sličan model integracije ovisnosti paketa. Uz Node.js, rasprava se dotiče i izrade paketa za platformu Kubernetes i projekata na PHP i Go jezicima, za koje postoji tendencija podjele na male ovisnosti. Još nije donesena nikakva odluka, ali postoji nada da će se s vremenom problem samo pogoršati i prije ili kasnije projekt će biti prisiljen nešto poduzeti.

Web-sučelje gsa (Greenbone Security Assistant) za sigurnosni skener gvm (Greenbone Vulnerability Management) navedeno je kao primjer problema koje imaju održavači paketa.

Ispostavilo se da je verzija gsa isporučena uz Debian nespojiva s novijim verzijama gvm-a, ali gsa nije bilo moguće ažurirati na trenutnu verziju jer sadrži značajne promjene i koristi npm za preuzimanje potrebnih Node.js biblioteka.

Zatraženih knjižnica je previše i zahtijevaju izradu novih paketa u Debianu da bi ih netko mogao održavati, jer Debianova pravila zabranjuju učitavanje vanjskih komponenti tijekom procesa izrade.

izvor: https://lwn.net/


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   qtkk dijo

    Ova fragmentacija okvira i knjižnica u ECMAscriptu izmakla je kontroli.
    Dobar članak