it-swarm.cn

如何运行Debian稳定版,但安装一些测试包?

假设您正在运行服务器,并且不想从Stable(Lenny)升级到Testing(Squeeze)以仅安装所需的一两个软件包。

从测试中仅安装某些软件包的最佳方法是什么?

210
Gareth

apt_preferences

在/ etc/apt/preferences文件中定义系统应“安全升级”的默认级别:
man apt_preferences

Apt_preferences可以做很多事情,但是为了简单起见...

我需要安装仅在Testing中可用的单个软件包(autoMysqlBackup)。解决方案是将以下内容添加到/ etc/apt/preferences中:

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

在将多个存储库添加到/etc/apt/sources.list的情况下,即使列出了更高版本的存储库(在本例中为“稳定”),aptitude现在也只能升级到指定的发行版。

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

因此,要安装该软件包,您要做的就是:

$ aptitude install -t testing packageName 
49
Gareth

许多人似乎害怕将稳定与测试混为一谈,但是坦率地说,测试本身是相当稳定的,并且通过适当的首选项和解决方案检查,您可以避免将核心程序包置于不稳定路径上的“稳定性漂移”。

“测试相当稳定?”,您问。是。为了使程序包从不稳定状态迁移到测试状态,它必须连续10天具有零个打开的错误。很有可能,特别是对于比较流行的软件包,如果出现问题,有人会提交有关不稳定版本的错误报告。

即使您不想混合使用环境,也可以在其中进行选择,以防万一遇到需要比稳定版本更高的版本的情况。

这是我建议设置的内容:

首先,在_/etc/apt/preferences.d_中创建以下文件:

_stable.pref_

_# 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
_

(不要担心这里的不稳定/实验性的东西。优先级很低,因此它永远不会自动安装任何东西。即使测试分支也可以正常工作,因为它只会安装您想要的软件包。在测试中。)

现在,为_/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

您也可以在_sources.lists.d_和_preferences.d_中添加oldstable(使用优先级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或内核或其他大型核心系统),那么您可以拒绝这些升级路径,也可以完全退出初始升级。请记住,如果您允许,它只会将内容升级到测试/不稳定。

编辑:修复了一些优先级的引脚,并更新了列表。

187
Brendan Byrd

/etc/apt/apt.conf.d添加以下文件

99defaultrelease

APT::Default-Release "stable";

/etc/apt/sources.list.d-添加用于测试/不稳定来源的网址

stable.list

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

apt-get update

然后安装你需要的东西

apt-get -t testing install something

如果您安装具有大量依赖关系的内容,请非常小心。最好不要在生产中这样做。

您也可以在 backports 或类似的存储库中试试运气。

102
pQd

对于它的价值,我一直看到的一般建议是“不要将稳定与任何东西混合在一起”。大多数混合系统教程都是针对混合测试和不稳定的。

原因似乎是,如果将稳定测试与测试结合使用,则非常基本的软件包(如libc6)将需要更新(以便从测试中安装软件),并且一旦这些基本软件包移至测试中,整个系统便会以这种方式漂移。

这里有两种选择:

  1. 使用 Backports
  2. 从测试中安装源代码行,然后尝试 从源代码构建您想要的更高版本
13
Telemachus

关于debian的文档涉及到这个主题,因此我强烈建议Dig参加,因为它将真正揭示debian系统的美丽。

看看 如何保持混合系统 ,它将说明您需要了解的所有内容。

12
tomdeb

另一种方法可以防止安装来自Testing或Sid的过多依赖关系,这是:您告诉apt-get从Testing或Sid获取软件包的源,并使用Debian工具为系统创建软件包(无需手动修补)来源)。

从这里引用:
https://wiki.debian.org/DebianUnstable#How_do_I_backport_a_sid_package_to_testing_or_stable.3F

如何将sid包反向移植到测试版或稳定版?

安装Debian源代码(以及开发工具,尤其是debhelper,devscripts和build-essential),然后构建软件包。

一步步:

add a deb-src line for sid to your sources.list

apt-get update

apt-get build-dep PACKAGE_NAME

apt-get -b source PACKAGE_NAME 

产生的debs应该在当前目录中,并且可以与dpkg -i the.deb一起安装。

7
gerlos

我已经做了很长时间了,可以自信地说它足够安全并且可以方便使用。在以下设置中,默认情况下将安装稳定版本,但是如果需要,Aptitude还可以让您选择向后移植或不稳定的版本:

enter image description here

