# 500 <= P < 990: causes a version to be installed unless there is a
# version available belonging to the target release or the installed
# version is more recent
Package: *
Pin: release a=stable
Pin-Priority: 900
testing.pref:
# 100 <= P < 500: causes a version to be installed unless there is a
# version available belonging to some other distribution or the installed
# version is more recent
Package: *
Pin: release a=testing
Pin-Priority: 400
unstable.pref:
# 0 < P < 100: causes a version to be installed only if there is no
# installed version of the package
Package: *
Pin: release a=unstable
Pin-Priority: 50
experimental.pref:
# 0 < P < 100: causes a version to be installed only if there is no
# installed version of the package
Package: *
Pin: release a=experimental
Pin-Priority: 1
deb http://ftp.de.debian.org/debian/ stable main contrib non-free
deb-src http://ftp.de.debian.org/debian/ stable main contrib non-free
deb http://security.debian.org/ stable/updates main contrib non-free
testing.list:
deb http://ftp.de.debian.org/debian/ testing main contrib non-free
deb-src http://ftp.de.debian.org/debian/ testing main contrib non-free
deb http://security.debian.org/ testing/updates main contrib non-free
Explanation: Uninstall or do not install any Debian-originated
Explanation: package versions other than those in the stable distro
Package: *
Pin: release a=stable
Pin-Priority: 900
Package: *
Pin: release o=Debian
Pin-Priority: -10
deb http://mirror.aarnet.edu.au/debian/ lenny main
deb-src http://mirror.aarnet.edu.au/debian/ lenny main
deb http://mirror.aarnet.edu.au/debian/ squeeze main
deb-src http://mirror.aarnet.edu.au/debian/ squeeze main
# deb cdrom:[Debian GNU/Linux 6.0.0 _Squeeze_ - Official Multi-architecture amd64/i386 NETINST #1 20110205-14:45]/squeeze main
deb http://ftp.us.debian.org/debian/ 挤压主
deb-src http://ftp.us.debian.org/debian/ 挤压主
deb http://security.debian.org/squeeze/updates main
deb-src http://security.debian.org/squeeze/updates main
# 挤压更新,以前称为 'volatile'
deb http://ftp.us.debian.org/debian/squeeze-updates main
deb-src http://ftp.us.debian.org/debian/squeeze-updates main
# 压缩反向端口
# http://backports.debian.org/Instructions/
deb http://backports.debian.org/debian-backports 挤压反向端口主要
# 不稳定
# http://wiki.debian.org/AptPreferences
deb http://ftp.us.debian.org/debian/ 不稳定的主要
deb-src http://ftp.us.debian.org/debian/ 不稳定主
# 非免费前。太阳爪哇
#deb http://ftp.us.debian.org/debian/ 挤压非免费
#deb-src http://ftp.us.debian.org/debian/ 挤压非免费
# Install aptly.
apt-get install aptly
# Create local mirror (choose a source mirror near you).
aptly mirror create -filter="mirror-contains-no-packages" stretch-roundcube http://httpredir.debian.org/debian stretch main
# Configure filters for local mirror.
aptly mirror edit -filter="Name (% roundcube*)" stretch-roundcube
# Update local mirror.
aptly mirror update stretch-roundcube
# Drop previously published repositories and mirrors, if running these commands in a script.
aptly publish drop stretch
# Drop snapshot, if running these commands in a script.
aptly snapshot drop stretch-roundcube
# Create new snapshot.
aptly snapshot create stretch-roundcube from mirror stretch-roundcube
# Publish snapshot.
aptly publish snapshot -architectures=i386,amd64 -distribution=stretch -component=roundcube -label="Your Name" -origin="Your Name" stretch-roundcube
许多人似乎害怕将稳定与测试混为一谈,但坦率地说,测试本身就相当稳定,并且通过适当的偏好和解决方案检查,您可以避免将核心包置于不稳定路径的“稳定性漂移”。
“测试还算稳定??” , 你问。是的。为了让一个包从不稳定迁移到测试,它必须连续 10 天零开放错误。很有可能,特别是对于更流行的软件包,如果出现问题,有人会提交不稳定版本的错误报告。
即使您不想混合环境,如果您遇到需要比稳定版本更新的版本的东西,也可以在那里选择。
这是我建议的设置:
首先,在 中创建以下文件
/etc/apt/preferences.d
:stable.pref
:testing.pref
:unstable.pref
:experimental.pref
:(不要害怕这里的不稳定/实验性的东西。优先级足够低,以至于它永远不会自动安装任何这些东西。即使是测试分支也会运行,因为它只会安装你想要的包在测试中。)
现在,创建一个匹配集
/etc/apt/sources.list.d
:stable.list
: 从您的原件复制/etc/apt/sources.list
。将旧文件重命名为sources.list.orig
.testing.list
: 与 相同stable.list
,除了testing
。unstable.list
: 与 相同stable.list
,但带有unstable
, 并删除安全列表。experimental.list
: 与 相同unstable.list
,除了experimental
。您也可以添加一个
oldstable
insources.lists.d
和preferences.d
(使用优先级 1),尽管这个名字往往会在下一个稳定周期之前过期并消失。在这种情况下,您可以使用http://archive.debian.org/debian/
和“硬编码”Debian 版本(etch、lenny 等)。要安装包的测试版本,只需使用
aptitude install lib-foobar-package/testing
,或者直接跳到 aptitude 的 GUI 并选择包详细信息中的版本(在您正在查看的包上按 Enter 键)。如果您收到有关包冲突的投诉,请先查看解决方案。在大多数情况下,第一个是“不要安装这个版本”。学习使用每个包的接受/拒绝解析器选项。例如,如果您正在安装 foobar-package/testing,而第一个解决方案是“不安装 foobar-package/testing”,则将该选项标记为已拒绝,其他解决方案将永远不会再转向该路径。在这种情况下,您可能需要安装一些其他测试包。
如果它变得太麻烦(比如它正在尝试升级 libc 或内核或其他一些巨大的核心系统),那么您可以拒绝这些升级路径或完全退出初始升级。请记住,如果您允许,它只会将东西升级到测试/不稳定。
编辑:修复了一些优先级引脚,并更新了列表。
在
/etc/apt/apt.conf.d
添加以下文件99defaultrelease
:in
/etc/apt/sources.list.d
- 添加用于测试/不稳定源的 urlstable.list
:testing.list
:跑
然后安装你需要的东西
如果您安装具有大量依赖项的东西,请非常小心。最好不要在生产中这样做。
您也可以在backports或类似的存储库中试试运气。
apt_preferences
在 /etc/apt/preferences 文件中定义系统应该“安全升级”到的默认级别:
man apt_preferences
apt_preferences 可以做很多事情,但为了简单起见......
我需要安装仅在测试中可用的单个包(autoMysqlBackup)。解决方案是将以下内容添加到 /etc/apt/preferences:
随着多个存储库添加到 /etc/apt/sources.list aptitude 现在只会升级到您指定的版本,即使列出了更高版本的存储库(在本例中为“稳定”)。
因此,要安装该软件包,您所要做的就是:
对于它的价值,我一直看到的一般建议是“不要将稳定的东西与任何东西混合”。大多数混合系统教程都是针对混合测试和不稳定的。
原因似乎是,如果您将稳定与测试混合使用,非常基本的软件包(如 libc6)将需要更新(以便从测试中安装软件),并且一旦这些基本软件包进入测试阶段,整个系统就会朝着这种方向发展。
这里有两种选择:
debian 文档在该主题中非常广泛,我强烈建议深入研究,因为它将真正揭示 debian 系统的美丽。
看看如何保持混合系统,它将解释你需要知道的一切。
另一种可以防止从 Testing 或 Sid 安装过多依赖项的方法是:您告诉 apt-get 从 Testing 或 Sid 获取软件包的源代码,并使用 Debian 工具为您的系统创建一个软件包(无需手动修补有来源)。
从这里引用:
https ://wiki.debian.org/DebianUnstable#How_do_I_backport_a_sid_package_to_testing_or_stable.3F
我已经做了很长一段时间了,以便有信心说它足够安全并且可以方便使用。默认情况下将安装以下安装稳定版本,但是如果需要,Aptitude 还允许您选择反向移植或不稳定版本:
有四点需要编辑,需要设置默认的 pinning release,sources 需要添加 backports 和不稳定,降低 backports/unstable 包的 pinning 优先级,需要修改 aptitude 显示设置以显示 pinning。
etc/apt/preferences
固定文件 - 如果文件不存在,请创建它。如果您选择的软件包更多或将在多台机器上重复安装,您可能会考虑设置一个私有存储库来镜像官方存储库的子集。这需要一些工作来配置存储库,但奖励很容易维护,每个客户端上的配置最少,并且在进行数十次安装时结果可重复。即使只安装一两个软件包,我也觉得这很有帮助,并使用这种方法来自动化和维护云安装。廉价 VPS 上的单个服务器可以处理数十个私有存储库。
要配置您的私有存储库服务器:
然后配置您选择的 Web 服务器以提供静态存储库文件。可能使用安全证书和基本身份验证来保护存储库。
要自动维护您的私有存储库并从上游提取更新,请将上述内容放入脚本并从 cron 作业运行。
要配置您的客户端计算机,请在您的客户端计算机上:
要维护您的客户端计算机并在您的客户端计算机上提取所有私有存储库更新:
另一种选择是从测试中下载源包。APT 可以在下载后自动构建源包。这样,您的稳定包将不会受到测试更新的影响。唯一的权衡是它比仅仅下载和安装二进制包需要更多的时间。
要配置 APT 以从测试中下载源包,只需添加:
如果您只想关注当前的测试而不是未来的测试,请将“testing”替换为当前的代号(在撰写本文时它是“buster”)
为了避免混合稳定/测试/实验,我所做的是在我的 Debian 稳定系统的目录中安装一个 Debian Sid
debootstrap
,然后我可以使用我想要的工具。在这个例子中,我需要一个最近的xmllint
工具(XML
处理)。为此,这就是我所做的:
现在,我可以退出
chroot
并使用库,“hacking”LD_LIBRARY_PATH
特定的动态加载库。在
~/.bashrc
:现在,当我运行时
xmllint
,我有 2.9.10 版本的libxml2-utils
. (2019 与 2016 版本)。优点:
sid
),这样,随机软件仍然足够兼容缺点:
.bashrc