事情的经过是这样的。我把源列表里面的breezy改成dapper,update之后又想改回breezy了。我不想用dapper,因为里面的tetex是3.0,breezy里面是2.0,升级到3.0后配置好的cjk就不能用了。但是debian并不提供系统的降级,在aptitude里面仍然显示所有要升级的软件包。于是我在/var/lib/dpkg/和/var/cache/apt/里面都执行了rm -rf *,清空前一个目录时本想备份一下,但觉得不会出什么大问题就直接删除了,这样dpkg包管理系统的信息就都没有了。
之后我在aptitude里面安装新软件时出错:
debconf: apt-extracttemplates failed: Bad file descriptordebconf是安装了的,只是包管理系统里面没有关于debconf的信息。于是我新建了/var/lib/dpkg/status这个文件,在里面添加了debconf的信息。这个错误没有了,但是还有下面的错误:
E: Cannot get debconf version. Is debconf installed?
unable to create updated files list file for package ....不知道怎么解决,后来找到了一个恢复包管理系统的脚本,运行了一下有错,出错的地方正好是建目录的一段,那里正是新建我删掉的目录的地方。于是我手动创建了删掉的目录:
/var/cache/apt/archives另外/var/lib/dpkg/status和available这两个文件我之前已经创建了。之后在aptitude里面就可以安装包了。不过aptitude里面显示所有包都是未安装的,包括之前已经安装的,不过这并不影响这些程序的使用。
/var/cache/apt/archives/partial
/var/lib/dpkg/info
/var/lib/dpkg/parts
/var/lib/dpkg/alternatives
/var/lib/dpkg/methods
/var/lib/dpkg/updates
今天是心情比较急,删了明明知道不能删除的东西,但愿这样的蠢事以后不会发生了。
没有评论:
发表评论