תהייה לגבי הפצת לינוקס מומלצת

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

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

אלו המעוניינים להשתמש ולקבל את הפונקציונאליות הכי חדשה, "מתכבדים" להשתמש בהפצות שאקרא להן "קצרות מועד". מצד אחד מקבלים את המוצר בחינם עם כל החבילות הכי חדשות, ומצד שני המוצר "מת" תוך חצי שנה-שנה, והברירה היחידה שנשאר למשתמש המתוחכם היא לשדרג לגירסה חדשה (ולהתפלל שתהליך השדרוג יצליח). לו אותו משתמש מתוחכם "יפספס" גירסה, הרי שסיכוייו של השדרוג לא ממש גדולים להצליח אלא חמור מכך – לא בטוח שהשדרוג האוטומטי בכלל יעבוד עם ההפצה ה"ישנה". כך קורה עם Fedora, עם Open Suse ועם Ubuntu (אם כי באחרון, לפי השמועות, השדרוג עובד בד"כ לא רע).

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

אקח דוגמא: נניח שיצאה גירסת X חדשה. אם אני משתמש בהפצה כמו CENTOS או Red Hat Enterprise Linux או SLES/SLED, אצטרך לחכות לגירסה המסחרית הבאה שתצא עוד שנה או שנתיים כדי להשתמש באותו X, או שאצטרך "להפשיל שרוולים" ולהתחיל לקמפל את האפליקציה. יכול להיות בהחלט שהאפליקציה תימצא בתצורת חבילה נורמלית בהפצה ה"קיצרת מועד" כמו Fedora, אולם גם אז אצטרך להיאבק ב-1001 חבילות נוספות בכדי לקמפל אותה בתצורה הכי מתאימה להפצה שלי. יש כמובן מקרים שמספיק שאקח את ה-SRPM ואקמפל אותו מחדש, אולם לא חסרים מקרים בהם נסיון כזה יכשל ואז יהיה צורך בהתקנה של תלויות (שאינני צריך אותם בכל הזמן) ושינויי קונפיגורציות שונות.

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

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

בכדי להבהיר יותר את הנקודה, ניקח את המתחרים הגדולים, את מיקרוסופט ואת XP כדוגמא: מיקרוסופט מכרה ותמכה ב-XP כמערכת שולחנית ולמפתחים. כשמיקרוסופט שיחררה תוכנה חדשה או גירסה חדשה, מטבע הדברים היא רצה על XP, כך קרה שמיקרוסופט לדוגמא שחררה את גירסאות הדפדפן שלה: 5, 5.5, 6, 7 ו-8 בטא – על XP. כנ"ל לגבי DirectX, דרייברים וכו', כי זו היתה המערכת היחידה שהם יחדו עבור המשתמשים והמפתחים.ב-Red Hat לשם השוואה, אם תרצה גירסת KDE חדשה, תיאלץ לקמפל או למצוא מקור שיכין זאת עבורך אם בכלל, והחברה פשוט לא תשחרר את הגירסה החדשה של KDE עבור ההפצה היציבה. כך גם קורה ב-SUSE, וכמדומני שגם ב-UBUNTU ואחרים: משחררים חבילות לגירסה האחרונה, ואילו לגירסה היציבה לא ממש משחררים משהו אלא אם מישהו מתנדב להכין חבילות ולארח אותם.

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

תודה,
חץ

Comments

comments

14 תגובות בנושא “תהייה לגבי הפצת לינוקס מומלצת

  1. ל-UBUNTU יש שני סוגי הפצות:

    רגילה, תמיכה במשך 18 חודש
    LTS, תמיכה במשך 3 שנים לתחנות עבודה ו-5 שנים לשרתים

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

    האם זה עונה על הדרישות שלך?

    גרף שחרור ומחזור חיים של UBUNTU

    — אריק

  2. אריק,
    מה שאובונטו מציעים (ככה זה נראה) זה בדיוק מה ש-רד-האט מציעים: אתה מקבל הפצה שנתמכת ל-3-5 שנים, אבל אין שום התחייבות שגירסאות חדשות של אותן חבילות שנותנים לך, יוכנו עבור המשתמשים באותה הפצה ספציפית – להורדה, וזה בדיוק העניין שבגינו כתבתי את הפוסט. אני לא רוצה רק תמיכה בחבילות הקיימות שכוללות גירסאות חדשות עם תיקוני באגים, אלא גם גירסאות חדשות של אותן תוכנות, לדוגמא: MySQL 5.1 ואני גם מצפה שישחררו חבילות ל-MySQL 5.2 ו-5.3 (אם נניח תצא גירסה כזו לדוגמא).

  3. להפצת דביאן על גירסאותיה, יש אתרים שכוללים backports, כלומר גירסאות חדשות של חבילות, שהועלו לגירסת הבדיקה (sid), אבל קומפלו גם כדי שירוצו תחת הגירסא היציבה הנוכחית (etch).
    כך למשל התקנתי במחשבי (שרץ תחת דביאן Etch) גירסא 22.1.1 של GNU Emacs, למרות שהגירסא שבאה עם Etch היא גירסא 21.4.

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

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

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

  5. נראה לי שכאן אתה מבקש דבר והיפוכו.

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

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

  6. תראה. מה שאני מדבר עליו, נקרא לו PLUS PACK.
    בוא ניקח לרגע את KDE וניקח הפצה מסחרית כמו RHEL.

    כשאני מתקין את גירסה 5 לדוגמא (או 5.1, 5.2) אני אקבל את לאחר ההתקנה, ב-GUI, את האפשרות להתקין את KDE 4 לאחר שהחבילות הוכנו ע"י המפיץ (REDHAT), כך שבעצם אם אני מנוי על PLUS PACK, אני אצטרך פשוט לבחור מתוך אותו ערוץ PLUS PACK את KDE-4 והוא יתקין אותו ואם צריך – חבילות תואמות אחורה. אותן חבילות ב-PLUS PACK במסגרת המנוי – יהיו גם תחת התמיכה (כולל עדכונים).

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

  7. נתייחס לפילוח השוק עבור גירסאות מעודכנות של חבילות.

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

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

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

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

    מחר יוצא KDE 4.1 שנותן יתרונות מסויימים על KDE 3.5. מחרתיים יוצא Open Office חדש, דרייברים חדשים ויותר מהירים של אינטל ל-X, או PulseAudio לתמיכת MIX של מספר אפליקציות המנגנות ביחד מוסיקה. גירסת GCC שעלתה בדרגה וכו'.

    אני לאו דווקא מדבר על לרוץ לקחת את החדש ביותר עם הצעצועים החדשים ביותר, אלא אני מדבר על עדכוני גירסת תוכנות לאחר מס' חודשים אחרי שהאפליקציה יציבה (נאמר 3-5 חודשים). את זה המפיץ לא נותן והוא מאפשר למשתמש 2 אפשרויות: ישן ויציב (בלי הפונקציות החדשות) או חדש ולא יציב. אין משהו באמצע: יחסית חדש ודי יציב.

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

  10. אתה בטוח שזה מה שאתה רוצה?

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

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

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

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

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

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

    (אגב, לחיצת tab משדה האתר מקפיצה אותי פתאום לראש הדף ולא לשדה הטקסט הזה)

  11. השוואה למתחרים:

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

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

    RHEL ו־SLES תומכים לאורך זמן רב יותר. לשם כך הם מוותרים על חלק מהחבילות. גם ה־LTS של אובונטו חל רק על החבילות המאגר הראשי ולא על ה־universe (שחלקו הגדול נוצר בצורה די אוטומטית מחבילות של דביאן).

    פדורה ו־OpenSUSE כוללות יותר חבילות, ונתמכות לפרק זמן קצר יותר. דביאן כולל עוד יותר חבילות משתיהן ונתמך לפרק זמן ארוך יותר, אך עדיין קצר בהרבה מזה של RHEL או SLES – זה לא מעשי.

    ה־backports הוא מנגנון די וולונטרי (וגם לא מקבל עדכוני אבטחה). הוא שימושי בעיקר למי ש"מבינים מה הם עושים).

    3-5 חודשים לבדיקת כמות כזו גדולה של קוד זה רעיון נחמד, אך לא מעשי אם אין לך הרבה עובדים או משתמשים.

  12. אני חושב שלינוקס מינט מתכוונים להתחיל לעשות את מה שאתה מחפש. ההודעה לא לגמרי ברורה לי, תסתכל בסעיף 12 בעמוד הזה ואולי תבין יותר טוב ממני:
    http://www.linuxmint.com/rel_elyssa.php

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

סגור לתגובות.