1. 程式人生 > >linux安裝軟體包錯誤

linux安裝軟體包錯誤

錯誤1:

E: 無法獲得鎖 /var/lib/apt/lists/lock - open (11: 資源暫時不可用) E: 無法對目錄 /var/lib/apt/lists/ 加鎖

問題原因:另外一個程式正在執行,導致資源被鎖不可用

解決方案:

1.ps-aux 查出apt-get程序的PID,通常是一個四位數字。

2.用sudo kill PID程式碼 殺死程序

3.用sudo apt-get update,sudo apt-get dist-upgrade升級。

錯誤2:dpkg:警告:無法找到軟體包×××的檔名列表檔案,現假定該軟體包目前沒有任何檔案被安裝在系統裡。

問題原因:誤刪了/var/lib/dpkg/infoinfo,資料夾儲存各個軟體的配置檔案列表

但方案上述過程執行完了之後,仍然會有很多軟體包沒辦法重新安裝,需要我們一個個安裝,我簡單看了一下,提示仍然會有100多個包,如果逐個採用sudo apt-get install ××× --reinstall安裝,太麻煩了,因此,下面提供一個程式自動安裝。

step1:將終端terminal中的資訊複製到pkg.txt檔案中

step2:在與pkg.txt的同一目錄下建立reinstall.py程式,程式程式碼如下:

# -*- coding: UTF-8 -*-
import os 

def read_pkg(pkg_file):
    pkg_list = []
    with open(pkg_file) as f_r:
        lines = f_r.readlines()
        for line in lines:
            pkg_name = line.split("無法找到軟體包 ")[-1].split(" 的檔名列表檔案")[0]
            if ":amd64" in pkg_name:
                pkg_name=pkg_name.split(":amd64")[0]
            pkg_list.append(pkg_name)
    return pkg_list

def run_reinstall_pkg(pkg_list):
    for pkg_name in pkg_list:
        os.system("sudo apt-get install "+pkg_name+" --reinstall")

if __name__=="__main__":
    pkg_file="pkg.txt"
    pkg_list = read_pkg(pkg_file)
    run_reinstall_pkg(pkg_list)

step3:安裝過程中可能需要輸使用者密碼,以及各種報錯的問題,就需要停止程式手動處理了。