每当我尝试使用dpkg
或 时apt-get
,都会收到警告:
dpkg: warning: parsing file '/var/lib/dpkg/available' near line 12674 package 'jarnal':
error in Version string 'build901': version number does not start with digit
查看/var/lib/dpkg/available
文件,我找到了条目
Package: jarnal
Priority: optional
Section: non-free
Maintainer: David K. Levine <[email protected]>
Architecture: all
Version: build901
Depends: sun-java5-jre | sun-java6-jre
Recommends: sun-jai, sun-jai-imageio
Size: 11217466
Description: a Java Notetaker and PDF Annotator... <snip>
对应/DEBIAN/control
于jarnal-build918_all.deb。我大约一年前(升级到 11.04 之前)安装了这个软件包,但无法使用 apt 或 dpkg 或各种前端删除它。
locate
找到安装在中的文件/usr/lib/jarnal/
,但它看起来不完整 - 我认为它可能是卸载失败 - 因为我记得曾经玩过它,所以它一定是在某个时候正确安装的。
无论如何,我怎样才能从我的系统中干净地删除 apt/dpkg 存储的文件和数据?
答案1
编辑/var/lib/dpkg/available
并将软件包的行/var/lib/dpkg/status
更改为 dpkg 喜欢的内容,例如。Version:
jarnal
0build901
如果文件中没有条目status
,则根据定义,您没有安装该软件包。卸载可能失败,并且您没有正确完成清理;检查是否有文件/var/lib/dpkg/info/jarnal.*
。如果安装了软件包,应该有一个文件,jarnal.list
其中包含软件包提供的文件列表。如果您手动删除格式错误的软件包,则无需担心中的其他文件/var/lib/dpkg/info
。
答案2
如果这些是针对未安装的软件包,只需运行sudo dpkg --clear-avail
(以下这)
答案3
您可以备份该available
文件,然后清空它(将其留在那里,但是是空的)。
apt-get
根本不需要该文件,dpkg
有时会使用它作为参考,但这不是必需的,并且它会在一段时间后再次填充它。
另一种选择是手动jarnal
从available
文件中删除有问题的条目。