logo

מנהל חבילות לינוקס

מבוא

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

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

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

פונקציות של מנהל החבילות

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

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

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

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

ממשקי קצה עבור חבילות הידור (מקומי)

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

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

מערך דינמי ב-java

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

CheckInstall זמין עבור .rpm אוֹ הפצות מבוססות קבצי .deb ו Slackware לינוקס גם כן. ל היברידי מערכות כמו Arch Linux ו מערכות מבוססות מתכונים כמו ג'נטו לינוקס, ניתן לציין תחילה מתכון, אשר לאחר מכן מאשר שחבילה מתאימה למסד נתונים מקומי של חבילות.

אתגרים עם ספריות מבוזרות

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

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

זה ידוע גם בשם 'DLL לעזאזל' ב-Microsoft Windows כאשר מתמודדים עם ספריות מקושרות באופן דינמי. ניהול חבילות טוב הוא חיוני עבור מערכות אלו.

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

תחזוקת תצורה

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

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

דיכוי שדרוג

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

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

לדוגמה:

yum תומך בזה עם exclude=openoffice* תחביר

pacman עם התחביר התעלם=openoffice (בשני המקרים, לדיכוי שדרוג openoffice)

dselect ו-dpkg תומכים בו באופן חלקי על ידי דגל החזק בתוך בחירות החבילה.

לכשרון יש 'לֶאֱסוֹר' ו 'לְהַחזִיק' דגלים.

portage תומך בו על ידי קובץ תצורה, כלומר, package.mask.

APT מרחיב את הדגל, כלומר, לְהַחזִיק ליד המתחם 'הצמדה' שיטה (משתמשים יכולים לרשום את החבילה גם כן).

מאגרים

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

קפיץ סטים

הסרת חבילה מדורגת

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

השוואת פקודות

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

שכיחות של מנהל החבילות

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

מערכות הפעלה ניידות רבות כמו Windows Phone, iOS (דמוי יוניקס) ואנדרואיד (מבוססות לינוקס) תלויות כמעט ב-App Store של הספק שלהן. לפיכך, הם משתמשים במערכת ניהול החבילות שלהם (ייעודית).

השוואה עם המתקינים

לעתים קרובות, מנהל חבילות ידוע בתור an 'מנהל ההתקנה'. זה יכול לגרום לבלבול בקרב מתקינים ומנהלי חבילות. כמה מההבדלים העיקריים מובאים להלן:

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

השוואה עם כלי אוטומציה

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

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

אמנם, שני סוגי הכלים כוללים מספר גורמים נפוצים המוזכרים להלן:

  • המיון הטופולוגי של גרף התלות מיושם בתוך מנהל חבילות לטיפול בתלות בין רכיבים בינאריים רבים.
  • כמו כן, הוא מיושם בתוך מנהל build לטיפול בתלות בין רכיבי מקור רבים.
  • קבצי מייקאפ שונים מספקים את התמיכה שלהם, לא רק בניית קובצי הפעלה.
  • כמו כן, הם תומכים בהתקנת ה-, באמצעות make install.
  • כל מנהלי החבילות תומכים בתרגום קוד מקור (קריא לאדם) לקובצי הפעלה בינאריים ואז מתקינים אותו עבור ההפצה מבוססת המקור כמו Homebrew, Sorcery, Portage וכו'.

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

מנהלי חבילות בסיסיות והפורמטים שלהם

מנהל חבילות אוניברסלי

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

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

מנהל חבילות לינוקס

מערכות קוד פתוח ותוכנה חופשית

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

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

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

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

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

פורמטים של חבילות

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

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

דוגמא:

  1. יאממ תלוי בסל'ד בתור הקצה האחורי. Yum מפתחת את הפונקציונליות האחורית על ידי הוספת היבטים כמו תצורה פשוטה לשמירה על רשת המערכת.
  2. מנהל החבילות הסינפטי נותן GUI על ידי יישום הספרייה של כלי האריזה המתקדם שתלוי ב-dpkg.

חייזר ניתן להגדיר כתוכנה המתרגמת בין פורמטים שונים של חבילות לינוקס. זה תומך בהמרה בין Slackware (.tgz, .tlz, .tbz, .txz) חבילות, חבילות Solaris (.pkg), Stampede (.slp), .deb, .rpm, ו Linux Standard Base (LSB) תואם.

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

מנהלי חבילות ברמת האפליקציה

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

בדרך כלל, הם מתגוררים בעץ ספריות. זה לא מאורגן על ידי מנהל חבילות ברמת המערכת כמו /usr/local/fink אוֹ c:cygwin. אמנם, ייתכן שזה לא התנאי למנהל חבילות שעובד עם ספריות תכנות, מה שגורם לעימות אפשרי מכיוון ששני מנהלי החבילות עלולים לשבור שדרוגים ולבקש 'שֶׁלוֹ' הקובץ.