לפעמים, כשמנסים להתקין תוכנה ב-אובונטו בטרמינל, תראה שהשגיאה בנעילה לא יכולה להיווצר. שגיאה זו מרגיזה מכיוון שהיא נועלת את המערכת ומונעת ממך ביעילות להתקין את התוכנה הדרושה לך.
לא ניתן היה להשיג שגיאת נעילה
הסיבה ששגיאה זו מתרחשת היא לעיתים קרובותמשתמשי אובונטו יסגרו מסוף שמתקין משהו בטרם עת בזמן שהוא פועל. כאשר הם פותחים מסוף שני ומנסים להשתמש במנהל החבילה, מופיעה שגיאת "לא הצליחה לקבל נעילה" מכיוון שהיא אינה מאפשרת ליותר ממופע אחד של מערכת האריזה לפעול בבת אחת.
אמנם קל לראות מדוע מנהל החבילות נועל את עצמו, אבל זה מעצבן. למרבה הצער, כאשר משתמשי אובונטו נתקלים בבעיה זו, הם נבהלים מכיוון שמערכת ההפעלה אינה מסבירה כיצד לתקן אותה.
תיקון השגיאה "לא יכול היה לקבל נעילה" הוא דיקל, למרות שההנחיה למסוף גורמת לו להראות מפחיד ומסובך. בפוסט זה נראה לך בדיוק מה לעשות כשאתה נתקל בזה, איך לתקן את זה וכיצד למנוע נתקל בשגיאה בעתיד.
הערה: האם אתה משתמש ב- Debian? אל תהסס לעקוב! אובונטו בנויה על מערכת ההפעלה דביאן, כך שהפקודות בהן אנו משתמשים בפוסט זה יתאימו בצורה מושלמת! שיטה זו תעבוד גם עבור Linux Mint, Elementary OS ומנגזרות אחרות של אובונטו.
הרוג את Apt / Apt-get
כאמור במבוא לפוסט זה: הסיבה לכך ששגיאת "לא הצליחה להשיג נעילה" מופיעה כאשר מנהל החבילות של אובונטו כבר פועל (ברקע), והמשתמש מנסה להפעיל אותה פעם שנייה.
כל עוד מנהל החבילות של אובונטו נמשך ברקע, לא תוכל להשתמש בכלי חבילה להתקנה כדי להתקין תוכניות, ושגיאה מעצבנת זו תימשך.
למרבה המזל, מנהל החבילות של אובונטו היא תוכנית כמו כל אחת אחרת וניתן לנהל אותה כמו אחת.
יש כמה דרכים להרוג תהליכים ב- Linux. הדרך הטובה (והמהירה ביותר) היא להשתמש ב- ps פקודה לקבל את מזהה התהליך של תהליך הבעיה (במקרה זה Apt / Apt-get). לאחר מכן, השתמש ב- להרוג פקודה להפסיק את זה.
אז כדי להתחיל, השיק מסוף והפעל את ה- ps aux פקודה עם Apt בסוף זה (או Apt-get אם אתה משתמש בזה).
ps aux | egrep "apt"
לחלופין, למשתמשים ב- Apt-get:
ps aux | egrep "apt-get"
התבונן בטרמינל וקרא את המספרים המופיעים בפלט. זה מספר התהליך של מנהל החבילה. קח את המספר הזה וחבר אותו למספר להרוג פקודה להפסיק.
הערה: בעת השימוש בפקודת kill בכלי שירות למערכת, השתמש תמיד במתג "SIGTERM" או "SIGKILL". אם לא, ייתכן שהתהליך לא יפסיק לפעול.
sudo kill -SIGKILL process-id-number
או
sudo kill -SIGTERM process-id-number
מנהל את להרוג הפקודה צריכה לסיים את תהליך מנהל החבילה. אם אינך בטוח שמנהל החבילה של אובונטו אכן הופסק, אל תהסס להפעיל מחדש את ה- ps aux הפקודה למעלה שוב. אם אף מספר לא יחזור, תהליך הבעיה נעלם ותוכל להשתמש במנהל החבילות של אובונטו פעם נוספת!
מחק קבצי נעילה
לרוב, אם מנהל החבילות של Apt תקוע ברקע ולא מגיב את התהליך ניתן להסתיים עם להרוג פקודה. אולם לעיתים אין די בסיום התהליך.
אם אתה נתקל בשגיאה והורג את ה-מנהל החבילות באובונטו לא עוזר, יש שיטה חלופית שתוכל לנסות. זה כרוך בהתייחסות ישירה ל"מנעולים "שכלי האריזה מכניס למחשב שלך.
קבצי הנעילה נמצאים בשלושה ספריות נפרדות. כדי לגשת לקבצים, הפגישה המסופית חייבת להיות בעלת גישה שורשית. גישה שורשית באובונטו מתקבלת באמצעות sudo פקודה.
sudo -s
לאחר השגת גישה לשורש, CD לספרייה הראשונה.
cd /var/lib/dpkg/ rm lock
עכשיו אחרי שדאגת לקובץ הנעילה הראשון, הגיע הזמן לטפל בקובץ השני.
cd /var/lib/apt/lists/ rm lock
כשמטופל קובץ הנעילה השני, היפטר מקובץ המנעול השלישי והאחרון.
cd /var/cache/apt/archives/ rm lock
לאחר שנמחקו כל שלושת קבצי הנעילה באמצעות rm פקודה, יהיה לך טוב ללכת ומנהל החבילות של אובונטו צריך להתחיל לעבוד שוב. כדי לבדוק את הריצה:
sudo apt update
תקן חבילות שבורות
כשאתה סוגר טרמינל בטרם עת באובונטו במהלך התקנת תוכניות, חבילות נוטות להישבר. כדי לתקן זאת, עליך להריץ את ה- Dpkg פקודה לצד אפשרות "הגדרת התצורה".
dpkg --configure -a
לאחר שתסיים להריץ את הפקודה לעיל, הכל צריך להיות מתוקן והחבילות השבורות צריכות להיות מוכנות לשימוש.
הערות