Дебиан, Федора нар хамаарлын асуудлыг шийдвэрлэхийг оролдож байна

Линуксийн тархац нь улам бүр хамааралтай болох асуудалтай тулгардаг төслүүдийн Python, Perl, Ruby кодын хамаарлын тоог хадгална Боломжийн хүрээнд JavaScript төслүүд нь маш жижиг номын сангуудад хуваагддаг бөгөөд ихэвчлэн энгийн функцийг гүйцэтгэдэг.

NPM агуулах нь сая гаруй багцтай болжээ ердийн програмууд хэдэн зуун хамааралтай холбоосбөгөөд энэ нь эргээд өөрсдийн хамааралтай байдгаас Linux дистрибьютер дээр JavaScript програмтай уламжлалт багцыг хадгалах, түгээхэд бэрхшээлтэй байдаг.

JavaScript номын сангийн хамаарлууд хоорондоо нягт уялдаатай байдаг тул тарааж буй эдгээр сангуудтай багцыг шинэчлэх хэрэгтэй энэ нь бусад багцыг эвдэж болно.

Хувилбарыг холбох нь асуудлыг улам даамжруулж байна: Нэг номын сан нь хараат байдлын нэг хувилбарыг тогтвортой ажиллуулахыг шаардаж болох бөгөөд нөгөөг нь өөр хувилбарыг шаардаж магадгүй юм.

Олон төслүүд ажиллахын тулд номын сангийн хамгийн сүүлийн үеийн хувилбаруудыг шаарддаг. тархалтын тогтвортой байдлын шаардлагыг тэр бүр хангаж чаддаггүй (тасралтгүй хөгжүүлэлтийг Node.js экосистемд хамгийн сүүлийн үеийн хувилбаруудыг ашиглан хэрэгжүүлдэг бөгөөд түгээлт нь хэдэн жилийн турш дэмжлэг шаарддаг).

Багцын хувилбаруудыг зөвхөн түгээлтэд засах оролдлогууд хуучирсан хувилбаруудыг нэмэгдүүлэхэд хүргэдэг олон жилийн турш шинэчлэгдээгүй агуулахад. Нэг багцын засвар үйлчилгээ тасалдаж байгаа нь бусад олон багцад сөргөөр нөлөөлж, үүнээс ч илүү асуудал үүсгэдэг.

Цаашилбал, лхөндлөн хамаарал олон номын сангууд байдаг Node.js-ийг системээс устгах боломжгүй болдогэнэ нь эргээд бусад Node.js програмыг устгахаас сэргийлдэг.

Үүнийг шийдвэрлэхийн тулд Fedora төслөөс саяхан Node.js-д суурилсан төслүүдэд ашигласан номын сангуудтай салангид багцуудын анхдагч хэлбэрийг зогсоох төлөвлөгөөг батлав.

Тэрээр Fedora 34-оос эхлэн зөвхөн Node.js програмд ​​орчуулагч, толгой, анхан шатны сангууд, хоёртын файлууд, багцын менежментийн үндсэн хэрэгслүүд (NPM, ээрмэл утас) зэрэг үндсэн багцуудыг нийлүүлэхээр шийдсэн юм.

Node.js ашигладаг Fedora репозитор програмуудад одоо байгаа бүх хамаарлыг багцад оруулахыг зөвшөөрч, тусдаа багцад ашигладаг сангуудыг хувааж, тусгаарлахгүйгээр хийх боломжтой.

Номын сангуудыг оруулах нь багцын эмх замбараагүй байдлаас ангижрах, багцын засвар үйлчилгээг хялбарчлах (өмнө нь засварлагч програмтай хамт үндсэн багцаас илүү олон зуун багцыг үзэж, туршиж үзэхэд илүү их цаг зарцуулдаг байсан), дэд бүтцийг зөрчилдөөнөөс аврах болно. номын сангийн хувилбарууд болон номын сангийн хувилбаруудтай холбосон асуудлуудыг шийдвэрлэх (засварлагчид багцад туршсан болон үйлдвэрлэлийн туршилтын хувилбаруудыг оруулах болно).

Интеграцийн сул тал нь залруулга авчрах үйл явцын хүндрэл байх болно номын сан дахь эмзэг байдлын талаар, үүнд эмзэг номын санг багтаасан бүх багцын засварлагчдын уялдаа холбоотой ажил шаардагдана. Багц нь эмзэг суулгагдсан номын санг шинэчлэхийг мартах бөгөөд багцыг анзаарахгүй орхих аюултай.

Хөгжүүлэгчид Debian мөн ижил төстэй багц хамаарлын интеграцийн загварт шилжих талаар ярилцаж байна. Node.js-ээс гадна Кубернетес платформ болон PHP, Go хэл дээрх төслүүдийн багцыг бий болгох асуудлыг хөндөж байгаа бөгөөд үүнд жижиг хамааралд хуваагдах хандлагатай байна. Одоохондоо ямар ч шийдвэр гаргаагүй байгаа боловч цаг хугацаа өнгөрөх тусам асуудал улам бүр дордож, эрт орой хэзээ нэгэн цагт төсөл ямар нэгэн зүйл хийхээс өөр аргагүй болно гэж найдаж байна.

Gvm (Greenbone Vulnerability Management) аюулгүй байдлын сканнерд зориулсан gsa (Greenbone Security Assistant) вэб интерфэйсийг багц хамгаалагчдад тулгардаг бэрхшээлүүдийн жишээ болгон дурдав.

GSA-ийн Debian-аас илгээсэн хувилбар нь gvm-ийн шинэ хувилбаруудтай тохирохгүй болсон боловч мэдэгдэхүйц өөрчлөлт орсон тул шаардлагатай Node.js сангуудыг татаж авахад npm ашигладаг тул gsa-г одоогийн хувилбар руу шинэчлэх боломжгүй байв.

Хүссэн сангууд нь хэт олон тул Debian-ийн дүрмүүд нь бүтээх явцад гадны бүрэлдэхүүн хэсгүүдийг ачаалахыг хориглодог тул тэдгээрийг хадгалахын тулд Debian-д шинэ багц үүсгэхийг шаарддаг.

Эх сурвалж: https://lwn.net/


Нийтлэлийн агуулга нь бидний зарчмуудыг баримталдаг редакцийн ёс зүй. Алдааны талаар мэдээлэхийн тулд товшино уу энд байна.

Сэтгэгдэл бичих, үлдээх

Сэтгэгдэлээ үлдээгээрэй

Таны и-мэйл хаяг хэвлэгдсэн байх болно. Шаардлагатай талбарууд нь тэмдэглэгдсэн байна *

*

*

  1. Мэдээллийг хариуцах: Мигель Анхель Гатан
  2. Мэдээллийн зорилго: СПАМ-ыг хянах, сэтгэгдлийн менежмент.
  3. Хууль ёсны байдал: Таны зөвшөөрөл
  4. Мэдээллийн харилцаа холбоо: Хуулийн үүргээс бусад тохиолдолд мэдээллийг гуравдагч этгээдэд дамжуулахгүй.
  5. Өгөгдөл хадгалах: Occentus Networks (ЕХ) -с зохион байгуулсан мэдээллийн сан
  6. Эрх: Та хүссэн үедээ мэдээллээ хязгаарлаж, сэргээж, устгаж болно.

  1.   Qtkk гэж хэлэв

    ECMAscript дээрх хүрээ, номын сангуудын энэ хэсэгчилсэн хувилбар гараас гарлаа.
    Буэн артикуло.