Debian un Fedora mēģina risināt atkarību problēmu

Linux izplatīšana saskaras ar pieaugošo atkarību problēmu no projektiem, lai arī tiek saglabāts Python, Perl un Ruby kodu atkarību skaits Saprātīgās robežās JavaScript projekti praktizē sadalīšanu ļoti mazās bibliotēkās, bieži veicot vienkāršu funkciju.

NPM repozitorijā jau ir vairāk nekā miljons paku un tipiskām lietojumprogrammām saite uz simtiem atkarību, kurām savukārt ir savas atkarības, kas apgrūtina tradicionālo pakotņu uzturēšanu un izplatīšanu ar JavaScript lietojumprogrammām Linux izplatījumos.

Sakarā ar to, ka JavaScript bibliotēkas atkarības ir cieši saistītas, jebkura pakotne ar šādām bibliotēkām tiek atjaunināta izplatīšanā tas var salauzt citus iepakojumus.

Versiju iesiešana saasina problēmu: vienai bibliotēkai var būt nepieciešama viena atkarības versija, lai tā darbotos stabili, un citai var būt nepieciešama cita.

Daudzu projektu darbībai ir nepieciešamas jaunākās bibliotēku versijas, kas ne vienmēr atbilst izplatīšanas stabilitātes prasībām (nepārtraukta attīstība tiek praktizēta Node.js ekosistēmā, izmantojot jaunākās ietvaru versijas, un izplatīšanai ir nepieciešams atbalsts vairākus gadus).

Mēģinājumi izlabot pakotnes versijas tikai izplatīšanā novecojušu versiju pieaugumu krātuvē, kas gadiem ilgi nav atjaunināta. Vienas paketes uzturēšanas pārtraukšana nelabvēlīgi ietekmē daudzus citus paketes un rada vēl vairāk problēmu.

Turklāt lsavstarpējās atkarības novest pie tā, ka daudzas bibliotēkas Node.js kļūst neiespējami atinstalēt no sistēmas, kas, savukārt, neļauj atinstalēt citas Node.js programmas.

Lai risinātu šo situāciju, Fedora projekts nesen apstiprināja plānu pārtraukt noklusējuma atsevišķu pakotņu veidošanu ar bibliotēkām, kuras tiek izmantotas Node.js balstītos projektos.

Sākot ar Fedora 34, viņš nolēma piegādāt tikai Node.js bāzes paketes ar tulku, galvenes, primārās bibliotēkas, bināros failus un pamata pakotņu pārvaldības rīkus (NPM, dzija).

Fedora repozitorija lietojumprogrammās, kas izmanto Node.js, visas esošās atkarības ir atļauts iegult paketē, nedalot un neatdalot atsevišķās paketēs izmantotās bibliotēkas.

Iegūstot bibliotēkas, tiks atbrīvota mazā pakotņu juceklis, vienkāršota paku uzturēšana (iepriekš uzturētājs pavadīja vairāk laika, lai pārskatītu un pārbaudītu simtiem pakotņu ar bibliotēkām, nekā ar programmu esošajā galvenajā paketē), ietaupīs infrastruktūru no konfliktiem bibliotēku versijas un atrisināt problēmas, saistot saites ar bibliotēkas versijām (uzturētāji paketē iekļaus pārbaudītas un ražošanas pārbaudītas versijas).

Integrācijas negatīvie aspekti būs korekciju ieviešanas procesa sarežģītība attiecībā uz ievainojamībām bibliotēkās, kas prasīs visu pakotņu, kurās ietilpst neaizsargātā bibliotēka, uzturētāju koordinētu darbu. Pastāv risks, ka pakete aizmirsīs atjaunināt neaizsargātu iebūvēto bibliotēku, un pakete paliks nepamanīta.

Izstrādātāji Debian arī apspriež pāreju uz līdzīgu pakotnes atkarības integrācijas modeli. Papildus Node.js diskusija skar pakotņu izveidi Kubernetes platformai un projektiem PHP un Go valodās, kurām ir tendence sadalīties mazās atkarībās. Vēl nav pieņemts lēmums, taču ir cerība, ka laika gaitā problēma tikai pasliktināsies, un agrāk vai vēlāk projekts būs spiests kaut ko darīt.

GSA (Greenbone Security Assistant) tīmekļa saskarne drošības skenera gvm (Greenbone Vulnerability Management) tiek minēta kā piemērs tām problēmām, kas rodas pakotņu uzturētājiem.

Gsa Debian nosūtītā versija izrādījās nesaderīga ar jaunākām gvm versijām, taču atjaunināt gsa uz pašreizējo versiju nebija iespējams, jo tajā ir būtiskas izmaiņas un tiek izmantotas npm, lai lejupielādētu nepieciešamās Node.js bibliotēkas.

Pieprasīto bibliotēku ir pārāk daudz, un ir nepieciešams izveidot jaunas paketes Debianā, lai kāds tos varētu uzturēt, jo Debian noteikumi aizliedz ārējo komponentu ielādi būvēšanas procesā.

Fuente: https://lwn.net/


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.

  1.   qtkk teica

    Šī ECMAscript ietvaru un bibliotēku sadrumstalotība ir izkļuvusi no rokas.
    Labs raksts.