دبیان و فدورا در تلاشند تا مشکل وابستگی را برطرف کنند

توزیع های لینوکس با مشکل افزایش وابستگی ها روبرو هستند از این پروژه ها ، گرچه تعداد وابستگی های کد پایتون ، پرل و روبی حفظ می شود در محدودیت های معقول ، پروژه های جاوا اسکریپت تقسیم به کتابخانه های بسیار کوچک را انجام می دهند ، که اغلب یک عملکرد ساده را انجام می دهند.

مخزن NPM در حال حاضر بیش از یک میلیون بسته دارد و برنامه های معمولی پیوند به صدها وابستگی، که به نوبه خود وابستگی های خاص خود را دارند ، نگهداری و توزیع بسته های سنتی با برنامه های JavaScript در توزیع های لینوکس را دشوار می کند.

به دلیل درهم تنیدگی شدید وابستگی های کتابخانه جاوا اسکریپت ، هر بسته را با چنین کتابخانه هایی در یک توزیع به روز کنید این می تواند بسته های دیگر را بشکند.

اتصال نسخه ها این مسئله را بیشتر می کند: برای یک کتابخانه ممکن است برای پایدار شدن به یک نسخه از وابستگی نیاز داشته باشد و دیگری ممکن است به نسخه دیگری نیاز داشته باشد.

بسیاری از پروژه ها برای کار کردن به آخرین نسخه های کتابخانه نیاز دارند ، که همیشه الزامات پایداری توزیع را برآورده نمی کنند (توسعه مداوم در اکوسیستم Node.js با استفاده از آخرین نسخه های چارچوب انجام می شود و توزیع برای چندین سال به پشتیبانی نیاز دارد).

تلاش برای اصلاح نسخه های بسته فقط در توزیع منجر به افزایش نسخه های منسوخ شود در مخزنی که سالها به روز نشده است. برهم زدن تعمیر و نگهداری برای یک بسته ، بر بسیاری از بسته های دیگر تأثیر منفی می گذارد و مشکلات بیشتری را ایجاد می کند.

بعلاوه ، لوابستگی های متقابل منجر به این واقعیت می شود که بسیاری از کتابخانه های حذف Node.js از سیستم غیرممکن استکه به نوبه خود مانع از نصب سایر برنامه های Node.js می شود.

برای حل این مسئله ، اخیراً پروژه فدورا طرحی را برای جلوگیری از تشکیل پیش فرض بسته های جداگانه با کتابخانه های مورد استفاده در پروژه های مبتنی بر Node.js تصویب کرده است.

او تصمیم گرفت ، با شروع فدورا 34 ، فقط بسته های پایه Node.js را با یک مترجم ، سرصفحه ها ، کتابخانه های اصلی ، باینری ها و ابزارهای اصلی مدیریت بسته (NPM ، نخ) تهیه کند.

در برنامه های مخزن Fedora که از Node.js استفاده می کنند ، مجاز است که همه وابستگی های موجود را در یک بسته جاسازی کند ، بدون اینکه کتابخانه های مورد استفاده در بسته های جداگانه را از هم جدا و جدا کند.

جاسازی کتابخانه ها از شر درهم و برهمی بسته خلاص می شود ، تعمیر و نگهداری بسته را ساده می کند (پیش از این ، نگهدارنده زمان بیشتری را صرف بررسی و آزمایش صدها بسته با کتابخانه ها نسبت به بسته اصلی برنامه) ، زیرساخت ها را از درگیری نجات می دهد از کتابخانه ها و حل مشکلات مربوط به پیوند به نسخه های کتابخانه (نگهدارندگان نسخه های آزمایش شده و تولید شده را در بسته قرار می دهند).

نکات منفی ادغام ، پیچیدگی روند ایجاد اصلاحات خواهد بود به آسیب پذیری در کتابخانه ها ، که به یک کار هماهنگ نگهدارنده همه بسته هایی که شامل کتابخانه آسیب پذیر هستند ، نیاز دارد. این خطر وجود دارد که بسته ای بروزرسانی کتابخانه داخلی آسیب پذیر را فراموش کند و بسته مورد توجه قرار نگیرد.

توسعه دهندگان دبیان همچنین در حال بحث درباره تغییر مدل مشابه وابستگی بسته است. علاوه بر Node.js ، بحث در مورد ایجاد بسته هایی برای پلتفرم و پروژه های Kubernetes به زبانهای PHP و Go است که تمایل به تقسیم آنها به وابستگی های کوچک وجود دارد. هنوز تصمیمی اتخاذ نشده است ، اما امید است که با گذشت زمان مشکل فقط بدتر شود و دیر یا زود پروژه مجبور به انجام کاری شود.

رابط وب gsa (Greenbone Security Assistant) برای اسکنر امنیتی gvm (Greenbone Vulnerability Management) به عنوان نمونه ای از مشکلاتی که نگهدارندگان بسته دارند ذکر شده است.

نسخه حمل شده توسط دبیان gsa با نسخه های جدید gvm سازگار نبود ، اما به روزرسانی gsa به نسخه فعلی امکان پذیر نبود زیرا حاوی تغییرات قابل توجهی است و از npm برای بارگیری کتابخانه های لازم Node.js استفاده می کند.

کتابخانه های درخواستی بسیار زیاد است و نیاز به ایجاد بسته های جدید در دبیان است تا کسی بتواند آنها را نگهداری کند ، زیرا قوانین دبیان بارگیری اجزای خارجی را در طی مراحل ساخت منع نمی کند.

Fuente: https://lwn.net/


محتوای مقاله به اصول ما پیوست اخلاق تحریریه. برای گزارش یک خطا کلیک کنید اینجا.

نظر بدهید ، نظر خود را بگذارید

نظر خود را بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند با *

*

*

  1. مسئول داده ها: میگل آنخل گاتون
  2. هدف از داده ها: کنترل هرزنامه ، مدیریت نظرات.
  3. مشروعیت: رضایت شما
  4. ارتباط داده ها: داده ها به اشخاص ثالث منتقل نمی شوند مگر با تعهد قانونی.
  5. ذخیره سازی داده ها: پایگاه داده به میزبانی شبکه های Occentus (EU)
  6. حقوق: در هر زمان می توانید اطلاعات خود را محدود ، بازیابی و حذف کنید.

  1.   Qtkk dijo

    این تقسیم بندی چارچوب ها و کتابخانه ها در ECMAscript از کنترل خارج شده است.
    مقاله خوب