1. 程式人生 > >Ubuntu-找出並殺掉所有 apt-get 或者 apt 程序& 刪除鎖定的檔案

Ubuntu-找出並殺掉所有 apt-get 或者 apt 程序& 刪除鎖定的檔案

在 Ubuntu 或者它的衍生版如 Linux Mint(我已經作為日常工作使用的系統)中使用 apt-get 命令或者其相對更新的APT 管理工具時,你可能會在命令列中看到一個 unable to lock the administration directory (/var/lib/dpkg/) is another process using it 的錯誤。

這個錯誤尤其對那些對這個錯誤原因不瞭解的 Linux(Ubuntu)新手而言更加惱人。

下面是一個例子,展示了出現在 Ubuntu 16.10 上的檔案鎖定錯誤:

  1. [email protected]:~$ sudo apt install neofetch
  2. [sudo] password for tecmint:
  3. E:Couldnotget lock /var/lib/dpkg/lock - open (11:Resource temporarily unavailable)
  4. E:Unable to lock the administration directory (/var/lib/dpkg),is another process using it?

下面的輸出是另外一個可能顯示的錯誤:

  1. E:Couldnotget lock /var/lib/apt/lists/lock - open (11:Resource temporarily unavailable)
  2. E:Unable
    to lock directory /var/lib/apt/lists/
  3. E:Couldnotget lock /var/lib/dpkg/lock - open (11:Resource temporarily unavailable)
  4. E:Unable to lock the administration directory (/var/lib/dpkg/),is another process using it?

你將來遇到這個錯誤該怎麼去解決?有好幾種方法處理這個錯誤,但是本篇中我們會用兩種或許是最簡單和最有效的方法來解決它。

1、找出並殺掉所有 apt-get 或者 apt 程序

執行下面的命令來生成所有含有 apt 的程序列表

,你可以使用 ps 和 grep 命令並用管道組合來得到含有 apt 或者 apt-get 的程序。

  1. $ ps-A |grep apt

找出 apt 以及 apt-get 程序

找出 apt 以及 apt-get 程序

你可以看到上面命令輸出的每個 apt-get 或者 apt 程序,使用下面的命令殺掉每個程序

上面截圖中的第一列是程序 ID(PID)。

  1. $ sudokill-9 processnumber
  2. 或者
  3. $ sudokill-SIGKILL processnumber

比如,下面命令中的9是 SIGKILL 的訊號數,它會殺掉第一個 apt 程序:

  1. $ sudokill-913431
  2. 或者
  3. $ sudokill-SIGKILL 13431

2、 刪除鎖定的檔案

鎖定的檔案會阻止 Linux 系統中某些檔案或者資料的訪問,這個概念也存在於 Windows 或者其他的作業系統中。

一旦你運行了 apt-get 或者 apt 命令,鎖定檔案將會創建於 /var/lib/apt/lists//var/lib/dpkg//var/cache/apt/archives/ 中。

這有助於執行中的 apt-get 或者 apt 程序能夠避免被其它需要使用相同檔案的使用者或者系統程序所打斷。當該程序執行完畢後,鎖定檔案將會刪除。

重要提醒:萬一你在沒有看到 apt-get 或者 apt 程序的情況下在上面兩個不同的資料夾中看到了鎖定檔案,這是因為程序由於某個原因被殺掉了,因此你需要刪除鎖定檔案來避免該錯誤。

首先執行下面的命令來移除 /var/lib/dpkg/ 資料夾下的鎖定檔案:

  1. $ sudorm/var/lib/dpkg/lock

之後像下面這樣強制重新配置軟體包:

  1. $ sudo dpkg --configure -a

也可以刪除 /var/lib/apt/lists/ 以及快取資料夾下的鎖定檔案:

  1. $ sudorm/var/lib/apt/lists/lock
  2. $ sudorm/var/cache/apt/archives/lock

接下來,更新你的軟體包源列表:

  1. $ sudo apt update
  2. 或者
  3. $ sudoapt-get update

總結一下,對於 Ubuntu(以及它的衍生版)使用者在使用 apt-get 或者 apt 也叫 aptitude 命令時遇到的問題,我們已經用兩種方法來解決了。

你有什麼可以分享出來的有效的方法來處理這個錯誤麼?在下面的評論區聯絡我們。

本文由 LCTT 組織編譯,Linux中國 榮譽推出

相關推薦

Ubuntu-殺掉所有 apt-get 或者 apt 程序& 刪除鎖定檔案

在 Ubuntu 或者它的衍生版如 Linux Mint(我已經作為日常工作使用的系統)中使用 apt-get 命令或者其相對更新的APT 管理工具時,你可能會在命令列中看到一個 unable to lock the administration directory (/var/lib/dpkg/) is a

在ORACLE中批量編譯失效的對象

