הפצת לינוקס מול תוכנה

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

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

אז מה הן הבעיות ? הנה רשימה חלקית:

  • עדכון דחוף מידי של ספריות שזקוקים להם
  • חוסר עדכון של ספריות שזקוקים להם
  • תיקוני באגים של הפצה, השוברים אפליקציה
  • צורך בלשמור גרסאות כלים מסויימת
  • שימוש במספר גרסאות שונות של ספריות לביצוע עבודה (למשל שרת המחזיק מספר אתרים)
  • שוני בין הפצות שונות, קצב ההתקדמות שלהם, ניהול הקבצים בתוכם וכיוב' …
  • שינוי ABI/API בספריות שונות תלוי בגרסאות הספריה.

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

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

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

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

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

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

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

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

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

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

כתיבת תגובה

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

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s