דביאן ופדורה מנסים לטפל בבעיית התלות

הפצות לינוקס מתמודדות עם בעיית התלות הגוברת מהפרויקטים, אם כי מספר התלות בקוד פייתון, פרל ורובי נשמר בגבולות סבירים, פרויקטים של JavaScript מתרגלים חלוקה לספריות קטנות מאוד, ולעתים קרובות מבצעים פונקציה פשוטה.

במאגר NPM כבר יש למעלה ממיליון חבילות ויישומים אופייניים קישור למאות תלות, אשר בתורם יש תלות משלהם, מה שמקשה על תחזוקה והפצה של חבילות מסורתיות עם יישומי JavaScript בהפצות לינוקס.

בשל השזירה ההדוקה של תלות בספריית JavaScript, עדכון כל חבילה בספריות כאלה בהפצה זה יכול לשבור חבילות אחרות.

כריכות גרסאות מחמירות את הבעיה: ספריה אחת עשויה לדרוש גרסה אחת של תלות כדי לפעול יציבה, ואחרת עשויה לדרוש גרסה אחרת.

פרויקטים רבים דורשים את הגירסאות העדכניות ביותר של ספריות, שלא תמיד עומדים בדרישות היציבות של ההפצה (פיתוח רציף נהוג במערכת האקולוגית Node.js תוך שימוש בגרסאות העדכניות ביותר של המסגרות, וההפצה זקוקה לתמיכה במשך מספר שנים).

ניסיונות לתקן גרסאות חבילה בהפצה בלבד להוביל לעלייה בגרסאות המיושנות במאגר שלא עודכן במשך שנים. שיבוש תחזוקה לחבילה אחת משפיע לרעה על חבילות רבות אחרות ויוצר עוד יותר בעיות.

יתר על כן, lתלות צולבת להוביל לכך שספריות רבות של אי אפשר להסיר את ההתקנה של Node.js מהמערכתאשר בתורו מונע ממך להסיר את ההתקנה של תוכניות Node.js אחרות.

כדי לטפל בכך, פרויקט פדורה אישר לאחרונה תוכנית להפסקת היווצרות ברירת המחדל של חבילות נפרדות עם ספריות המשמשות בפרויקטים מבוססי Node.js.

הוא החליט, החל מפדורה 34, לספק רק חבילות בסיס ל- Node.js עם מתורגמן, כותרות, ספריות ראשוניות, בינאריות וכלים בסיסיים לניהול חבילות (NPM, חוט).

ביישומי מאגר פדורה המשתמשים ב- Node.js, מותר להטמיע את כל התלות הקיימת בחבילה, מבלי לחלק ולהפריד בין הספריות המשמשות בחבילות נפרדות.

הטמעת ספריות תיפטר מעומס חבילות קטן, תפשט את תחזוקת החבילה (בעבר, המנהל הקדיש זמן רב יותר לבדיקה ולבדיקה של מאות חבילות עם ספריות מאשר בחבילה הראשית עם התוכנית), לחסוך תשתית מעימותים של ספריות ופתרון בעיות בקישור לגרסאות הספריה (התחזוקה תכלול בחבילה גרסאות נבדקות ונבדקות ייצור).

החיסרון של האינטגרציה יהיה הסיבוך של תהליך הבאת התיקונים לפגיעות בספריות, מה שידרוש עבודה מתואמת של התחזוקה של כל החבילות הכוללות את הספרייה הפגיעה. קיימת סכנה שחבילה תשכח לעדכן ספרייה מובנית פגיעה והחבילה תיעלם מעין.

המפתחים של דביאן דנה גם במעבר למודל דומה של שילוב תלות בחבילה. בנוסף ל- Node.js, הדיון נוגע ביצירת חבילות לפלטפורמת Kubernetes ופרויקטים בשפות PHP ו- Go, אשר לגביהן יש נטייה להתחלק לתלות קטנה. עדיין לא התקבלה החלטה, אך יש לקוות שלאורך זמן הבעיה רק ​​תחמיר ובמוקדם או במאוחר הפרויקט ייאלץ לעשות משהו.

ממשק האינטרנט gsa (Greenbone Security Assistant) עבור סורק האבטחה gvm (Greenbone Vulnerability Management) מובא כדוגמה לבעיות שיש לתחזוקי החבילות.

הגרסה המועברת באמצעות Debian של gsa התבררה כלא תואמת לגרסאות חדשות יותר של gvm, אך לא ניתן היה לעדכן את gsa לגירסה הנוכחית מכיוון שהיא מכילה שינויים משמעותיים ומשתמשת ב- npm להורדת הספריות הנחוצות של Node.js.

הספריות המבוקשות רבות מדי ודורשות יצירת חבילות חדשות בדביאן כדי שמישהו יוכל לתחזק אותן, מכיוון שכללי דביאן אוסרים על טעינת רכיבים חיצוניים במהלך תהליך הבנייה.

מקור: https://lwn.net/


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.

  1.   qtkk דיג'ו

    פיצול זה של מסגרות וספריות ב- ECMAscript יצא משליטה.
    מאמר טוב