Debian и Fedora се обидуваат да го решат проблемот со зависностите

Дистрибуциите на Linux се соочуваат со проблем на зголемување на зависностите од проектите, иако се чува бројот на зависности за Python, Perl и Ruby кодот Во разумни граници, проектите JavaScript практикуваат да се делат на многу мали библиотеки, честопати извршувајќи едноставна функција.

Складиштето за НПМ веќе има повеќе од милион пакети и типични апликации врска до стотици зависности, кои пак имаат свои зависности, што го отежнува одржувањето и дистрибуцијата на традиционалните пакети со JavaScript апликации на дистрибуциите на Linux.

Поради тесното испреплетување на зависностите од библиотеката JavaScript, ажурирање на кој било пакет со вакви библиотеки во дистрибуција може да скрши други пакувања.

Врските за верзии го влошуваат проблемот: Една библиотека може да бара една верзија на зависност за да работи стабилна, а друга може да бара друга.

За многу проекти, потребни се најнови верзии на библиотеки, кои не секогаш ги исполнуваат условите за стабилност на дистрибуцијата (континуиран развој се практикува во екосистемот Node.js со користење на најновите верзии на рамки, а на дистрибуцијата и е потребна поддршка веќе неколку години).

Обидите да се поправат верзиите на пакетите само во дистрибуцијата доведуваат до зголемување на застарените верзии во складиштето што не е ажурирано со години. Нарушувањето на одржувањето за еден пакет негативно влијае на многу други пакувања и создава уште повеќе проблеми.

Понатаму, лвкрстени зависности доведуваат до фактот дека многу библиотеки на Node.js стануваат невозможни за деинсталирање од системот, што, пак, ве спречува да деинсталирате други програми Node.js.

За да се реши ова, проектот Fedora неодамна одобри план за запирање на стандардното формирање на одделни пакети со библиотеки што се користат во проектите базирани на Node.js.

Тој одлучи, почнувајќи од Федора 34, да обезбеди само основни пакети за Node.js со толкувач, заглавија, примарни библиотеки, бинарни и основни алатки за управување со пакети (НПМ, предиво).

Во апликациите за складиште на Fedora кои користат Node.js, дозволено е вградување на сите постоечки зависности во пакет, без да се делат и раздвојуваат библиотеките што се користат во посебни пакети.

Вметнувањето библиотеки ќе се ослободи од малиот неред на пакетите, ќе го поедностави одржувањето на пакетот (претходно одржувачот поминуваше повеќе време во прегледување и тестирање на стотици пакети со библиотеки отколку во главниот пакет со програмата), заштедувајќи ја инфраструктурата од конфликти библиотеки и решавање на проблеми со поврзување со библиотечни верзии (одржувачите ќе вклучуваат тестирани и тестирани од производството верзии во пакетот).

Лошата страна на интеграцијата ќе биде компликација на процесот на донесување корекции до ранливоста во библиотеките, што ќе бара координирана работа на одржувачите на сите пакети кои ја вклучуваат ранливата библиотека. Постои опасност пакетот да заборави да ажурира ранлива вградена библиотека и пакетот да остане незабележан.

Програмерите на Debian дискутира и за префрлување на сличен модел на интеграција на зависност од пакети Покрај Node.js, дискусијата се однесува и на создавање пакети за платформата Кубернетес и проекти на PHP и Go јазиците, за кои постои тенденција да се поделат на мали зависности. Се уште не е донесена одлука, но се надеваме дека со текот на времето проблемот само ќе се влоши и порано или подоцна проектот ќе биде принуден да стори нешто.

Како пример за проблемите што ги имаат одржувачите на пакети е наведен веб-интерфејсот gsa (Greenbone Security Assistant) за безбедносниот скенер gvm (Greenbone Vulnerability Management).

Испратената верзија на gsa од Debian се покажа како некомпатибилна со поновите верзии на gvm, но не беше можно да се ажурира gsa во тековната верзија бидејќи содржи значителни промени и користи npm за преземање на потребните библиотеки Node.js.

Бараните библиотеки се премногу и бараат создавање нови пакети во Debian за некој да ги одржува, бидејќи правилата на Debian забрануваат вчитување надворешни компоненти за време на процесот на градење.

Fuente: https://lwn.net/


Содржината на статијата се придржува до нашите принципи на уредничка етика. За да пријавите грешка, кликнете овде.

Коментар, оставете го вашиот

Оставете го вашиот коментар

Вашата е-маил адреса нема да бидат објавени. Задолжителни полиња се означени со *

*

*

  1. Одговорен за податоците: Мигел Анхел Гатон
  2. Цел на податоците: Контролирајте СПАМ, управување со коментари.
  3. Легитимација: Ваша согласност
  4. Комуникација на податоците: Податоците нема да бидат соопштени на трети лица освен со законска обврска.
  5. Складирање на податоци: База на податоци хостирани од Occentus Networks (ЕУ)
  6. Права: Во секое време можете да ги ограничите, вратите и избришете вашите информации.

  1.   Qtkk dijo

    Оваа фрагментација на рамки и библиотеки во ECMAscript излезе од контрола.
    Добра статија.