oracle; 每次數據庫升級之後,都需要對庫中的對象進行重新編譯一下。下面整理出了一個腳本,只需要執行一下就能批量編譯這些失效的對象。需要註意的是:因權限問題,最好是選擇sys用戶來執行這個腳本,如是plsql developer中執行,記得選擇“ALL USERS” [oracle@oracl

leetcode 448 陣列中所有消失的數字

給定一個範圍在  1 ≤ a[i] ≤ n ( n = 陣列大小 ) 的 整型陣列,陣列中的元素一些出現了兩次,另一些只出現一次。 找到所有在 [1, n] 範圍之間沒有出現在陣列中的數字。 您能在不使用額外空間且時間複雜度為O(n

LeetCode:647. Palindromic Substrings(字串中所有的迴文子串)

      Given a string, your task is to count how many palindromic substrings in this string.       The substrings with

【LeetCode】442. Find All Duplicates in an Array 陣列中所有重複項

題目: Given an array of integers, 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and ot

[LeetCode] Find All Duplicates in an Array 陣列中所有重複項

Given an array of integers, 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and others appear once. Find all the elements that ap

[LeetCode] Find All Numbers Disappeared in an Array 陣列中所有消失的數字

Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and others appear once. Find all the elements of [1, n] in

[LeetCode] Find All Anagrams in a String 字串中所有的變位詞

Given a string s and a non-empty string p, find all the start indices of p's anagrams in s. Strings consists of lowercase English letters only and the l

Linux/Unix 怎樣刪除某一時間點的檔案(轉)

在Linux/Unix系統中,我們的應用每天會產生日誌檔案,每天也會備份應用程式和資料庫,日誌檔案和備份檔案長時間積累會佔用大量的儲存空間,而有些日誌和備份檔案是不需要長時間保留的,一般保留7天內的檔案即可,那麼我們怎麼找出並刪除7天前產生的日誌檔案和備份檔案並將其刪除呢?

438 Find All Anagrams in a String 字串中所有的變位詞

Given a string s and a non-empty string p, find all the start indices of p’s anagrams in s. Strings consists of lowercase English

字串的所有子串-Python

給定一個字串,找出其中所有子串,這可能是暴力查找回文的第一步,如:>>> s = 'abc' >>> [s[i:i + x + 1] for x in range(l

怎樣集合中所有子集,怎樣集合中指定元素的所有子集?

集合中的組合演算法 Java 沒有自帶的求一個集合的所有子集的方法,我們可以通過集合的子集規律來求。 思路: 對集合中所有元素進行標記,0表示未選中,1表示選中。 示例: 集合{1,2,3,4},長度為4,則 0000表示一個都不選,0001表示選數集合中第一個元素

程式設計基礎-----1--1000所有完全數

完全數定義是:如果一個數等於除本身之外所有質因數的和,那麼就稱之為完全數. 比如6=1+2+3; 6就是一個完全數。 #include <iostream> using namespace std; void function(int n) { int i

codeforce_894A_字串水_子串所有QAQ可以不連續

“QAQ” is a word to denote an expression of crying. Imagine “Q” as eyes with tears and “A” as a mouth. Now Diamond has given Bort a

Linux/Unix 怎樣刪除某一時間點的文件(轉)

大寫 inux 尋找 tro log bsp 查看 最大的 sort 在Linux/Unix系統中,我們的應用每天會產生日誌文件,每天也會備份應用程序和數據庫,日誌文件和備份文件長時間積累會占用大量的存儲空間,而有些日誌和備份文件是不需要長時間保留的,一般保留7天內的文件即

什麽是僵屍進程?如何清理

示例 com ado 問題 應該 rep 等待 處理 情況下 “僵屍進程Zombie Processes” 僵屍進程就是指:一個進程執行了exit系統調用退出,而其父進程並沒有為它收屍(調用wait或waitpid來獲得它的結束狀態)的進程。 任何一個子進程(init除外

apt-getapt-cache命令實例展示

grub 目錄 特定 p s form transport urg virtual linu 示例:1 列出所有可用包 [email protected]/* */:~$ apt-cache pkgnamesaccount-plugin-yahoojpceph-

apt-get update;apt-get upgrade;apt-get dist-upgrade各自的作用

安裝或升級系統分下面幾個步驟。 第一步,獲得最近的軟體包的列表;列表中包含一些包的資訊,比如這個包是否更新過。 第二步,如果這個包沒有釋出更新,就不管它;             如果釋出了更新,就把包下載到電腦上,並安裝。 apt-get update對應的就是第一步。 apt-get upgrade

Ubuntu命令列的垃圾箱Trash CLI,遠離 rm 命令誤刪除重要檔案的陰影

作為Linux使用者,您可能需要不時從系統中刪除檔案。我們在刪除檔案時往往會保持謹慎,特別是在永久刪除檔案時,因為我們不想永遠錯誤地丟失有用的資訊。不幸的是,有些情況下我們會錯誤地刪除某些內容而無法恢復它。或者,我們打算只刪除資料夾中的檔案,但也錯誤地從子資料夾中刪除檔案。在圖形介面中,事物幾乎可見,並且還有

ACMNO.11 一個數如果恰好等於它的因子之和,這個數就稱為"完數"。 例如,6的因子為1、2、3,而6=1+2+3,因此6是"完數"。 程式設計序N之內的所有完數,按下面格式輸出其因子

寫在前面,心得感悟~ 程式碼越來越有難度! 這個ACM題,我除錯了 將近50次~ 一個小時! 真的是,年紀輕輕的搞什麼ACM呀! 關於題的解決思路放在下面再寫吧! 題目描述 一個數如果恰好等於它的因子之和,這個數就稱為"完數"。 例如,6的因子為1、2、3,而6=1+2+