以前知道debian的包管理支持将软件包降级,但是一直没弄明白怎么搞。这次找了一下,发现以前的文档没了,取而代之的是debianwiki——debian6发布后的网站大改版。
debian的apt支持多个不同版本的软件源共存在一台机器上面,还起了个名字叫apt-pinning。举个例子说就是,你可以在testing上用unstable的软件,或者是在unstable上用stabe的软件,而不必将整个系统升级(或重装)。不过一旦使用了apt-pinning,你得需要自己负责管理软件之间的兼容性,换言之,这种用法打破了apt的管理规则。
可见,将一个软件包降级只是apt-pinning的一个特例。
背景知识介绍完毕。来具体的说一下如何操作。
要将libc6降级,我们需要用到两个文件:
/etc/apt/sources.list
/etc/apt/preferences
sources.list的内容不必多说了。主要就是这个preferences。这个文件默认是没有的,需要自己创建一个。
这里只是想对libc6进行降级,只需要在preferences里添加如下内容:
Package: *apt会根据Pin-Priority的值来决定是从unstable还是testing还是stable中获得软件包。当Pin-Priority大于1000的时候,apt将允许软件包降级。
Pin: release a=testing
Pin-Priority: 1001
如此保存退出
apt-get update
apt-get upgrade
就会提示将有多少个包被降级。看好了,如果显示要降级的软件包没问题的话,按Y就会开始下载降级了。
关于preferences的更详细的说法和更多的例子,请看参考资料[1]
参考资料:
1. http://wiki.debian.org/AptPreferences