有四件事需要编辑,需要设置默认的锁定版本,源需要反向移植和添加不稳定,降低反向移植/不稳定软件包的锁定优先级,并且需要修改能力显示设置以显示锁定。

  • 创建'/ etc/apt/apt.conf.d/10defaultrelease'并使其内容如下:
 Apt :: default-释放“稳定”; 
  • 编辑'/ etc/apt/sources.list'以添加不稳定的源和向后移植的源,因此如下所示:
#deb cdrom:[Debian GNU/Linux 6.0.0 _Squeeze_-官方多体系结构AMD64/i386 NETINST#1 20110205-14:45] /挤压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 
 
#squeeze-update ,以前称为“易失性” 
 deb http://ftp.us.debian.org/debian/ squeeze-updates main 
 deb-src http://ftp.us.debian.org/debian/squeeze-updates main 
 
#压缩backports 
#http://backports.debian.org/Instructions/
deb http:// backports。 debian.org/debian-backports squeeze-backports main 
 
#不稳定
#http://wiki.debian.org/AptPreferences
deb http:// ftp.us.debian.org/debian/不稳定的main 
 deb-src http://ftp.us.debian.org/debian/不稳定的main 
 
#非免费版。 Sun Java 
#deb http://ftp.us.debian.org/debian/挤压非自由
#deb-src http://ftp.us.debian.org/debian/挤压非自由
  • 编辑etc/apt/preferences固定文件-如果文件不存在,请创建它。
#包固定优先级
#请参阅http://wiki.debian.org/AptPreferences和http://manpages.debian.net/cgi-bin/man.cgi?query=apt_preferences 
#
#在螺母外壳中最高PIN已安装
#
#固定默认值如下,除了我们的设置:
#990-对于未安装但确实属于我们的APT :: Default-Relase“ stable”设置的版本。
#500-对于未安装并执行的版本不属于目标发行版
#100-对于已安装的软件包,这也意味着同一软件包的其他版本
#1-对于实验性软件包;带有“ NotAutomatic:yes”的软件包
#
#我们的固定
#400-可以安全安装的反向端口,而无需更新其他软件包。
#50-不稳定的软件包,请在详细信息屏幕中强制安装,可能会导致冲突
 
包装:* 
 Pin:释放n =压缩后退端口
 Pin-P riority:400 
 
包装:* 
 Pin:释放a =不稳定
  • 创建'/ etc/apt/apt.conf.d/100guiconf'并设置Aptitude,使其显示固定信息。
 Aptitude :: UI :: Package-Display-Format“%c%a%M%p%Z%v%V%i”; 
4
Daniel Sokolowski

如果您选择的软件包更多,或者将在多台计算机上重复安装,则可以考虑设置一个私有存储库,该私有存储库可镜像一部分正式存储库。这需要一些工作来配置存储库,但是通过在每个客户端上进行最少的配置以及在进行数十次安装时获得可重复的结果,就很容易维护回报。即使仅安装一个或两个软件包,我也认为这很有用,并使用此方法来自动化和维护云安装。廉价VPS上的单个服务器可以处理数十个私有存储库。

要配置私有存储库服务器:

# 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

然后配置您选择的Web服务器以提供静态存储库文件。可能通过安全证书和基本身份验证来保护存储库。

要自动维护您的私有存储库并从上游获取更新,请将以上内容放入脚本中并从cron作业中运行。

要配置客户端计算机,请在客户端计算机上:

# Configure private repository without authentication.
echo 'deb http://private.repository.example.com/ stretch roundcube' > /etc/apt/sources.list.d/private.repository.example.com.list

# Configure private repository with authentication.
echo 'deb https://hostname:[email protected]/ stretch roundcube' > /etc/apt/sources.list.d/private.repository.example.com.list
apt-get install apt-transport-https

# Update.
apt-get update

# Install package.
apt-get install roundcube

要维护客户端计算机并提取所有私有存储库更新,请在客户端计算机上:

# Update.
apt-get update

# Upgrade.
apt-get upgrade
2
Monica For CEO

另一种选择是从测试中下载源软件包。 APT可以在下载后自动构建源软件包。这样,您的稳定软件包将不受测试更新的影响。唯一的权衡是,与下载相比,它需要更多时间并安装二进制软件包。

要配置APT从测试中下载源软件包,只需添加:

deb-src http://<your debian mirror here> testing main

如果您只想遵循当前测试而不是将来的测试,请用当前代号替换“ testing”(在撰写本文时,它为“ buster”)

1
temy