ແກ້ໄຂ "ບໍ່ສາມາດລັອກໄດເລກະທໍລີການບໍລິຫານ (/ var/lib/dpkg /)" ໃນ Ubuntu
ໃນຂະນະທີ່ ນຳ ໃຊ້ເຄື່ອງມືຄຸ້ມຄອງແພັກເກດ APT ໃນ Ubuntu Linux ຫລືເຄື່ອງມືອະນຸພັນຂອງມັນເຊັ່ນ Linux Mint (ທີ່ຂ້ອຍໃຊ້ເປັນລະບົບປະຕິບັດການຫລັກຂອງຂ້ອຍ ສຳ ລັບເຮັດວຽກປະ ຈຳ ວັນ), ທ່ານອາດຈະພົບຂໍ້ຜິດພາດ - "ບໍ່ສາມາດລັອກໄດເລກະທໍລີການບໍລິຫານ (/ var/lib/dpkg /) ແມ່ນອີກຂັ້ນຕອນ ໜຶ່ງ ທີ່ໃຊ້ມັນ” ຢູ່ໃນເສັ້ນ ຄຳ ສັ່ງ.
ຂໍ້ຜິດພາດນີ້ສາມາດເປັນສິ່ງທີ່ ໜ້າ ຮໍາຄານໂດຍສະເພາະ ສຳ ລັບຜູ້ໃຊ້ Linux (Ubuntu) ຄົນ ໃໝ່ ທີ່ອາດຈະບໍ່ຮູ້ສາເຫດຂອງຄວາມຜິດແທ້.
ຂ້າງລຸ່ມນີ້ແມ່ນຕົວຢ່າງ, ສະແດງຂໍ້ຜິດພາດຂອງແຟ້ມລັອກໃນ Ubuntu 16.10:
[email :~$ sudo apt install neofetch [sudo] password for tecmint: 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?
ຜົນໄດ້ຮັບຂ້າງລຸ່ມນີ້ແມ່ນຕົວຢ່າງອື່ນທີ່ເປັນໄປໄດ້ຂອງຄວາມຜິດພາດດຽວກັນ:
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?
ເຈົ້າຈະແກ້ໄຂຂໍ້ຜິດພາດຂ້າງເທິງນີ້ໄດ້ແນວໃດໃນກໍລະນີທີ່ເຈົ້າຈະລົ້ມເຫລວໃນອະນາຄົດ? ມັນມີຫລາຍວິທີໃນການຈັດການກັບຂໍ້ຜິດພາດນີ້, ແຕ່ໃນຄູ່ມືນີ້, ພວກເຮົາຈະຜ່ານສອງວິທີທີ່ງ່າຍທີ່ສຸດແລະອາດຈະເປັນວິທີການທີ່ມີປະສິດຕິຜົນທີ່ສຸດໃນການແກ້ໄຂ.
1. ຊອກຫາແລະຂ້າທຸກຂະບວນການທີ່ ເໝາະ ສົມຫລື ເໝາະ ສົມ
ດໍາເນີນການຄໍາສັ່ງຂ້າງລຸ່ມນີ້ເພື່ອ grep ຄໍາສັ່ງພ້ອມດ້ວຍທໍ່.
$ ps -A | grep apt
ສຳ ລັບແຕ່ລະຂະບວນການ apt-get ຫຼື apt ທີ່ທ່ານສາມາດເຫັນໃນຜົນຜະລິດຂອງ ຄຳ ສັ່ງຂ້າງເທິງ, ຂ້າແຕ່ລະຂະບວນການໂດຍໃຊ້ ຄຳ ສັ່ງຂ້າງລຸ່ມ.
ID ຂອງຂະບວນການ (PID) ແມ່ນພົບຢູ່ໃນຖັນ ທຳ ອິດຈາກພາບ ໜ້າ ຈໍຂ້າງເທິງ.
$ sudo kill -9 processnumber OR $ sudo kill -SIGKILL processnumber
ຍົກຕົວຢ່າງ, ໃນ ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້ບ່ອນທີ່ 9
ແມ່ນ ໝາຍ ເລກ ສຳ ລັບສັນຍານ SIGKILL, ຈະຂ້າຂະບວນການທີ່ ເໝາະ ສົມ ທຳ ອິດ:
$ sudo kill -9 13431 OR $ sudo kill -SIGKILL 13431
2. ລົບໄຟລ໌ລັອກ
ແຟ້ມລັອກພຽງແຕ່ປ້ອງກັນການເຂົ້າເຖິງເອກະສານອື່ນຫລືບາງຂໍ້ມູນໃນລະບົບ Linux ຂອງທ່ານ, ແນວຄິດນີ້ມີຢູ່ໃນ Windows ແລະລະບົບປະຕິບັດການອື່ນໆເຊັ່ນກັນ.
ເມື່ອທ່ານໃຊ້ ຄຳ ສັ່ງ apt-get ຫຼື apt, ແຟ້ມລັອກຖືກສ້າງຂື້ນພາຍໃຕ້ບັນດາໄດເລກະທໍລີໃດໆ/var/lib/apt/list /,/var/lib/dpkg/ແລະ/var/cache/apt/archives /.
ສິ່ງນີ້ຊ່ວຍໃຫ້ຫລີກລ້ຽງຈາກຂະບວນການ apt-get ຫຼື apt ທີ່ ກຳ ລັງແລ່ນຢູ່ແລ້ວຈາກການຖືກລົບກວນໂດຍຜູ້ໃຊ້ຫຼືລະບົບອື່ນໆທີ່ຕ້ອງການເຮັດວຽກກັບແຟ້ມທີ່ຖືກໃຊ້ໂດຍ apt-get ຫຼື apt. ເມື່ອຂັ້ນຕອນການປະຕິບັດ ສຳ ເລັດແລ້ວ, ໄຟລ໌ລັອກຈະຖືກລຶບອອກ.
ສິ່ງ ສຳ ຄັນ: ໃນກໍລະນີທີ່ມີການລັອກຢູ່ໃນສອງລາຍການຂ້າງເທິງໂດຍບໍ່ມີການແຈ້ງເຕືອນຫລືການເຮັດວຽກທີ່ ເໝາະ ສົມ, ມັນອາດຈະ ໝາຍ ຄວາມວ່າຂັ້ນຕອນດັ່ງກ່າວຖືກຈັດຂື້ນດ້ວຍເຫດຜົນ ໜຶ່ງ ຫຼືອີກຢ່າງ ໜຶ່ງ, ດັ່ງນັ້ນທ່ານ ຈຳ ເປັນຕ້ອງລຶບແຟ້ມລັອກເພື່ອທີ່ຈະ ລ້າງຄວາມຜິດພາດ.
ທຳ ອິດປະຕິບັດ ຄຳ ສັ່ງຢູ່ທາງລຸ່ມເພື່ອ ກຳ ຈັດແຟ້ມລັອກຢູ່ໃນລະບົບ /var/lib/dpkg/
:
$ sudo rm /var/lib/dpkg/lock
ຫລັງຈາກນັ້ນບັງຄັບໃຫ້ຊຸດເພື່ອປັບໂຄງສ້າງ ໃໝ່ ດັ່ງນີ້:
$ sudo dpkg --configure -a
ອີກທາງເລືອກ, ລຶບໄຟລ໌ລັອກຢູ່ໃນລະຫັດ /var/lib/apt/lists/
ແລະ cache ໃນຂ້າງລຸ່ມນີ້:
$ sudo rm /var/lib/apt/lists/lock $ sudo rm /var/cache/apt/archives/lock
ຕໍ່ໄປ, ປັບປຸງລາຍຊື່ແຫລ່ງແພັກເກດຂອງທ່ານດັ່ງຕໍ່ໄປນີ້:
$ sudo apt update OR $ sudo apt-get update
ສະຫລຸບລວມແລ້ວ, ພວກເຮົາໄດ້ຍ່າງຜ່ານສອງວິທີການທີ່ ສຳ ຄັນເພື່ອຈັດການກັບບັນຫາທົ່ວໄປທີ່ຜູ້ ນຳ ໃຊ້ Ubuntu (ແລະອະນຸພັນຂອງມັນ) ນຳ ໃຊ້, ໃນຂະນະທີ່ ກຳ ລັງໃຊ້ງານ apt-get ຫລື apt ພ້ອມທັງ ຄຳ ສັ່ງດ້ານທັກສະ.
ທ່ານມີວິທີການອື່ນໃດທີ່ ໜ້າ ເຊື່ອຖືເພື່ອແລກປ່ຽນຄວາມ ໝາຍ ສຳ ລັບການຈັດການກັບຄວາມຜິດພາດທົ່ວໄປນີ້ບໍ? ແລ້ວຕິດຕໍ່ຫາພວກເຮົາໂດຍຜ່ານແບບຟອມ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້.
ນອກຈາກນັ້ນ, ທ່ານອາດຈະຕ້ອງການຮຽນຮູ້ ຄຳ ສັ່ງ kill, pkill ແລະ killall ເພື່ອຍຸຕິຂັ້ນຕອນໃນ Linux.