Answers:
许多人似乎害怕将稳定与测试混为一谈,但是坦率地说,测试本身是相当稳定的,并且通过适当的首选项和解决方案检查,您可以避免将核心程序包置于不稳定路径上的“稳定性漂移”。
“测试相当稳定?” , 你问。是。为了使程序包从不稳定状态迁移到测试状态,它必须连续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
。
您也可以添加oldstable
in sources.lists.d
和preferences.d
(使用1的优先级),尽管该绰号将在下一个稳定周期之前趋于消失并消失。在这种情况下,您可以使用http://archive.debian.org/debian/
和“硬编码” Debian版本(蚀刻,lenny等)。
要安装软件包的测试版本,只需使用aptitude install lib-foobar-package/testing
,或直接跳到aptitude的GUI并在软件包详细信息中选择版本(在您要查看的软件包上按回车即可)。
如果您收到有关包装冲突的投诉,请首先查看解决方案。在大多数情况下,第一个将是“不要安装此版本”。了解如何使用每包接受/拒绝解析器选择。例如,如果要安装foobar-package / testing,并且第一个解决方案是“不要安装foobar-package / testing”,则将该选项标记为已拒绝,其他解决方案将永远不会转向该路径。在这种情况下,您可能必须安装其他一些测试软件包。
如果它变得过于繁琐(例如正在尝试升级libc或内核或其他大型核心系统),那么您可以拒绝这些升级路径,也可以完全退出初始升级。请记住,如果您允许,它只会将内容升级到测试/不稳定。
编辑:修复了一些优先级的引脚,并更新了列表。
apt-get update
创建配置文件后运行了吗?
sudo apt-get update
,出现更新错误。然后重新启动,这给了我Xsession error
,再次重新启动,现在我没有GUI。对/dev/sda1/
已满。大。
在/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
如果您安装具有大量依赖关系的内容,请非常小心。最好不要在生产中这样做。
您也可以在反向移植或类似的存储库中尝试运气。
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
对于它的价值,我经常看到的一般建议是“不要将稳定与任何东西混合在一起”。大多数混合系统教程都是针对混合测试和不稳定的。
原因似乎是,如果您将稳定与测试结合使用,则非常基本的软件包(如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
如何将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一起安装。
我已经做了很长时间了,可以自信地说它足够安全并且可以方便使用。在以下设置中,默认情况下将安装稳定版本,但是如果需要,Aptitude还可以让您选择向后移植或不稳定的版本:
有四件事需要编辑,需要设置默认的锁定版本,源需要反向移植和添加不稳定,降低反向移植/不稳定软件包的锁定优先级,并且需要修改能力显示设置以显示锁定。
Apt :: default-释放“稳定”;
#deb cdrom:[Debian GNU / Linux 6.0.0 _Squeeze_-官方多体系结构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主要 deb-src http://security.debian.org/ squeeze / updates主要 #squeeze-update,以前称为“ volatile” deb http://ftp.us.debian.org/debian/ squeeze-updates主要 deb-src http://ftp.us.debian.org/debian/ squeeze-updates主要 #压缩反向端口 #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/不稳定的主程序 #非免费 太阳爪哇 #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:是”的软件包 # #我们的定位 #400-可以安全地安装反向端口,而无需更新其他软件包 #50-不稳定的软件包,在详细信息屏幕中强行安装,可能会导致冲突 包装:* 销:释放n =挤压后退 密码优先级:400 包装:* 销:释放a =不稳定
Aptitude :: UI :: Package-Display-Format“%c%a%M%p%Z%v%V%i”;
source.list
其中应说代号jessie
而不是squeeze
。Debian的政策testing
几乎稳定,软件包几乎与unstable
存储库中的软件包一样新。我跑出来的空间,在这里,请看看:wiki.debian.org/DebianReleases,wiki.debian.org/StableUpdates和wiki.debian.org/StableProposedUpdates ; 最后两个是其他存储库源。
如果更多地选择软件包,或者将在多台机器上重复安装,则可以考虑设置一个私有存储库,该私有存储库可镜像一部分正式存储库。这需要一些工作来配置存储库,但是通过在每个客户端上进行最少的配置以及在进行数十次安装时获得可重复的结果,就很容易维护回报。即使只安装一个或两个软件包,我也认为这很有用,并使用此方法来自动化和维护云安装。廉价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:password@private.repository.example.com/ 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