致远博客

Debian 重装所有包 | 树莓派

dpkg: warning: files list file for package *****

上次按网上的教程修复树莓派一个软件包依赖后,限制安装软件总是会出现这个提示,假设被没有被安装。
查阅Google、CDSN后得到可以通过完整安装所有软件包解决问题。
不过首先最好临时禁用 IPv6,否则有可能找不到某个包的 ipv6 地址。

sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=1

重启后会自动恢复配置。

新建repair.sh:

#!/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"

增加权限并运行:

sudo chmod u+x repair.sh
sudo ./repair.sh


修复的过程中没有提示,请耐心等待!

版权声明:部分转载于CSDN博主「oadaaa」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/p942005405/article/details/86567416

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »