A Debian és a Fedora megpróbálja megoldani a függőségek problémáját

A Linux disztribúciók szembesülnek a növekvő függőségekkel a projektek közül, bár megmarad a Python, Perl és Ruby kód függőségeinek száma Ésszerű keretek között a JavaScript-projektek nagyon kicsi könyvtárakba osztást gyakorolnak, gyakran egyszerű funkciót ellátva.

Az NPM adattárban már több mint egymillió csomag van és tipikus alkalmazások link több száz függőséghez, amelyeknek viszont saját függőségeik vannak, ami megnehezíti a JavaScript-alkalmazásokkal ellátott hagyományos csomagok karbantartását és terjesztését Linux disztribúciókon.

A JavaScript könyvtárfüggőségek szoros összefonódása miatt bármely csomag frissítése ilyen könyvtárakkal egy disztribúcióban más csomagokat is feltörhet.

A verzió-összerendelések tovább súlyosbítják a problémát: Az egyik könyvtárhoz a függőség egyik verziója szükséges, hogy stabilan fusson, a másikhoz pedig egy másik.

Sok projekt működéséhez a könyvtárak legújabb verziói szükségesek, amelyek nem mindig felelnek meg a disztribúció stabilitási követelményeinek (a Node.js ökoszisztémában folyamatos fejlesztést gyakorolnak a keretrendszerek legújabb verzióinak felhasználásával, és a terjesztésnek több évig támogatásra van szüksége).

Megpróbálja kijavítani a csomag verzióit egyedül a terjesztésben az elavult verziók növekedéséhez vezetnek az adattárban, amelyet évek óta nem frissítettek. Az egyik csomag karbantartásának megszakadása hátrányosan érint sok más csomagot, és még több problémát okoz.

Továbbá lkeresztfüggőségek arra vezet, hogy sok A Node.js eltávolítása lehetetlenné válik a rendszerbőlami viszont megakadályozza más Node.js programok eltávolítását.

Ennek megoldására a Fedora projekt nemrégiben jóváhagyta a Node.js alapú projektekben használt könyvtárakkal rendelkező különálló csomagok alapértelmezett kialakításának leállítását.

A Fedora 34-től kezdve úgy döntött, hogy csak a Node.js-hez szállít tolmácsot, fejléceket, elsődleges könyvtárakat, bináris fájlokat és alapvető csomagkezelő eszközöket (NPM, fonal).

A Node.js-t használó Fedora adattár alkalmazásokban Minden meglévő függőséget be lehet ágyazni egy csomagba anélkül, hogy külön csomagokban fel kellene osztani és elkülöníteni a használt könyvtárakat.

A könyvtárak beágyazása megszabadul a kis csomagok rendetlenségétől, leegyszerűsíti a csomagok karbantartását (korábban a karbantartó több időt töltött több száz csomag áttekintésével és tesztelésével könyvtárakkal, mint a fő csomagban a programmal), megtakarítja az infrastruktúrát az ütközésektől könyvtárak változatát, és megoldja a könyvtári verziókkal való összekapcsolás problémáit (a karbantartók tesztelt és gyártás által tesztelt verziókat tartalmaznak a csomagba).

Az integráció hátránya a javítások folyamatának bonyolultja lesz a könyvtárak sebezhetőségeihez, amelyekhez a sebezhető könyvtárat tartalmazó összes csomag karbantartóinak összehangolt munkája szükséges. Fennáll annak a veszélye, hogy egy csomag elfelejti frissíteni a sérülékeny beépített könyvtárat, és a csomag észrevétlen marad.

A fejlesztők a A Debian tárgyal egy hasonló csomagfüggőségi integrációs modellre való áttérésről is. A megbeszélés a Node.js mellett a Kubernetes platform csomagjainak és a PHP és a Go nyelvű projekteknek a létrehozását érinti, amelyek hajlamosak kis függőségekre osztani. Még nem született döntés, de reméljük, hogy az idő múlásával a probléma csak súlyosbodni fog, és előbb-utóbb a projekt valamire kényszerül.

A gvm (Greenbone Vulnerability Management) biztonsági szkenner gsa (Greenbone Security Assistant) webes felületét példaként említjük a csomagkarbantartók problémáival.

A gsa Debian által szállított verziója összeférhetetlennek bizonyult a gvm újabb verzióival, de a gsa frissítése a jelenlegi verzióra nem volt lehetséges, mivel jelentős változásokat tartalmaz, és az npm segítségével tölti le a szükséges Node.js könyvtárakat.

A kért könyvtárak túl sokak, és új csomagok létrehozását igénylik a Debianban, hogy valaki karbantartsa őket, mivel a Debian szabályai tiltják a külső komponensek betöltését a build során.

forrás: https://lwn.net/


Hozzászólás, hagyd a tiedet

Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.

  1.   qtkk dijo

    A keretek és a könyvtárak e töredezettsége az ECMAscript-ben megszűnt.
    Jó a cikk.