dpkg 的/var/lib/dpkg/info文件出现问题解决办法

本文介绍了当dpkg的/var/lib/dpkg/info文件夹出现问题时,如何通过重新下载软件包并提取信息来解决。同时,针对x11-common存在空文件列表的状况,提供了编辑/var/lib/dpkg/status文件并重新安装的解决步骤。这是一个针对Ubuntu系统的系统维护和修复指南。
摘要由CSDN通过智能技术生成

1、dpkg 的/var/lib/dpkg/info文件夹的解决办法、删除之后、可以找一个同样版本的ubuntu系统把他的拷贝到自己的电脑、但是我认为过于麻烦
2、执行下面的脚本:

#!/bin/bash
set -e

# Clean out /var/cache/apt/archives
apt-get clean
# Fill it with all the .debs we need
apt-get --reinstall -dy install $(dpkg --get-selections | grep '[[:space:]]install' | cut -f1)

DIR=$(mktemp -d -t info-XXXXXX)
for deb in /var/cache/apt/archives/*.deb
do
    # Move to working directory
    cd "$DIR"
    # Create DEBIAN directory
    mkdir -p DEBIAN
    # Extract control files
    dpkg-deb -e "$deb"
    # Extract file list, fixing up the leading ./ and turning / into /.
    dpkg-deb -c "$deb" | awk '{print $NF}' | cut -c2- | sed -e 's/^\/$/\/./' > DEBIAN/list
    # Figure out binary package name
    DEB=$(basename "$deb" | cut -d_ -f1)
    # Copy each control file into place
    cd DEBIAN
    for file in *
    do
        cp -a "$file" /var/lib/dpkg/info/"$DEB"."$file"
    done
    # Clean up
    cd ..
    rm -rf DEBIAN
done
rmdir "$DIR"
  1. vim 脚本.sh <新建一个脚本>
  2. 然后复制上面内容到该脚本文件
  3. 执行该脚本:sh 脚本.sh

原理是重新下载所有安装过的软件包,然后从中提取文件列表信息复制到info文件夹里

3、执行完毕后可能会提示x11-common有空文件列表,当然你也可以去其他同版本的拷贝一份,但是我的解决办法是编辑/var/lib/dbkg/status文件,找到开头为 Package: x11-common的那一段,然后删除,再重新安装,代码如下:

sudo gedit  /var/lib/dpkg/status
然后按快捷键: ctrl + f   “去搜索Package: x11-common”
//删除之后
sudo apt-get --reinstall install x11-common

就没有什么问题了

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值