Skip to content

מאגר ידע: תהליך עדכון עצמי ​

כיצד triggerfish update עובד, מה יכול להשתבש וכיצד לשחזר.

כיצד זה עובד ​

פקודת העדכון מורידה ומתקינה את הגרסה האחרונה מ-GitHub:

  1. בדיקת גרסה. מביאה את תג הגרסה האחרון מ-API של GitHub. אם אתם כבר על הגרסה האחרונה, יוצאת מוקדם:

    Already up to date (v0.4.2)

    בניות פיתוח (VERSION=dev) מדלגות על בדיקת הגרסה ותמיד ממשיכות.

  2. זיהוי פלטפורמה. קובעת את שם נכס הבינארי הנכון בהתבסס על מערכת ההפעלה והארכיטקטורה שלכם (linux-x64, linux-arm64, macos-x64, macos-arm64, windows-x64).

  3. הורדה. מביאה את הבינארי ו-SHA256SUMS.txt מגרסת GitHub.

  4. אימות checksum. מחשבת SHA256 של הבינארי שהורד ומשווה אותו לערך ב-SHA256SUMS.txt. אם ה-checksums אינם תואמים, העדכון מבוטל.

  5. עצירת daemon. עוצרת את ה-daemon הרץ לפני החלפת הבינארי.

  6. החלפת בינארי. ספציפי לפלטפורמה:

    • Linux/macOS: משנה שם בינארי ישן, מעבירה חדש למקום
    • macOS צעד נוסף: מנקה תכונות הסגר עם xattr -cr
    • Windows: משנה שם בינארי ישן ל-.old (Windows אינו מאפשר דריסת קובץ הרצה רץ), ואז מעתיקה את הבינארי החדש לנתיב המקורי
  7. אתחול daemon מחדש. מפעילה את ה-daemon עם הבינארי החדש.

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

הסלמת Sudo ​

אם הבינארי מותקן בספרייה הדורשת גישת root (למשל /usr/local/bin), המעדכן מבקש את הסיסמה שלכם להסלמה עם sudo.

העברות בין מערכות קבצים ​

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

מה יכול להשתבש ​

"Checksum verification exception" ​

הבינארי שהורד אינו תואם ל-hash הצפוי. זה בדרך כלל אומר:

  • ההורדה הושחתה (בעיית רשת)
  • נכסי הגרסה ישנים או הועלו חלקית

תיקון: המתינו מספר דקות ונסו שוב. אם זה נמשך, הורידו את הבינארי ידנית מדף הגרסאות.

"Asset not found in SHA256SUMS.txt" ​

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

תיקון: דווחו על GitHub issue.

"Binary replacement failed" ​

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

  • הרשאות קובץ (הבינארי בבעלות root אבל אתם רצים כמשתמש רגיל)
  • הקובץ נעול (Windows: תהליך אחר פתח את הבינארי)
  • מערכת קבצים לקריאה בלבד

תיקון:

  1. עצרו את ה-daemon ידנית: triggerfish stop
  2. הרגו תהליכים ישנים
  3. נסו את העדכון שוב עם הרשאות מתאימות

"Checksum file download failed" ​

לא ניתן להוריד SHA256SUMS.txt מגרסת GitHub. בדקו את חיבור הרשת ונסו שוב.

ניקוי קובץ .old ב-Windows ​

לאחר עדכון Windows, הבינארי הישן משנה שם ל-triggerfish.exe.old. קובץ זה מנוקה אוטומטית בהפעלה הבאה. אם הוא לא מנוקה (למשל הבינארי החדש קורס בהפעלה), ניתן למחוק אותו ידנית.

השוואת גרסאות ​

המעדכן משתמש בהשוואת versioning סמנטי:

  • מסיר קידומת v מובילה (גם v0.4.2 וגם 0.4.2 מתקבלים)
  • משווה major, minor ו-patch מספרית
  • גרסאות pre-release מטופלות (למשל v0.4.2-rc.1)

עדכון ידני ​

אם המעדכן האוטומטי לא עובד:

  1. הורידו את הבינארי לפלטפורמה שלכם מ-GitHub Releases
  2. עצרו את ה-daemon: triggerfish stop
  3. החליפו את הבינארי:
    bash
    # Linux/macOS
    sudo cp triggerfish-linux-x64 /usr/local/bin/triggerfish
    sudo chmod +x /usr/local/bin/triggerfish
    
    # macOS: נקו הסגר
    xattr -cr /usr/local/bin/triggerfish
  4. הפעילו את ה-daemon: triggerfish start

עדכון Docker ​

פריסות Docker אינן משתמשות במעדכן הבינארי. עדכנו את תמונת הקונטיינר:

bash
# באמצעות סקריפט העטיפה
triggerfish update

# ידנית
docker compose pull
docker compose up -d

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

יומן שינויים ​

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

bash
triggerfish changelog              # גרסה נוכחית
triggerfish changelog --latest 5   # 5 גרסאות אחרונות

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