发布网友 发布时间:2022-04-23 09:48
共1个回答
热心网友 时间:2022-06-18 21:16
今天安装软件时时,出现这样的错误提示:E: Sub-process /usr/bin/dpkg returned an error code (1)上网查解决方案,被网上误导,一不小心误删了dpkg的info文件夹,之后在使用apt-get 或者 dpkg命令总是提示dpkg:警告:无法找到软件包 ******* 的文件名列表文件,现假定该软件包目前没有任何文件被安装在系统里上网查了一下,info文件夹保存各个软件的配置文件列表,真是粗心大意啊。试了很多网上传说的方法都不好用,只好祭出谷歌神器,终于在国外的一个文章中找到了解决方案执行下面的脚本#!/bin/bashset -e# Clean out /var/cache/apt/archivesapt-get clean# Fill it with all the .debs we needapt-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/*.debdo# Move to working directorycd $DIR# Create DEBIAN directorymkdir -p DEBIAN# Extract control filesdpkg-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 nameDEB=$(basename $deb | cut -d_ -f1)# Copy each control file into placecd DEBIANfor file in *docp -a $file /var/lib/dpkg/info/$DEB.$filedone# Clean upcdrm -rf DEBIANdonermdir $DIR原理是重新下载所有安装过的软件包,然后从中提取文件列表信息复制到info文件夹里。执行完毕后提示x11-common有空文件列表,原因不明,只能执行替换法了,从别的ubuntu上拷贝了x11-common的文件,但是依然提示dpkg警告,例如chrome的,对于这些软件只好手动安装了,手动重新安装chrome和WPS之后问题解决apt-get和dpkg终于没有警告了。(完)