当前正在运行 Debian Lenny (5.0.9)。我添加了以下测试存储库来安装特定包;
deb http://ftp.debian.org/debian/ testing main contrib
deb-src http://ftp.debian.org/debian/ testing main contrib
但是,现在当我去安装另一个包(libc6-dev)时,结果如下;
The following packages are BROKEN:
libc6-dev
The following NEW packages will be installed:
binutils{a} cpp{a} cpp-4.3{a} gcc{a} gcc-4.3{a} libgmp3c2{a} libgomp1{a}
libmpfr1ldbl{a} libtool linux-libc-dev{a}
The following packages are RECOMMENDED but will NOT be installed:
libltdl3-dev
0 packages upgraded, 11 newly installed, 0 to remove and 1 not upgraded.
Need to get 13.6MB of archives. After unpacking 39.7MB will be used.
The following packages have unmet dependencies:
libc6-dev: Depends: libc6 (= 2.7-18lenny7) but 2.13-21 is installed.
The following actions will resolve these dependencies:
Keep the following packages at their current version:
libc6-dev [Not Installed]
libtool [Not Installed]
Score is -9872
我怎样才能修复这个问题?
答案1
不要使用 lenny (oldstable!) 中的测试包。如果强制这样做,您的系统将陷入困境。
你这样做的原因是什么?你想升级哪个软件(升级到哪个版本?)
答案2
您现在已将系统部分升级到测试版,跳过了稳定版本 (squeeze)。强烈不建议这样做。以下是我推荐的选项:
升级到 squeeze(当前“稳定”),然后升级到 wheezy(当前“测试”)。您将至少在 wheezy 发布为稳定版本之前运行测试。如果机器是面向互联网的服务器,或者生产机箱,这不是一个好选择。测试无法及时获得安全更新,并且经常中断。如果您希望这样做,您应该首先遵循 lenny => squeeze 升级说明发行说明第 4 章.然后推断出从挤压到喘息的类似过程。
重新安装 lenny:备份您的数据和配置,使用 记录已安装的软件包
aptitude search -F '%p' '~i!~M'
,获取一些安装介质,从头开始安装,恢复您的软件包,恢复您的数据和配置。很难推荐重新安装 lenny,因为它将在二月份终止使用,届时它将停止接收安全(或其他)更新。从头安装 Squeeze:再次备份数据/配置,重新安装,恢复内容。Squeeze 是当前稳定版本,值得选择。
使用您的 frankendebian:如果您需要 libc6-dev,您还必须从测试中安装它。您将运行不推荐的、不经常测试的配置,可能会出现问题。
尝试降级:使用 apt-show-versions 识别计算机上安装的内容,并尝试降级这些软件包(请参阅下面的注释!)。获取这些软件包的列表,使用 识别其当前的 lenny 版本
apt-cache policy packagename
,然后运行aptitude install package1=thelennyversion package2=thelenyversion...
列出所有需要降级的软件包。这可能根本不起作用,请参阅下面的注释。请注意,当 aptitude 考虑了一段时间并提出了一个关于如何解决依赖关系的解决方案时,它会提示您“您想接受这个解决方案吗?(Yn)”,您可以说“否”,表示“尝试寻找其他解决方案”。
不幸的是,debian 不支持降级软件包。有时,对于某些软件包,降级可能在没有配置更改或没有二进制文件更改格式的版本之间工作,但这取决于软件包附带的脚本中发生的情况,以进行安装/升级/删除。您遇到问题的软件包 (libc6) 是系统上最基本的软件包,几乎所有东西都依赖于它。