رفع ارور « E: Could not get lock /var/lib/dpkg/lock » در اوبونتو

با سلام و درود.به ارور « E: Could not get lock /var/lib/dpkg/lock » هنگام نصب کردن یه اپلیکیشن با دستور apt در لینوکس اوبونتو بر خواهید خورد، برای رفع ارور در ادامه همراهمان باشید، و اما خود ارور:

E: Could not get lock /var/lib/dpkg/lock-frontend – open (11: Resource temporarily unavailable) E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?

ارور مشابهی نیز وجود داره :

E: Could not get lock /var/lib/apt/lists/lock – open (11: Resource temporarily unavailable)
E: Unable to lock directory /var/lib/apt/lists/ 
E: Could not get lock /var/lib/dpkg/lock – open (11: Resource temporarily unavailable) 
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

این دو ارور شبیه به ارور رایج اوبونتو: 

 Unable to lock directory /var/cache/apt/archives/ 

هستند، و چیزی که ارور های فوق رو حل میکنه کاملا شبیه به همدیگر هست.

روش حل اول برای ارور (Unable to lock the administration directory (/var/lib/dpkg/) error) : 

دلایل مختلفی برای این ارور وجود داره، اولین و رایج ترینشون این هست که یه فرايند دیگه ای در حال حاضر داره از ابزار APT package management استفاده میکند (به عبارت دیگر در حال حاضر فرآیندی از دستورات apt یا apt-get استفاده می کند).

بررسی کنید که Ubuntu Software Center یا Software Updte در حال اجرا هستند یا خیر.

از دستور زیر نیز می توانید تمام فرایند های در حال اجرا را پیدا و kill کنید:

ps aux | grep -i apt

دستور فوق id فرآیند هایی که از دستورات apt یا apt-get استفاده می کنند را نمایش می دهد.

در مثال ذیل، process با id به شماره ۶۵۱۶ در حال استفاده از دستور apt می باشد.

برای killکردن کافیه از دستور زیر و شماره id به دست اومده استفاده کنید :

sudo kill -9 <process id>

یه روش ساده نیز استفاده از دستور زیر برای kill کردن تمامی برنامه های در حال استفاده از دستورات apt و apt-get می باشد ( رفع ارور ): 

sudo killall apt apt-get

 

روش حل دوم برای ارور Unable to lock the administration directory (/var/lib/dpkg/) : 

در مواردی هست که هیچ فرآیندی در حال استفاده از دستورات apt و apt-get نیست ولی باز هم به ارور زیر بر میخوریم:

the administration directory (/var/lib/dpkg/)

در این موارد مشکل از lock file است. lock file ها برای جلوگیری از این که دو یا چند فرآیند هم زمان از داده یکسان استفاده کنند به کار برده می شوند.

زمانی که دستورات apt و apt-get اجرا می شوند در چند جا lock file  می سازند، زمانی که دستور apt قبلی به درستی تمام نشود، lock file ها پاک نمی شوند و از دستورات جدید apt و apt-get جلوگیری می کنند.

برای حل این مشکل ( رفع ارور ) شما نیاز دارید تا این lock file ها را پاک کنیدو برای این کار از دستورات زیر استفاده کنید:

sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock

پس از دستورات زیر باید پکیج ها را مجدد کانفیگ کنید، با استفاده از دستور زیر‌:

sudo dpkg --configure -a

حال اگه از دستور apt یا apt-get استفاده کنید به مشکل بر نخواهید خورد.

 

امیدوارم مطلب فوق کارآمد بوده باشه براتون … 🙂

برای مشاهده مطالب مرتبط با لینوکس به اینجاhttp://sadegh-khan.ir/category/os/linux/ نگاهی بیاندازید.

4 نظر

به گفتگو بپوندید و نظر خود را به ما بگویید.

سثحثاقپاسخ
می 12, 2019 در 2:56 ب.ظ

داداش یک دنیا ممنون کارمون راه افتاد

sadegh_khanپاسخ
می 16, 2019 در 3:28 ب.ظ
– در پاسخ به: سثحثاق

موفق باشید 🙂

رضاپاسخ
آگوست 22, 2019 در 3:23 ب.ظ

سلام خسته نباشید من راه دومو رفتم این ارورو میده sudo dpkg –configure -a
dpkg: error: dpkg frontend is locked by another process

sadegh_khanپاسخ
آگوست 25, 2019 در 9:12 ب.ظ
– در پاسخ به: رضا

سلام، نسخه اوبونتویی که استفاده می کنید چنده؟

نظری دهید