我想uwsgi
在我的 Debian 服务器上安装。这个包要升级一些核心包:
libc6
从 2.11.3-3(现在,稳定)-> 2.13-35initscripts
从 2.88dsf-13.1+squeeze1(现在,稳定)-> 2.88dsf-13.3
我可以安全地执行此操作吗?或者有没有办法在不升级 libc6 的情况下安装此软件包?我的文件中有以下内容/etc/apt/preferences
:
Package: *
Pin: release a=stable
Pin-Priority: 1001
Package: *
Pin: release a=testing
Pin-Priority: 60
Package: *
Pin: release a=unstable
Pin-Priority: 50
Package: fabric
Pin: release a=unstable
Pin-Priority: 2000
答案1
看起来您正尝试在稳定安装上安装测试发行版中的软件包。这几乎永远不会起作用,因为测试包将从测试中引入大量库和其他包。您最终将得到一个混合的稳定/测试系统,这比纯测试更难维护,因为您会遇到更多冲突和缺少依赖项。请记住,测试不会像稳定那样快速获得安全更新,在服务器上使用它不是一个好主意。
如果您需要一个稳定版上不可用的特定软件包(例如 uwsgi),我建议从源代码编译它。通常,在稳定版上重新编译源代码就可以了;包中的最小库依赖是根据您安装的开发包版本生成的。或者,您可以寻找向后移植:来自测试的包已被重新编译为稳定版本。
对于 uwsgi,没有官方向后移植,但有非官方的。看来从源代码编译需要一些小的修改和 libjansson 向后移植。请记住,无论您是从源代码编译还是使用其他人的二进制文件,您都不会获得安全更新,因此请注意上游的安全公告。
答案2
安装很好,混合稳定/测试通常也很好——这就是依赖项的用途,以确保所有内容都获得所需的版本。
吉尔斯不正确:测试做获取安全更新。看 ”如何处理测试的安全性?unattended-upgrades
” 在 Debian FAQ 中了解详细信息。如果您希望自动安装它们,您可能需要调整配置等内容。
然而, 你的/etc/apt/preferences
将要导致混合稳定/测试系统出现问题,因为您将优先级设置得太高。仔细阅读apt_preferences(5)
手册页,特别是“APT 的默认优先级分配”部分。基本上,设置Pin-Priority: 1001
是stable
说“安装来自 的版本stable
,即使它是从 安装的软件包的降级testing
”。降级通常是 中不受支持的操作,但更糟糕的是,这意味着每当您尝试安装来自 的apt
软件包的较新版本时,您都会不断遇到问题,而您会尽力重新安装旧版本。这将很快导致吉尔斯提到的“冲突和缺失的依赖关系”。上一个libc
testing
apt
正确配置的系统混合分布很好。
您实际想要使用的数字更接近:
Package: *
Pin: release a=stable
Pin-Priority: 200
Package: *
Pin: release a=testing
Pin-Priority: 80
Package: *
Pin: release a=unstable
Pin-Priority: 50
关键是stable
应该设置在100-500之间,并且testing
应该在1到100之间。