Debian kaj Fedora provas trakti la problemon pri dependecoj

Linukso-distribuoj alfrontas la problemon de kreskantaj dependecoj de la projektoj, kvankam la nombro de dependecoj por Python, Perl kaj Ruby-kodo konserviĝas En akcepteblaj limoj, JavaScript-projektoj praktikiĝas dividiĝi en tre malgrandajn bibliotekojn, ofte plenumante simplan funkcion.

La NPM-deponejo jam havas pli ol milionon da pakaĵoj kaj tipaj aplikoj ligi al centoj da dependecoj, kiuj siavice havas siajn proprajn dependecojn, malfaciligante prizorgi kaj distribui tradiciajn pakojn kun JavaScript-aplikaĵoj ĉe Linuksaj distribuoj.

Pro la strikta interplektiĝo de JavaScript-bibliotekaj dependecoj, ĝisdatigi iun ajn pakaĵon kun tiaj bibliotekoj en distribuo ĝi povas rompi aliajn pakaĵojn.

Versiaj ligoj pligravigas la problemon: Unu biblioteko eble postulos unu version de dependeco por resti stabila, kaj alia eble postulos alian.

Multaj projektoj bezonas la plej novajn versiojn de bibliotekoj por funkcii, kiuj ne ĉiam plenumas la stabilecajn postulojn de la distribuo (kontinua disvolviĝo estas praktikata en la ekosistemo Node.js uzante la plej novajn versiojn de kadroj, kaj la distribuo bezonas subtenon dum kelkaj jaroj).

Provoj ripari pakajn versiojn nur en la distribuo kaŭzas pliiĝon de malmodernaj versioj en la deponejo ne ĝisdatigitaj de jaroj. Interrompo de prizorgado por unu pakaĵo influas multajn aliajn pakaĵojn kaj kreas eĉ pli da problemoj.

Plue, lkrucaj dependecoj kondukas al la fakto, ke multaj bibliotekoj de Node.js fariĝas neeble malinstali de la sistemokiu siavice malebligas vin malinstali aliajn programojn Node.js.

Por trakti ĉi tion, la projekto Fedora ĵus aprobis planon haltigi la defaŭltan formadon de apartaj pakoj kun bibliotekoj uzataj en projektoj bazitaj en Node.js.

Li decidis, komencante kun Fedora 34, provizi nur bazajn pakojn por Node.js per interpretilo, kaplinioj, primaraj bibliotekoj, duumaĵoj kaj bazaj pakaĵaj mastrumiloj (NPM, fadeno).

En deponejoj de Fedora, kiuj uzas Node.js, ĝi rajtas enigi ĉiujn ekzistantajn dependecojn en pakaĵon, sen dividi kaj disigi la bibliotekojn uzitajn en apartaj pakaĵoj.

Enmeti bibliotekojn forigos malgrandajn pakajn malordojn, simpligos pakan prizorgadon (antaŭe, prizorganto pasigis pli da tempo reviziante kaj testante centojn da pakoj kun bibliotekoj ol en la ĉefa pako kun la programo), savos infrastrukturon de konfliktoj. de bibliotekoj kaj solvas problemojn kun ligado al bibliotekaj versioj (prizorgantoj inkluzivos testitajn kaj produktitajn testojn en la pakaĵo).

La malavantaĝo de integriĝo estos la komplikaĵo de la procezo alporti korektojn al vundeblecoj en bibliotekoj, kiuj postulos kunordigitan laboron de la prizorgantoj de ĉiuj pakaĵoj, kiuj inkluzivas la vundeblan bibliotekon. Estas danĝero, ke pako forgesos ĝisdatigi vundeblan enkonstruitan bibliotekon kaj la pakaĵo restos nerimarkita.

La programistoj de Debian ankaŭ diskutas ŝanĝi al simila paka dependeca integriĝa modelo. Krom Node.js, la diskuto tuŝas la kreadon de pakoj por la platformo Kubernetes kaj projektoj en la lingvoj PHP kaj Go, por kiuj oni emas dividi en malgrandajn dependecojn. Ankoraŭ neniu decido estis farita, sed oni esperas, ke kun la tempo la problemo nur plimalboniĝos kaj pli aŭ malpli frue la projekto devos fari ion.

La interreta interfaco gsa (Greenbone Security Assistant) por la sekureca skanilo gvm (Greenbone Vulnerability Management) estas citita kiel ekzemplo de la problemoj, kiujn havas pakaĵaj prizorgantoj.

La Debiana sendita versio de gsa montriĝis ne kongrua kun pli novaj versioj de gvm, sed ne eblis ĝisdatigi gsa al la aktuala versio, ĉar ĝi enhavas signifajn ŝanĝojn kaj uzas npm por elŝuti la necesajn bibliotekojn Node.js.

La petitaj bibliotekoj estas tro multaj kaj postulas krei novajn pakaĵojn en Debian por ke iu konservu ilin, ĉar Debianaj reguloj malpermesas ŝarĝi eksterajn erojn dum la konstrua procezo.

Fonto: https://lwn.net/


La enhavo de la artikolo aliĝas al niaj principoj de redakcia etiko. Por raporti eraron alklaku Ĉi tie.

Komento, lasu la vian

Lasu vian komenton

Via retpoŝta adreso ne estos eldonita. Postulita kampojn estas markita per *

*

*

  1. Respondeculo pri la datumoj: Miguel Ángel Gatón
  2. Celo de la datumoj: Kontrola SPAM, administrado de komentoj.
  3. Legitimado: Via konsento
  4. Komunikado de la datumoj: La datumoj ne estos komunikitaj al triaj krom per laŭleĝa devo.
  5. Stokado de datumoj: Datumbazo gastigita de Occentus Networks (EU)
  6. Rajtoj: Iam ajn vi povas limigi, retrovi kaj forigi viajn informojn.

  1.   Qtkk diris

    Ĉi tiu fragmentiĝo de kadroj kaj bibliotekoj en ECMAscript malaperis.
    Bona artikolo.