Debian a Fedora sa snažia vyriešiť problém so závislosťami

Distribúcie systému Linux čelia problému zvyšovania závislostí projektov počet závislostí pre Python, Perl a Ruby kód je zachovaný V rozumných medziach sa v projektoch JavaScriptu rozdeľuje na veľmi malé knižnice, ktoré často vykonávajú jednoduchú funkciu.

Úložisko NPM má už viac ako milión balíkov a typické aplikácie odkaz na stovky závislostí, ktoré zase majú svoje vlastné závislosti, čo sťažuje údržbu a distribúciu tradičných balíkov s aplikáciami JavaScriptu na distribúciách Linuxu.

Z dôvodu úzkeho vzájomného prepojenia závislostí knižnice JavaScript sa aktualizuje akýkoľvek balík s takýmito knižnicami v distribúcii môže rozbiť ďalšie balíčky.

Väzby verzií problém prehlbujú: Jedna knižnica môže na stabilné fungovanie vyžadovať jednu verziu závislosti a iná môže vyžadovať inú.

Mnoho projektov vyžaduje, aby fungovali najnovšie verzie knižníc, ktoré nie vždy spĺňajú požiadavky na stabilitu distribúcie (neustály vývoj sa v ekosystéme Node.js praktizuje pomocou najnovších verzií rámcov a distribúcia vyžaduje podporu niekoľko rokov).

Pokusy o opravu verzií balíkov iba v distribúcii viesť k nárastu zastaraných verzií v úložisku, ktoré neboli roky aktualizované. Prerušenie údržby jedného balíka nepriaznivo ovplyvňuje mnoho ďalších balíkov a spôsobuje ešte väčšie problémy.

Ďalej lkrížové závislosti viesť k tomu, že mnoho knižníc v Node.js bude nemožné odinštalovať zo systémučo vám zase zabráni v odinštalovaní ďalších programov Node.js.

Na riešenie tejto situácie projekt Fedora nedávno schválil plán zastavenia predvoleného vytvárania samostatných balíkov s knižnicami používanými v projektoch založených na Node.js.

Rozhodol sa, počnúc Fedorou 34, dodať iba základné balíčky pre Node.js s tlmočníkom, hlavičkami, primárnymi knižnicami, binárnymi súbormi a základnými nástrojmi na správu balíkov (NPM, priadza).

V aplikáciách úložiska Fedora, ktoré používajú Node.js, je dovolené vložiť všetky existujúce závislosti do balíka bez rozdeľovania a oddeľovania knižníc použitých v samostatných balíkoch.

Vloženie knižníc vás zbaví neporiadku malých balíkov, zjednoduší údržbu balíkov (predtým správca strávil viac času preskúmaním a testovaním stoviek balíkov s knižnicami ako v hlavnom balíku s programom), ušetrí infraštruktúru pred konfliktmi knižníc a vyriešiť problémy s odkazom na verzie knižníc (správcovia do balíka zahrnú testované a produkčne testované verzie).

Negatívom integrácie bude komplikácia procesu zavádzania opráv zraniteľnosti v knižniciach, čo si bude vyžadovať koordinovanú prácu správcov všetkých balíkov, ktoré obsahujú zraniteľnú knižnicu. Existuje nebezpečenstvo, že balík zabudne aktualizovať zraniteľnú zabudovanú knižnicu a zostane bez povšimnutia.

Vývojári Debian tiež diskutuje o prechode na podobný model integrácie závislostí balíkov. Okrem Node.js sa diskusia dotýka vytvorenia balíkov pre platformu Kubernetes a projektov v jazykoch PHP a Go, u ktorých existuje tendencia deliť sa na malé závislosti. Zatiaľ neprišlo nijaké rozhodnutie, je však nádej, že sa problém časom len zhorší a skôr či neskôr bude projekt prinútený niečo urobiť.

Ako príklad problémov, ktoré majú správcovia balíkov, sa uvádza webové rozhranie gsa (Greenbone Security Assistant) pre bezpečnostný skener gvm (Greenbone Vulnerability Management).

Ukázalo sa, že verzia gsa dodávaná v Debiane je nekompatibilná s novšími verziami gvm, ale nebolo možné aktualizovať gsa na aktuálnu verziu, pretože obsahuje významné zmeny a na stiahnutie potrebných knižníc Node.js používa npm.

Požadovaných knižníc je príliš veľa a na ich udržanie niekto vyžaduje vytvorenie nových balíkov v Debiane, pretože pravidlá Debianu zakazujú načítanie externých komponentov počas procesu zostavovania.

Fuente: https://lwn.net/


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   qtkk dijo

    Táto fragmentácia rámcov a knižníc v ECMAscript sa vymkla z rúk.
    Dobrý článok.