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

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

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

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

הוספת חבילות

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

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

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

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

העלאה ישירה

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

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

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

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

לדוגמה, כדי להעלות את החבילה my-package.rpm למאגר Yum‏ my-repo במיקום u-france-east1, מריצים את הפקודה:

gcloud artifacts yum upload my-repo \
    --location=u-france-east1 \
    --source=my-package.rpm

Cloud Storage

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

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

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

    לדוגמה, הפקודה הבאה מעלה את החבילה package.rpm ואת כל החבילות בספרייה directory מהקטגוריה my-bucket למאגר Yum‏ my-repo במיקום u-france-east1:

    gcloud artifacts yum import my-repo \
      --location=u-france-east1 \
      --gcs-source=gs://my-bucket/path/to/package.rpm,gs://my-bucket/directory*
    

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

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

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

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

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

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

המסוף

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

    פתיחת הדף 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 הוא המיקום האזורי של המאגר. משתמשים בדגל הזה כדי להציג מאגרי מידע במיקום ספציפי. אם הגדרתם מיקום ברירת מחדל, אתם יכולים להשמיט את הדגל הזה כדי להשתמש בברירת המחדל.

התקנת חבילות

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

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

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

sudo yum --enablerepo=REPOSITORY install PACKAGE

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

  • ‫PACKAGE הוא שם החבילה
  • ‫REPOSITORY הוא שם המאגר שהוגדר בקובץ .repo.

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

sudo yum --enablerepo=my-repo install my-package

מחיקת חבילות

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

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

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

המסוף

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

    פתיחת הדף Repositories

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

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

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

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

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

gcloud

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

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

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

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

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

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

המסוף

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

    פתיחת הדף 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 גורם לפקודה לחזור באופן מיידי, בלי להמתין שהפעולה תסתיים.

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

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