WSL无法更新/安装软件

E: Sub-process /usr/bin/dpkg returned an error code

再执行完 apt -y update后中断过程,却发现怎么也无法正常使用apt命令了?

起因

吃灰的国内机器也装了WSL,再使用更新命令 apt -y update 后发现进度奇慢,这才想起哦,还没换源呢……就 ctrl +c 中断,后面的就这样了,更新啥、安装啥,均提示上面的错误。

解决方法

删除 /usr/bin/dpkg  ,然后使用更新和修复命令。

1.1 备份

为了不必要的麻烦,一般都是习惯性的使用 mv 来替代 rm -rf,毕竟后者的威力太大。

mv /var/lib/dpkg/info /var/lib/dpkg/info.bk

1.2 新建

然后新建一个info

mkdir /var/lib/dpkg/info

1.3 更新 & 修复依赖

apt -y update && apt install -f

1.4 移动文件

将新生成的文件,移动到 原先的info  目录下。

mv /var/lib/dpkg/info/* /var/lib/dpkg/info.bk

1.5 删除 & 还原

删除掉创建的 info 目录,同时将移动更名的 info.bak  目录还原为 info 目录

 rm -rf /var/lib/dpkg/info && mv /var/lib/dpkg/info.bk /var/lib/dpkg/info

碎碎念

不赶时间的话,没事还是别手动乱中断……

附更换国内源

比如,Debian11系统可以凉心云国内的 Debian11 源。使用前建议习惯性的 cp一份 sources.list

使用方式:将以下一起复制到ssh窗口中回车执行。

cat > /etc/apt/sources.list <<EOF
deb http://mirrors.tencent.com/debian bullseye main
deb http://mirrors.tencent.com/debian bullseye-updates main
deb http://mirrors.tencent.com/debian-security bullseye-security main
deb http://mirrors.tencent.com/debian bullseye-backports main
EOF
阅读剩余
THE END