ניהול חבילות Debian

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

לפני שמתחילים

  1. אם מאגר ה-Apt לא קיים, יוצרים מאגר חדש.
  2. מגדירים את המכונות הווירטואליות כך שתהיה להן גישה למאגר.
  3. (אופציונלי) הגדרת ברירות מחדל לפקודות gcloud.
  4. מוודאים ששמות החבילות במטא-נתונים עומדים בתקנים של שמות חבילות Debian.

הוספת חבילות

מצבי מאגר: רגיל

כדי להוסיף חבילות, צריך הרשאות קריאה וכתיבה במאגר.

אתם יכולים להעלות חבילה למאגר באמצעות Google Cloud CLI, או לייבא חבילה שמאוחסנת ב-Cloud Storage. אם אתם יוצרים חבילות באמצעות Cloud Build, ה-build יכול לאחסן את החבילות ב-Cloud Storage כדי שתוכלו לייבא אותן.

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

העלאה ישירה

משתמשים בפקודה gcloud artifacts apt upload כדי להעלות חבילה למאגר Apt:

gcloud artifacts apt upload REPOSITORY \
    --location=LOCATION \
    --source=PACKAGES

מחליפים את הערכים הבאים:

  • ‫REPOSITORY הוא השם של המאגר ב-Artifact Registry.
  • ‫ LOCATION הוא המיקום של המאגר באזור או במספר אזורים. ‫
  • ‫PACKAGES הוא הנתיב לחבילה.

לדוגמה, כדי להעלות את החבילה my-package.deb למאגר Apt‏ my-repo במיקום us-west1, מריצים את הפקודה:

gcloud artifacts apt upload my-repo \
    --location=us-west1 \
    --source=my-package.deb

Cloud Storage

  1. מעלים את החבילות ל-Cloud Storage:
    • העלאת חבילות ישירות לקטגוריה של Cloud Storage
    • ליצור חבילות באמצעות Cloud Build ולאחסן אותן בקטגוריה.
  2. מריצים את הפקודה הבאה:
    gcloud artifacts apt import REPOSITORY \
      --location=LOCATION \
      --gcs-source=PACKAGES
    

    מחליפים את הערכים הבאים:

    • ‫REPOSITORY הוא השם של המאגר ב-Artifact Registry.
    • ‫ LOCATION הוא המיקום של המאגר באזור או במספר אזורים. ‫
    • ‫PACKAGES היא רשימה מופרדת בפסיקים של חבילות ב-Cloud Storage. כדי להעלות את כל החבילות מספרייה, משתמשים בתו כללי לחיפוש של ספרייה (*) או בתו כללי לחיפוש של ספרייה רקורסיבית (**) כדי להעלות את כל החבילות בכל ספריות המשנה.

    לדוגמה, כדי להעלות את החבילה package.deb ואת כל החבילות בספרייה directory מהקטגוריה my-bucket למאגר Apt‏ my-repo במיקום us-west1, מריצים את הפקודה:

    gcloud artifacts apt import my-repo \
      --location=us-west1 \
      --gcs-source=gs://my-bucket/path/to/package.deb,gs://my-bucket/directory*
    

בסיום ההעלאה או הייבוא, אתם יכולים להשתמש במסוףGoogle Cloud או ב-CLI של gcloud כדי לראות את החבילות במאגר ולוודא שהן הועלו בהצלחה.

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

צפייה בחבילות

מצבי מאגר: רגיל, מרוחק (גרסת טרום-השקה)

כדי להציג חבילות, צריך את ההרשאות שכלולות בתפקיד "קריאה ב-Artifact Registry". ב-Artifact Registry לא מוצגת רשימה של קבצים בתוך חבילות.

כדי לראות חבילות וגרסאות של חבילות באמצעות Google Cloud המסוף או gcloud:

המסוף

  1. פותחים את הדף Repositories במסוף Google Cloud .

    פתיחת הדף Repositories

  2. ברשימת המאגרים, לוחצים על המאגר המתאים.

    בדף Packages (חבילות) מופיעה רשימת החבילות במאגר.

  3. לוחצים על חבילה כדי לראות את הגרסאות שלה.

gcloud

כדי להציג את רשימת החבילות במאגר, מריצים את הפקודה הבאה:

gcloud artifacts packages list [--repository=REPOSITORY] [--location=LOCATION]

מחליפים את מה שכתוב בשדות הבאים:

  • ‫REPOSITORY הוא שם המאגר. אם הגדרתם מאגר ברירת מחדל, אתם יכולים להשמיט את הדגל הזה כדי להשתמש בברירת המחדל.
  • ‫ LOCATION הוא המיקום האזורי או המיקום במספר אזורים של המאגר. ‫ אם הגדרתם מיקום ברירת מחדל, תוכלו להשמיט את הדגל הזה כדי להשתמש בברירת המחדל.

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

gcloud artifacts versions list --package=PACKAGE \
    [--repository=REPOSITORY] [--location=LOCATION]

מחליפים את מה שכתוב בשדות הבאים:

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

התקנת חבילות

מצבי מאגר: רגיל, מרוחק (גרסת טרום-השקה (Preview))

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

כדי להתקין חבילה במאגר:

  1. מעדכנים את הרשימה של החבילות הזמינות:

    sudo apt update
    
  2. מתקינים את החבילה ומציינים את שם המאגר שהוגדר ב-Apt.

    sudo apt install PACKAGE/REPOSITORY
    

    מחליפים את הערכים הבאים:

    • ‫PACKAGE הוא שם החבילה.
    • ‫REPOSITORY הוא השם של מאגר Artifact Registry. במאגרים מרוחקים, משתמשים בשם של המאגר הסטנדרטי במעלה הזרם.

    לדוגמה, כדי להתקין את החבילה my-package מהמאגר my-repo, מריצים את הפקודה:

    sudo apt install my-package -t my-repo
    

מחיקת חבילות

מצבי מאגר: רגיל

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

כדי למחוק חבילה:

המסוף

  1. פותחים את הדף Repositories במסוף Google Cloud .

    פתיחת הדף Repositories

  2. ברשימת המאגרים, לוחצים על המאגר המתאים.

    בדף Packages (חבילות) מופיעה רשימת החבילות במאגר.

  3. בוחרים את החבילה שרוצים למחוק.

  4. לוחצים על מחיקה.

  5. בתיבת הדו-שיח לאישור, לוחצים על מחיקה.

gcloud

מריצים את הפקודה הבאה:

gcloud artifacts packages delete PACKAGE \
    [--repository=REPOSITORY] [--location=LOCATION] [--async]

מחליפים את מה שכתוב בשדות הבאים:

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

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

כדי למחוק גרסאות של חבילה:

המסוף

  1. פותחים את הדף Repositories במסוף Google Cloud .

    פתיחת הדף Repositories

  2. ברשימת המאגרים, לוחצים על המאגר המתאים.

    בדף Packages (חבילות) מופיעה רשימת החבילות במאגר.

  3. לוחצים על חבילה כדי לראות את הגרסאות שלה.

  4. בוחרים את הגרסאות שרוצים למחוק.

  5. לוחצים על מחיקה.

  6. בתיבת הדו-שיח לאישור, לוחצים על מחיקה.

gcloud

מריצים את הפקודה הבאה:

gcloud artifacts versions delete VERSION \
    --package=PACKAGE \
    [--repository=REPOSITORY] [--location=LOCATION] \
    [--async]

מחליפים את מה שכתוב בשדות הבאים:

  • ‫VERSION הוא שם הגרסה שרוצים למחוק.
  • ‫PACKAGE הוא שם החבילה במאגר.
  • ‫REPOSITORY הוא שם המאגר. אם הגדרתם מאגר ברירת מחדל, אתם יכולים להשמיט את הדגל הזה כדי להשתמש בברירת המחדל.
  • ‫ LOCATION הוא המיקום האזורי או המיקום במספר אזורים של המאגר. ‫ אפשר להשתמש בדגל הזה כדי להציג מאגרי מידע במיקום ספציפי. אם הגדרתם מיקום ברירת מחדל, אתם יכולים להשמיט את הדגל הזה כדי להשתמש בברירת המחדל.

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

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

המאמרים הבאים