#language zh_CN ~-[[DebianWiki/EditorGuide#translation|Translation(s)]]: English - [[zh_CN/AptPreferences|简体中文]] -~ ---- 这篇文章简述了如何使用APT Preferences,目前这里只有APT Pinning文档 (译者注) <> <> == Pinning == 考虑开始APT Pinning之前,请留意了解是否你想要的软件包已经被[[Backports|backported]] 到当前你使用的发行版本。 注意 使用apt-pinning的时候,你必须自己为这些软件包的兼容性负责,因为Debian及其社区对你这种行为所造成的后果不承担任何责任。请记住,APT Pinning不是必须的,而且Debian及其社区也不鼓励对APT Pinning不经过充分考量的鲁莽使用的行为。 Pinning允许你安装和运行来自某个版本的的软件包 (stable, testing, unstable),而不必要升级整个系统到此版本。 然而,从较新的发行频道拉取软件包要比直接从库里面拉取容易,但是,你可能把你的系统搞的一团糟,比如,混合了来自stable的缺陷的同时,从unstable/testing来的软件包又带来了新的缺陷,而对这些缺陷的安全支持,补丁修复什么的都没有像stable频道那么有力。最终可能得到一个两头不讨好的结果。 最基础的APT Pinning涉及两个文件 {{{/etc/apt/sources.list}}} 和 {{{/etc/apt/preferences}}}. 另一个额外的角色由在 {{{apt.conf}}} (或者 {{{/etc/apt/conf.d/...}}} 文件内设置 或者在 {{{apt}}} 命令行指定的 ''target release'' 来扮演。 === /etc/apt/sources.list === {{{ #### testing ######### deb http://ftp.us.debian.org/debian testing main contrib non-free }}} {{{ #### unstable ######### deb http://ftp.us.debian.org/debian unstable main contrib non-free }}} 在这个例子里面,我们将从 ''testing'' 和 ''unstable'' 频道里面获取软件包,但是,当然也可以适当修改设置使其可以从 ''stable'' 频道获取软件包。 === /etc/apt/preferences === 'preferences' 文件是 ''pinning'' 行为的关键. 这里是一个例子。 {{{ Package: * Pin: release a=testing Pin-Priority: 900 }}} {{{ Package: * Pin: release a=unstable Pin-Priority: 800 }}} '''Package''' 默认是所有(*)软件包 '''Pin''' 定义所处的发行频道 (''testing'' 还是''unstable''). '''Pin-Priority''' 定义优先级 'apt-get' 默认按照“高版本软件包优先”的原则处理事务。上述规则重新定义了优先级,因此,在这个配置下,''testing'' 频道的软件包获得最高优先级。 其他未尽事宜,请参阅 apt_preferences(5) 手册. === 从 unstable 频道安装软件包 === 假设我们正处在 ''testing'' 频道 而且 我们希望尝鲜某个 ''unstable'' 频道的软件包(e.g. enlightenment)。有两种安装方法。 {{{ # apt-get install enlightenment/unstable # apt-get -t unstable install enlightenment }}} (译者推荐第一种方法,熟悉pacman的同学应该也会喜欢第一种) 第一种方法尝试不升级现有的系统软件包,因此,如果依赖不满足,安装会失败。 第二种方法会尝试安装或者升级任何依赖的软件包,当然,处理这一切之前,'apt-get' 都会问你。 == References == * [[DebianMan:5/apt_preferences|apt_preferences(5)]] {{{man 5 apt_preferences}}} * [[http://www.debian.org/doc/manuals/apt-howto/ch-apt-get.en.html#s-pin|Apt-Howto]] (Section 3.10) and AptPinning. * This link seems to have more detailed explanation: http://www.xs4all.nl/~carlo17/howto/debian.html#errata * [[http://web.archive.org/web/20101113053904/http://jaqque.sbih.org/kplug/apt-pinning.html|Apt-Pinning for Beginners (wayback machine)]] - a good reference, and heavily borrowed from. * http://www.argon.org/~roderick/apt-pinning.html * [[http://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_tweaking_candidate_version|Debian Reference on apt-pinning]]