10روش رفع خطا Could not Get lock Ubuntu در APT package manager
به اشتراک بگذارید
Could not Get lock Ubuntu این Error یکی از خطاهای رایج در اوبونتو و توزیع های لینوکسی بر پایه دبیان است. و اما APT چیست؟
چرا خطای Could not Get lock /var/lib/dpkg/lock و دیگر نمونه های آن را دریافت می کنیم؟ باید بگم apt یکی از دستورات لینوکس است که برای مدیریت بسته ها در توزیع های مبتنی بر دبیان مانند اوبونتو کاربرد دارد. و اما در این مقاله از بلاگ وب داده قراره بگیم چگونه خطا قفل اوبونتو و یا Could not Get lock Ubuntu را دریافت خواهید کرد و چگونه از شر
ارور Could not get lock /var/lib/dpkg/lock راحت شوید…
💡 بیشتر بدانید: آموزش نصب اوبونتو+پارتیشن بندی Ubuntu system
💡 dpkg، دیپکج چیست؟
دیپکج یا dpkg ابزاری است جهت مدیریت بسته ها در انواع سیستم عامل های لینوکس مبتنی بر دبیان دقیقا مانند اوبونتو است. با استفاده از این ابزار این امکان را دارید تا بسته های نرم افزاری را نصب، حذف و مدیریت کنید. با هر بار نصب یک برنامه جدید در سیستم خود، ابزار apt و دقیق تر آن dpkg مسئولیت این نصب را برعهده دارد.
دریافت خطا Could not Get lock Ubuntu
برای توضیح دلیل دریافت خطا قفل اوبونتو Could not get lock /var/lib/dpkg/lock، باید ابتدا فرآیند ایجاد این خطا را بررسی کنیم و بفهمیم چگونه این خطا رخ میدهد و چه مواردی را جهت رفع این خطا باید بررسی کرد. بنابراین، عجله نکنید و ادامه مقاله را مطالعه کنید تا جزئیات و اطلاعات بیشتری را در باره خطای Could not Get lock Ubuntu بدست آورید.
دستور apt چیست
اجازه بدهید تا از دستور apt بیشتر بگم تا با دلیل به وجود آمدن خطا قفل اوبونتو بیشتر آشنا شوید.
apt به صورت کلی ابزاری جهت مدیریت بسته های نصبی بر روی توریع های لینوکسی بر پایه دبیات مانند: اوبونتو است. بر اساس این ابزار شما میتوانید بسته های مورد نظر خود را نصب، هدف و یا بروزرسانی کنید. دستورات کار با این ابزار در زیر آماده است:
📌 درنظر داشته باشید برای استفاده از دستور apt باید حتما دسترسی ادمین را داشته باشید. پس حتما از Sudo در ابتدای دستور میتوانید استفاده کنید.
دستور نصب بسته مورد نظر:
sudo apt install <package-name>
دستور حذف بسته مورد نظر:
sudo apt remove <package-name>
دستور بروزرسانی بسته مورد نظر:
sudo apt upgrade <package-name>
ارور Could not Get lock Ubuntu
حال که متوجه شدید apt چیست و چگونه کار می کند میتوانید متوجه شوید که دلیل به وجود آمدن خطای Could not Get lock /var/lib/dpkg/lock چیست. باید بگم: زمانی که شما به صورت خود خواسته و یا ناخواسته در حال استفاده از این ابزار هستید و دوباره درخواست استفاده از این ابزار را به سیستم خود میدهید با خطا قفل اوبونتو مواجه می شوید.
بگذارید ساده تر بگم: به عنوان مثال شما تنظیمات سیستم خود را بر روی آپدیت روزانه سیستم عامل تنظیم کرده اید و درست لحظه ای که سیستم عامل در حال بروزرسانی است و شما از این موضوع بی خبر هستید دستور نصب بسته جدیدی را مانند: نصب Skype را به اوبونتو خود میدهید. درنتیجه بلافاصله پس از وارد کردن دستور نصب بسته، با خطای
Could not Get lock /var/lib/dpkg/lock مواجه می شوید.
پس نتیجه میگیرم که این خطا تنها در حالتی رخ میدهد که شما قصد استفاده از این دستور را 2 بار به صورت همزمان داشته باشید. حتی ممکنه شما دستور نصب یک بسته را برنید و برق بره و شما فراموش کنید که دستور قبلی هنوز تکمیل نشده و قصد استفاده از این ابزار را برای بار دوم داشته باشد.
🔸 من در تصویر زیر برای درک بهتر شما از این خطا سیستم عامل اوبونتو خود را در حالت Update قرار دادم و دستور نصب Skype را در محیط Shell سیستم عامل اوبونتوخود وارد کردم.
در تصویر بالا میبینیم که خطای Could not get lock /var/lib/dpkg/lock-frontend را دریافت کردیم.
🔸 البته اگر در نسخه های دیگر Ubuntu کار میکنید ممکن است فرم های دیگر خطا را دریافت کنید:
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?
--------------------------------------------------
Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend. It is held by the process 5017 (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?
دلایل دریافت Error قفل اوبونتو Could not get lock /var/lib/dpkg/lock-frontend
1- استفاده از ابزار مدیریت بسته apt به صورت همزمان
این درست مانند مثالی است که من برای ایجاد خطا قفل اوبونتو در سیستم خود انجام دادم. استفاده از ابزار apt به صورت همزمان میتواند شما را به خطای
Could not get lock /var/lib/dpkg/lock برساند چرا که به صورت خودکار این قفل فعال می شود تا در پردازش بسته مورد نظر اشکالی رخ ندهد.
2- پردازش های پس زمینه با استفاده از بسته apt
ابزار مدیریت بسته APT به صورت خودکار ممکن است پردازش هایی را در سیستم شما انجام دهد که ایجاد تداخل با موارد دیگری داشته باشد این موارد شامل انواع پردازش های جدید تر در سیستم شما است. انواع پس زمینه های پردازش شامل آپدیت های سیستم عامل و نرم افزاری است.
3- پردازش های ناقص
ایجاد خطا قفل اوبونتو به دلیل پردازش ناقص زمانی رخ میدهد که بروز رسانی و یا نصبی در حال انجام بوده و این عملیات به دلیل قطعی برق و یا هر چیز دیگری به صورت نصفه رها شده است.
4- فایل هاب خراب در مدیریت بسته apt
گاهی ممکن است برنامه هایی در سیستم اوبونتو خود نصب کرده باشید که تداخلی را با ابزار مدیریت بسته apt ایجاد کرده باشد و در نهایت باعث ناتوانی در نصب یا حذف بسته ها شود.
رفع خطا Could not Get lock Ubuntu
جهت رفع خطا قفل اوبونتو و یا همان Could not get lock /var/lib/dpkg/lock
روش های مختلفی وجود دارد که شما باید برای برطرف کردن آن، موارد ذکر شده را چک کنید:
1- بررسی برنامه های درحال اجرا
اگر با خطا قفل اوبونتو مواجه شدید یعنی دستور نصب و یا بروزرسانی را توسط ابزار apt وارد میکنید و با Could not get lock /var/lib/dpkg/lock مواجه می شوید میتوانید در سیستم خود بررسی کنید که آیا برنامه ای در سیستم شما در حال اجرا از ابزار apt است و یا تمامی صفحات ترمینال خود را چک کنید شاید در Screen دیگری دستوری از apt در حال اجرا باشد.
2- خطا Could not Get lock Ubuntu و کمی انتظار
پس از دریافت این خطا کمی منتظر بمانید چرا که ممکن است این خطا به دلیل آپدیت و پردازش دستور دیگری توسط این ابزار باشد و مشکل ایجاد خطا با زمان دادن به سیستم تا اتمام پردازش موجود، مفید و موثر واقع شود.
3- Reboot و راه اندازی مجدد
اگر خطا پس از کمی صبر و شکیبایی همچنان ادامه داشت میتوانید سیستم را Reboot کنید چرا که با استفاده از راه اندازی مجدد اگر مشکل و یا باگی در پس زمینه وجود داشته باشد برطرف می شود و همچنان ترمینالی خالی از هرگونه دستوری در اختیار دارید تا دستورات مورد نظر را وارد کنید. جهت انجام Reboot سیستم از دستور زیر نیر میتوانید استفاده کنید:
reboot
4- Clear Cache Ubuntu
باید در نظر داشته باشید که قبل از نصب یک بسته یا برنامه، تمامی فایل های دانلود شده از آن برنامه در حافظه پنهان سیستم ذخیره می شوند و سپس نصب کامل انجام میشود. در این میان، اگر اتصال شما با اینترنت مختل شود، این بسته ها به صورت ناقص و خراب باقی می مانند. جهت از بین بردن آنها باید با پاک کردن کش سیستم شروع کنید و دوباره فرآیند نصب را وارد کنید. برای انجام پاک سازی کش، میتوانید از دستور زیر استفاده کنید:
sudo apt clean
5- بروزرسانی ابزار مدیریت بسته apt
درنظر داشته باشد که همواره باید از ابزار ها در آخرید نسخه و بروز شده استفاده کنید چرا که بسیاری از خطاها و مشکلات احتمالی به دلیل باگ هایی است که در ورژن های قدیمی تر وجود نرم افزار ها وجود دارند و با بروزرسانی و آپدیت این خطاها رفع می شوند. جهت بروزرسانی بسته نرم افزاری apt خود ابتدا باید این اطمینان را حاصل کنید که از فایل های آخرین ورژن در حال استفاده هستید پس برای این کار از دستور زیر استفاده کنید:
sudo apt update
حال برای آپدیت نرم افزار به ورژن بالاتر از دستور زیر میتوانید استفاده کنید:
sudo apt upgrade
6- مدیریت بروز رسانی خودکار
بروز رسانی خودکار در اوبونتو ویژگی است که همواره امنیت سیستم را در بالاترین سطح خود حفظ میکند چرا که بر طبق ایم عملیات های خودکار نرم افزار ها در آخرین ورژن خود فعالیت میکنند. اما مدیریت این بخش نیز بسیار مهم است چرا که در زمانی که شماخطا قفل اوبونتو یا Could not get lock /var/lib/dpkg/lock را دریافت می کنید یعنی تداخلی در این بخش با کار شما بوجود آمده است پس برای مدیریت این بخش از مسیر نرم افزار ها و یا search اوبونتو کلمه Update را جستجو کنید تا به Software & Updates برسید.
حال در این بخش میتوانید تنظیمات مربوط به بروزرسانی های خودکار را مدیریت کنید. اما برای رفع خطا قفل اوبونتو میتوانید برای چند لحظه از همین بخش Update را خاموش کنید تا دلیل خطا را متوجه شوید.
7- بررسی انواع پردازش های فعلی
گاهی ممکن است به دلایل مختلفی فرایند و یا پردازشی جهت بروزرسانی و یا نصب بسته ای در جریان باشد اما شما ندانید و با درخواست نصب و یا بروزرسانی خود توسط ابزار apt با خطای Could not Get lock Ubuntu مواجه شوید. جهت بررسی تمامی پردازش های apt تنها کافی است دستور زیر را وارد کنید:
ps aux | grep -i apt
حال میتوانید لیستی از پردازس های apt را مشاهده کنید که در این عکس و مثال این مقاله، پردازش ها مربوط به بروزرسانی خود apt است. پس میتوانید کمی صبر کنید تا خروجی این فرایند ها تمام شوند و خطا قفل اوبونتو دگیر مزاحم کار شما نباشد.
حال توسط ابزار مشابه و زیر مجموعه apt به نام dpkg میتوانید تمامی پروسس های غیر مرتبط را نیز شناسایی کنید. پس دستور زیر را وارد کنید و منتظر خروجی باشد:
ps aux | grep -i dpkg
به صورت کلی باید منتظر بمانید تا تمامی processes ها به اتمام برسند و بعد ار آن دستور apt مورد نظر را وراد کنید تا با خطای Could not Get lock Ubuntu l مواجه نشوید.
8- بررسی Package Managers
با توجه به پردازش های در حال انجام در سیستم شما و یا ورژن اوبونتو، خطا قفل اوبونتو متفاوت و در مسیر هایی مانند موارد زیر رخ میشود:
/var/lib/dpkg/lock
/var/lib/dpkg/lock-frontend
/var/lib/apt/lists/lock
/var/cache/apt/archives/lock
با استفاده از دستور lsof، میتوانید تمامی فایل های باز و فرآیندهای مرتبط با آن ها را مشاهده کنید. سپس خروجی های دریافتی را بررسی کنید تا تمامی فایل های باز شده توسط این پروسه را مشاهده کنید.
sudo lsof [lock_file_name]
sudo lsof /var/lib/dpkg/lock-frontend
اگر دستور مانند عکس بالا بدون هیچ خروجی بود یعنی فایلی باز نیست و از هیچ یک ابزار ها استفاده نمی شود اما اگر دستور دارای خروجی بود یعنی دارای کد PID شناسه منحصر بفرد هر فرایند بود، شرایط به صورت زیر است.
9- خاتمه سرویس ها
خروجی دارای PID زمانی اتفاق می افتد که شما به صورت ناخواسته و غیر عمدی پردازش apt یا dpkg را به صورت نصفه قطع کرده باشید. پس برای برطرف کردن خطا قفل اوبونتو یا Could not Get lock Ubuntu باید پردازش را kill و یا خاتمه دهید. جهت انجام این کار میتوانید از دستور زیر استفاده کنید.
ابتدا دستور زیر را بزنید و query مورد نظر را پیدا کنید و در مرحله بعدی آن را Kill کنید:
ps aux | grep -i dpkg
sudo kill [PID]
اگر بعد از این دستور همچنان خروجی نداشتید میتوانید دستور قبلی یعنی
( ps aux | grep -i dpkg ) را بزنید و این بار از دستور زیر استفاده کنید:
این دستورخطرناک تر و قاطعانه تر از دستور قبلی است و فرایند را بدون خطا خاتمه میدهد:
sudo kill -9 [PID]
پس دستور در مثال این مقاله به صورت زیر وارد می شود:
sudo kill -9 2636
حال با دستور زیر مطمئن شوید که درخواست دیگر برایتان لیست نمی شود و پردازش خاتمه یافته است.
ps aux | grep -i dpkg
10- پاک کردن فایل های قفل
اگر از تمامی موارد بالا گذر کردید و همچنان خطا برایتان نمایش داده شد میتوانید طبق دستورات زیر عمل کنید و با استفاده از دستور rm فایل های قفل را حذف کنید.
این مراحل درواقع جهت حذف انواع فایل های قفل در سیستمعامل های مبتنی بر لینوکس مانند: Ubuntu مورد استفاده قرار میگیرد.
زمانی وجود دارد که به علت فایل های قفل نمی توانید از ابزار مدیریت بسته ها مانند: APT استفاده کنید، پس با دستورهای Sudo rm
میتوانید این فایل های قفل را حذف کنید.
sudo rm [lock_file_name]
درجایگاه [lock_file_name] باید مسیر فایل های قفل اوبونتو را وارد کنید:
/var/lib/dpkg/lock
/var/lib/dpkg/lock-frontend
/var/lib/apt/lists/lock
/var/cache/apt/archives/lock
یکی از کد ها مانند دستور زیر است:
sudo rm /var/lib/dpkg/lock-frontend
در این مرحله دیگر تمامی فایل ها حذف می شوند و خطا برطرف می شود. در نظر داشته باشید برای اطمینان از پایداری ابزار APT package manager یک بار آن را پیکربندی مجدد میکنیم تا اگر فایل خراب و یا ناقصی در آن وجود دارد از بین برود و جایگزین شود.
sudo dpkg --configure -a
معمولا توسط این دستور اگر خرابی در ابزار شما وجود داشته باشد رفع می شود.
نتیجه گیری
پس در یک نتیجه گیری کلی متوجه می شویم که خطا قفل اوبونتو یا
Could not Get lock Ubuntu در حالت کلی از آنجایی شروع می شود که پردازشی از طریق ابزار apt در حال انجام باشد. در این مقاله میتوانید تمامی ارور های مربوط به قفل Ubuntu را برطرف کنید و همواره از دستور apt به صورت مستمر استفاده کنید. ممنون که تا انتهای این مقاله همراه من و تیم وب داده بودید. ممنون از نگاهتون…😉
سوالات متداول خطا Could not Get lock Ubuntu
-
چرا هنگام استفاده از apt با خطا قفل اوبونتو و یا Could not Get lock Ubuntu مواجه می شویم؟
این خطا زمانی رخ می دهد که سیستم شما در حال استفاده از یکی از ابزار های dpkg یا apt است.
-
چگونه میتوانیم فرایند های قفل را در اوبونتو شناسایی و پیدا کنیم؟
برای شناسایی مواردی که ممکن است در سیستم Ubuntu شما ایجاد قفل کرده باشند بایداز دستور ps aux | grep -i dpkg استفاده کنید.
-
آیا پس از از بین بردن خطا قفل اوبونتو ممکن است داده های سیستم از بین برود؟
اگر تمامی مراحل را به درستی بروید و خاتمه پروسس ها را به درستی انجام دهید مشکلی به وجود نخواهد آمد اما بهترین حالت این است که یک پشتیبان از سایت خود بگیرید و سپس دستورات را وارد کنید و اقدام به رفع خطای Could not Get lock Ubuntu کنید.
منابع: PHOENIXNAP