חבילות התקנה – מידע כללי

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

שימו לב שגם אם אתם לא עובדים עם Arch Linux, עדיין המידע כאן מסביר איך חבילות עובדות.

בלינוקס (ובעוד מערכות, לא רק מבוססות מערכת הפעלה, כדוגמת ruby gem או fpmake), חבילה היא אוסף של מספר נושאים:

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

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

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

עוד פרט חשוב בחבילות תוכנה של מערכות לינוקס (לפחות החבילות שאני מכיר, RPM, deb וכמובן pacman), אפשר להגיד כי חבילה מסויימת מספקת שם כולל של חבילות (סעיף 4).

נגיד למשל, שאני רוצה ליצור חבילה שכל התפקיד שלה היא לגרום לFirefox להיות דפדפן ברירת המחדל אצלי בלינוקס, אבל אני אצור עוד אחד להגדיר כי Arora הוא כזה, וכך גם Midori, אופרה, Chromium וכו'… כולם מספקים בעצם את אותה חבילה אשר מתנגשת עם חבילה אחרת.

הבעיה היא שאי אפשר לתת ל2 חבילות את אותו השם, ולכן יש להן שמות שונים, אבל עדיין אנחנו צריכים להגיד למנהל החבילות כי מדובר בהתנגשות, אז אנחנו אומרים לו שהחבילה מספקת בעצם חבילה בשם default-browser, כך שלא משנה כמה חבילות (מטא במקרה הזה, הן לא מתקינות כלום, רק משנות הגדרות, וגוררות תלויות שעושות את ההתקנה עצמה -> קרי חבילת Firefox, Arora וכו') לכמות הדפדפנים ברשותנו, עדיין כולם יגידו שהם מספקים חבילה בשם default-browser ובכמה ממנהלי החבילות זה לא מספיק, ואנחנו מגדירים במפורש שהיא מתנגשת עם defaut-browser.

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

עוד תכונה מעניינית שיש בdeb ובpacman היא האפשרות להמליץ על חבילות. נגיד והתקנת חבילה בשם Firefox ויש בוודאות במאגרים חבילה בשם Firebug. אני יכול להמליץ לך כחלק מהמידע רשימה של "תלויות" אשר הן לא חובה להתקנה אבל מומלצות על ידי להתקנה, כלומר אני אמליץ לך להתקין גם Firebug.

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

4 מחשבות על “חבילות התקנה – מידע כללי

  1. Tzafrir Cohen

    תיקון סמנטי קטן: מערכת ניהול חבילות אינה מערכת *התקנת* תוכנה. היא מטפלת גם בעדכון, הסרה ולפעמים עוד דברים (הגדרות?).

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

    לדוגמה: אם חבילת default-browser שלך הייתה צריכה לערוך קובץ תצורה כללי, אתה באמת יכול לחזות מה יקרה כשהיא תצטרך לבטל את השינוי שלה?

  2. ik_5 מאת

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

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

כתיבת תגובה

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

הלוגו של WordPress.com

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

תמונת Twitter

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

תמונת Facebook

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

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

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

מתחבר ל-%s