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升级。

错误2dpkg:警告:无法找到软件包×××的文件名列表文件,现假定该软件包目前没有任何文件被安装在系统里

问题原因:系统安装软件过程遗留很多东西,导致出现了上述的问题,/var/lib/dpkg/info,文件夹保存各个软件的配置文件列表

解决方案:https://blog.csdn.net/dyllove98/article/details/8922975

sudo mv /var/lib/dpkg/info /var/lib/dpkg/info_old #现将info文件夹更名
sudo mkdir /var/lib/dpkg/info     

但方案上述过程执行完了之后,仍然会有很多软件包没办法重新安装,需要我们一个个安装,我简单看了一下,提示仍然会有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:安装过程中可能需要输用户密码,以及各种报错的问题,就需要停止程序手动处理了。

注意:针对错误2,如果实在搞不定,重装系统更快!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心惠天意

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值