מאגר ידע: תהליך עדכון עצמי
כיצד triggerfish update עובד, מה יכול להשתבש וכיצד לשחזר.
כיצד זה עובד
פקודת העדכון מורידה ומתקינה את הגרסה האחרונה מ-GitHub:
בדיקת גרסה. מביאה את תג הגרסה האחרון מ-API של GitHub. אם אתם כבר על הגרסה האחרונה, יוצאת מוקדם:
Already up to date (v0.4.2)בניות פיתוח (
VERSION=dev) מדלגות על בדיקת הגרסה ותמיד ממשיכות.זיהוי פלטפורמה. קובעת את שם נכס הבינארי הנכון בהתבסס על מערכת ההפעלה והארכיטקטורה שלכם (linux-x64, linux-arm64, macos-x64, macos-arm64, windows-x64).
הורדה. מביאה את הבינארי ו-
SHA256SUMS.txtמגרסת GitHub.אימות checksum. מחשבת SHA256 של הבינארי שהורד ומשווה אותו לערך ב-
SHA256SUMS.txt. אם ה-checksums אינם תואמים, העדכון מבוטל.עצירת daemon. עוצרת את ה-daemon הרץ לפני החלפת הבינארי.
החלפת בינארי. ספציפי לפלטפורמה:
- Linux/macOS: משנה שם בינארי ישן, מעבירה חדש למקום
- macOS צעד נוסף: מנקה תכונות הסגר עם
xattr -cr - Windows: משנה שם בינארי ישן ל-
.old(Windows אינו מאפשר דריסת קובץ הרצה רץ), ואז מעתיקה את הבינארי החדש לנתיב המקורי
אתחול daemon מחדש. מפעילה את ה-daemon עם הבינארי החדש.
יומן שינויים. מביאה ומציגה הערות גרסה לגרסה החדשה.
הסלמת 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: תהליך אחר פתח את הבינארי)
- מערכת קבצים לקריאה בלבד
תיקון:
- עצרו את ה-daemon ידנית:
triggerfish stop - הרגו תהליכים ישנים
- נסו את העדכון שוב עם הרשאות מתאימות
"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)
עדכון ידני
אם המעדכן האוטומטי לא עובד:
- הורידו את הבינארי לפלטפורמה שלכם מ-GitHub Releases
- עצרו את ה-daemon:
triggerfish stop - החליפו את הבינארי: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 - הפעילו את ה-daemon:
triggerfish start
עדכון Docker
פריסות Docker אינן משתמשות במעדכן הבינארי. עדכנו את תמונת הקונטיינר:
bash
# באמצעות סקריפט העטיפה
triggerfish update
# ידנית
docker compose pull
docker compose up -dסקריפט העטיפה מושך את התמונה האחרונה ומאתחל את הקונטיינר אם אחד רץ.
יומן שינויים
לאחר עדכון, הערות גרסה מוצגות אוטומטית. ניתן גם לצפות בהן ידנית:
bash
triggerfish changelog # גרסה נוכחית
triggerfish changelog --latest 5 # 5 גרסאות אחרונותאם הבאת יומן שינויים נכשלת לאחר עדכון, היא מתועדת אך אינה משפיעה על העדכון עצמו.
