在稳定的 Debian 上不稳定的 apt-pinning 设置为 -1

在稳定的 Debian 上不稳定的 apt-pinning 设置为 -1

这是我/etc/apt/sources.list在 Debian 8.1 上的样子:

#### stable  #########
deb http://httpredir.debian.org/debian stable main contrib non-free
deb-src http://httpredir.debian.org/debian stable main contrib non-free
deb http://httpredir.debian.org/debian stable-backports main contrib non-free
deb-src http://httpredir.debian.org/debian stable-backports main contrib non-free
deb http://httpredir.debian.org/debian stable-updates main contrib non-free
deb-src http://httpredir.debian.org/debian stable-updates main contrib non-free
deb http://security.debian.org stable/updates main contrib non-free
deb-src http://security.debian.org stable/updates main contrib non-free
#### unstable #########
deb http://httpredir.debian.org/debian unstable main contrib non-free
deb-src http://httpredir.debian.org/debian unstable main contrib non-free

这就是我的样子/etc/apt/preferences

Package: *
Pin: release a=unstable
Pin-Priority: -1

$ sudo apt-get -y -t unstable install foo我的问题是,当我安装 foo 1.9.2并在未来稳定频道获得更新版本(例如 1.9.5)时,会出现什么情况?当我执行此命令时,我的应用程序(及其所有依赖项)是否会更新?

$ apt-get -y update && time apt-get -y dist-upgrade

更新:

这是nginx网站建议的安装方法。这将从不稳定源升级两个包,与我的方法相同:

/etc/apt/sources.list.d/nginx.list

deb http://nginx.org/packages/mainline/debian/ jessie nginx
deb-src http://nginx.org/packages/mainline/debian/ jessie nginx

/etc/apt/首选项

Package: *
Pin: release a=nginx
Pin-Priority: 900

The following packages will be upgraded: libssl1.0.0 perl-base

libssl1.0.0 (1.0.2c-1 Debian:unstable [amd64])
perl-base [5.20.2-3+deb8u1] (5.20.2-6 Debian:unstable [amd64])

我的方法给了我使用其他应用程序的机会。 nginx方式仅升级nginx,加上需要加上行的首选项文件。

答案1

使用此引脚,除非您明确请求,否则永远不会安装不稳定的版本。例如,如果当前安装了 stable 中的 1.9.2,而 stable 现在有 1.9.5,apt-get upgrade则不会升级该软件包。

如果稳定版本发生变化,只要它比已安装的版本更新,就会安装它。如果 1.9.5 进入稳定版,则会安装它。但是,如果稳定版从 1.8.1 升级到 1.8.2,则 1.8.2 将不会安装在您的系统上(同样,除非明确请求)。除非旧版本的优先级高于 1000,否则 Apt 不会自动降级,无论安装的版本的优先级如何——安装软件包时,无论如何安装,安装的版本的优先级都是 500。

依赖关系也是如此。如果 1.9.5 进入不稳定状态并且您明确请求安装,则该软件包将升级到 1.9.5,但前提是已安装的软件包(或来自稳定版本的软件包)满足依赖关系,否则 apt 会抱怨未解决的依赖关系。如果较新版本依赖于 stable 中另一个软件包的较新版本,则其他软件包也只会通过显式请求安装。

相关内容