כיצד לתקן את השגיאה "נכשל בנעילת /var/lib/dpkg/lock".

נכשל בנעילת ⁄var⁄lib⁄dpkg⁄lock

למרות שהפצת לינוקס עשויה לבחור להתקין את התוכנה איך שהיא רואה לנכון, לעתים קרובות יותר, הם יכולים, לכל הפחות, להתקין אותה מהמאגרים הרשמיים שלהם. ניתן לתחזק מאגרים אלו ישירות על ידי ההפצה ו/או על בסיס אחרים, כפי שקורה עם Debian->Ubuntu->Linux Mint, למשל. במקרים אלו, מנהל החבילות הוא APT, ולפעמים אנו יכולים לראות את ההודעה "לא ניתן לנעול את /var/lib/dpkg/lock" בטרמינל או אפילו בכלי עם ממשק גרפי.

מאמר זה ינסה לשפוך מעט אור. על מה זה וכיצד ניתן לפתור את השגיאה זה גורם לנו לראות את ההודעה "/var/lib/dpkg/lock לא ניתן לנעול", אבל אני יכול להגיד לך שיש פתרון פשוט מאוד שיכול לתקן את זה ועוד הרבה בעיות, בין אם זה ב-Linux- הפצה מבוססת או כל מערכת הפעלה אחרת, כולל נייד.

מה משמעות השגיאה "לא יכול לנעול /var/lib/dpkg/lock"?

באופן כללי, כאשר אנו רואים את השגיאה "לא יכול לנעול /var/lib/dpkg/lock", הטרמינל או התוכנה שמראה זאת מציינים שתהליך APT אחר פועל ומשתמש באותו מסד נתונים שאליו אנו מנסים לגשת . במילים אחרות, תהליך APT החדש מנסה לנעול את הקובץ /var/lib/dpkg/lock, הוא לא יכול לקבל את זה כי הוא עסוק ולהודיע ​​לנו על כך.

הנפוץ ביותר הוא זה תהליך APT נוסף, כמו העדכון, כבר פועל ונעל את קובץ הנעילה, כך שהוא לא יכול לעשות את הצעד הראשון, שהוא בדיוק לנעול את הקובץ האמור.

כיצד לתקן את השגיאה

הדבר הראשון שעלינו לעשות, במיוחד אם אנחנו לא אוהבים להשתמש בטרמינל, הוא בדוק אם יש יישום תוכנה שפועל. לדוגמה, באובונטו נוכל לראות אם תוכנת אובונטו (מזלג תוכנת GNOME) עושה משהו, וגם Software Update, האפליקציה שאחראית, כפי ששמה מרמז, על עדכון התוכנה. אם איננו רואים אף אחת מהיישומים הללו פתוחים, נוכל גם להפעיל את צג המערכת ולחפש אותם, כדי לראות אם הם פועלים ברקע.

לאס יישומים שעלינו לחפש יהיו תלויים בהפצה שאנו משתמשים בו, מכיוון שהתוכנה של אובונטו אינה ב-Kubuntu, וגם Discover אינה בגרסה הראשית של דביאן. כל הפצה מנהלת את התוכנה עם הכלים שהיא בוחרת להוסיף, והם יכולים לחסום את ארכיון התוכנה של GNOME, Discover, כל חנות תוכנה אחרת, או את כלי העדכונים.

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

אתחול מחדש או התנתקות אמורים להספיק

לפני שנים רבות, חבר תמיד שאל אותי איך לתקן קריסות שלו ב-Windows. הגיע הזמן שבקושי שאלתי אותו יותר, והמלצתי עליו אתחל מחדש כי זה כמעט תמיד היה הפתרון הטוב ביותר עבורו. במקרה של השגיאה "לא יכול לנעול /var/lib/dpkg/lock" הוא גם פתרון אפשרי. כאשר מתחילים מאפס, ייתכן שתתחיל עם הקובץ שננעל על ידי כלי העדכון, אך הוא יפתח אותו בקרוב, כאשר תוודא שאין שום דבר חדש להתקין או שיש, אבל כבר הודעת לנו על כך.

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

כאשר ההודעה "נכשל לנעול /var/lib/dpkg/lock" לא נעלמת

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

  1. הדבר הראשון שנעשה הוא לפתוח מסוף ולזהות את תהליך ה-APT הפועל עם הפקודה הזו:
sudo lsof /var/lib/dpkg/lock
  1. כשהתהליך מזוהה, אנו הורגים אותו עם הפקודה הזו, ומחליפים את PID במספר של התהליך שנגלה בפקודה משלב 1:
sudo kill PID
  1. לבסוף, אנו מנסים שוב לבצע את ניהול ה-APT שהשגיאה חזרה. זה אמור לאפשר לנו להמשיך הלאה.

אם זה לא יפתור את זה, נוכל לעשות משהו יותר דרסטי, אז תצטרך לנקוט באמצעי זהירות או לנקוט בצעדים נוספים. זה עושה את זה "בדרך הקשה": הסרת הקובץ /var/lib/dpkg/lock. השלבים שיש לבצע כדי לעשות זאת בבטחה יהיו אלה:

  1. אנו עושים גיבוי של הקובץ /var/lib/dpkg/lock. מכיוון שמה שנעשה זה להעתיק את זה, אנחנו יכולים להשתמש במנהל הקבצים, מכיוון שלא נדרשות הרשאות משתמש סופר. מהטרמינל אפשר היה לעשות את זה cp /var/lib/dpkg/lock new-path, שינוי "נתיב חדש" לנתיב שבו אנו רוצים ליצור את עותק הגיבוי.
  2. אנחנו מוחקים את הקובץ. בשביל זה יהיה צורך למשוך הרשאות. אם מנהל הקבצים שלנו מאפשר לנו, נוכל לכתוב, למשל, "sudo nautilus" ללא המירכאות כדי להסיר אותו עם ממשק גרפי, אבל אני חושב שיהיה מהיר וקל יותר לפתוח את הטרמינל ולכתוב:
sudo rm /var/lib/dpkg/lock
  1. כשהקובץ נמחק נוכל לנסות שוב מה שלא הורשה לנו. אם נכתוב עדכון sudo ואנחנו לא רואים את השגיאה, הבאג תוקן.

אתחול מחדש וסבלנות הם בדרך כלל הטובים ביותר

למרות שישנן דרכים לתקן את זה, כמו אלו שהוסברו בנקודה הקודמת, השגיאה "לא יכלה לנעול /var/lib/dpkg/lock" זה לא משהו רציני באמת וניתן לתקן זאת על ידי המתנה לזמן מה או על ידי אתחול מחדש. זה משהו שבדרך כלל מתקן את עצמו, ואם לא, אתחול מחדש הוא הפחות אגרסיבי והיעיל ביותר. עכשיו, זה לינוקס, ולכל דבר או כמעט לכל דבר יש פתרון מהטרמינל, שלא לדבר על כך שאנחנו יכולים "להרוג" מה שנרצה.

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


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי על הנתונים: AB Internet Networks 2008 SL
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.

  1.   דנילו קוויספה לוקנה דיג'ו

    שלום:

    הפקודה הזו עובדת בשבילי (נבדקה ב-Xubuntu 18.04 LTS):

    sudo fuser -vki /var/lib/dpkg/lock

    זה תקף גם עבור קבצים נעולים אחרים, כגון /var/lib/dpkg/lock-frontend או /var/lib/apt/lists/lock.

    לגבי