dpkg 退出并解析文件`/var/lib/dpkg/status` 时出错,该怎么办?

Cha*_*ndu 13 dpkg

当我尝试安装任何软件时,都会遇到此错误,因此无法更新。

Preconfiguring packages ...
dpkg: error: parsing file '/var/lib/dpkg/status' near line 51245 package 'oracle-xe':
 mixed non-coinstallable and coinstallable package instances present
N: Ignoring file 'gcl' in directory '/etc/apt/sources.list.d/' as it has no filename extension
N: Ignoring file 'gcl' in directory '/etc/apt/sources.list.d/' as it has no filename extension
E: Sub-process /usr/bin/dpkg returned an error code (2)
Run Code Online (Sandbox Code Playgroud)

Bra*_*iam 30

幸运的你!你有备份!更重要的是,它们每天都是在你不知情的情况下制作的!因此,要恢复文件只需运行:

sudo rm /var/lib/dpkg/status
sudo cp /var/backups/dpkg.status.0 /var/lib/dpkg/status
sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

完毕!

如果您需要更旧的文件,还有更多可供选择:

ls /var/backups/dpkg.status*
/var/backups/dpkg.status.0     /var/backups/dpkg.status.4.gz
/var/backups/dpkg.status.1.gz  /var/backups/dpkg.status.5.gz
/var/backups/dpkg.status.2.gz  /var/backups/dpkg.status.6.gz
/var/backups/dpkg.status.3.gz
Run Code Online (Sandbox Code Playgroud)

只需使用gunzip以下命令解压缩它们:

gunzip -c /var/backups/dpkg.status.6.gz > /var/lib/dpkg/status
Run Code Online (Sandbox Code Playgroud)

如果备份不好,另一种方法是列出doc目录内容:

sudo -i
ls /usr/share/doc | \
      grep -v [A-Z] | \
      grep -v '^texmf$' | \
      grep -v '^debian$' | \
      awk '{print $1 " install"}' | \
      dpkg --set-selections
Run Code Online (Sandbox Code Playgroud)

http://www.debianhelp.co.uk/debianproblem.htm

  • 谢天谢地,我还有一个旧状态要做恢复。cp 到右边后,输入 sudo dpkg --configure -a 解决所有问题!谢谢! (2认同)