错误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,文件夹保存各个软件的配置文件列表
解决方案:https://blog.youkuaiyun.com/dyllove98/article/details/8922975
但方案上述过程执行完了之后,仍然会有很多软件包没办法重新安装,需要我们一个个安装,我简单看了一下,提示仍然会有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:安装过程中可能需要输用户密码,以及各种报错的问题,就需要停止程序手动处理了。
ps:针对错误2,如果实在搞不定,重装系统更快!