如何在Debian中启用测试版/不稳定版的软件库

如何在Debian中启用测试版/不稳定版的软件库

为何要启用测试版/不稳定版?

测试版/不稳定版的Debian给开发者提供了一个比当前稳定版更新的环境以及软件。你们注意到了么?其实这些稳定版啊不稳定版啊神马的都是别名,比方说稳定版其实就是Debian的稳定发行版,而测试版将会是下一个Debian的稳定发行版(当然那是测试后的事了)。截至发稿为止,当前Debian的稳定发行版是Wheezy 7.x,将会成为下一个稳定版的测试版则是Jessie。

当你需要一款应用的最新版本的时候,启用测试版/不稳定版将会是不二的选择。当初我因为工作需要,要安装个Apache的 2.4.x到我的Debian Wheezy。测试版需要的是2.4.x的,可是我的软件库里面只有2.2.x的。所以最好的解决方案当时是将测试版下下来啦。

通常来说当我们想尝试最新版本的应用时,都应该只在测试版软件库中搜索。

(题图来源)

在这篇文章里我将教大家如何在不弄坏你系统的前提下设置好测试、不稳定版的Debain系统并在上面安装软件。


  1. Stable < Testing < Unstable (稳定 < 测试版 < 不稳定版)
  2. Wheezy < Jessie < Sid

1. 设置测试版/不稳定版的apt源

第一步是把测试版/不稳定版的源加到你的sources.list文件里。在Debian Wheezy系统上,/etc/apt/sources.list理应长得像这样:


  1. $ cat /etc/apt/sources.list


  1. ...
  2. deb http://security.debian.org/ wheezy/updates main
  3. deb http://http.us.debian.org/debian/ wheezy main
  4. deb-src http://security.debian.org/ wheezy/updates main
  5. ...

把你repo服务器的链接记下来,比如:http://http.us.debian.org/debian/

这个repo服务器将会是离你最近的一个服务器; 在不同的地理位置会有不同的url,这个将会用于下一步。

如果想加测试/不稳定源,则需要在sources.list文件加上这些东西:


  1. # Testing repository - main, contrib and non-free branches
  2. deb http://http.us.debian.org/debian testing main non-free contrib
  3. deb-src http://http.us.debian.org/debian testing main non-free contrib
  4.  
  5.  
  6. # Testing security updates repository
  7. deb http://security.debian.org/ testing/updates main contrib non-free
  8. deb-src http://security.debian.org/ testing/updates main contrib non-free
  9.  
  10.  
  11. # Unstable repo main, contrib and non-free branches, no security updates here
  12. deb http://http.us.debian.org/debian unstable main non-free contrib
  13. deb-src http://http.us.debian.org/debian unstable main non-free contrib

格式将会是


  1. deb <respository server/mirror> <repository name> <sub branches of the repo>
  2. (deb <上一步弄的服务器或镜像url> <repo的名字> <repo底下的分支>)

当然啦,除了用testing或者unstable这么烂的词,也能使用他们的发行版代号,比如Jessie或者Sid


  1. deb http://http.us.debian.org/debian jessie main non-free contrib
  2. deb http://security.debian.org/ jessie/updates main contrib non-free
  3. deb http://http.us.debian.org/debian sid main non-free contrib

2. 钉住 apt!这非常重要

在加了测试/不稳定的repo之后,当你更新系统的时候所有安装过并且可用的软件就会立马更新,而后你的系统就被你玩火自焚了。

所以需要设置一些规则,以便选定的软件包在正常的更新时不会被更新到一个不稳定的测试版本。

我们需要使用“钉住APT”的方式来告诉apt系统,除了我们希望使用测试版或不稳定版的特定软件包之外,其它的总是使用稳定版的软件包来更新。

可以通过如下两个文件之一来设置如何设置APT的优先级来“钉住”。


  1. /etc/apt/preferences
  2. /etc/apt/preferences.d/my_preferences

打开这两个文件之一(如果没有的话就创建一个),然后输入如下内容:


  1. Package: *
  2. Pin: release a=stable
  3. Pin-Priority: 700
  4.  
  5. Package: *
  6. Pin: release a=testing
  7. Pin-Priority: 650
  8.  
  9. Package: *
  10. Pin: release a=unstable
  11. Pin-Priority: 600

前面我们提到过,稳定版指的是你当前的debian版本,测试版是下一个,而不稳定版则是更远的将来发行版。上面的设置中最主要的是优先级(Pin-Priority)。当前的稳定版应该有最高的优先级,这就是说,正常的apt-get操作只会从当前的稳定版的软件库(现在是wheezy)里面安装软件。

更新包缓存

在增加了新的软件库和指定了优先规则后,需要更新一下包缓存。


  1. $ sudo apt-get update

确认APT规则

我们必须确认“钉住”的设置正确,优先级也没问题。使用 apt-cache 的 policy 参数来检查:


  1. $ apt-cache policy apache2
  2. apache2:
  3. Installed: (none)
  4. Candidate: 2.2.22-13
  5. Version table:
  6. 2.4.7-1 0
  7. 600 http://http.us.debian.org/debian/ unstable/main amd64 Packages
  8. 2.4.6-3 0
  9. 650 http://http.us.debian.org/debian/ testing/main amd64 Packages
  10. 2.2.22-13 0
  11. 700 http://http.us.debian.org/debian/ wheezy/main amd64 Packages

如上的输出,确认在wheezy 稳定版中, 2.2.22 版本的Apache是选定的版本,它有最高的优先级。

3. 从测试版/不稳定版软件库中安装软件

现在可以从测试版或不稳定版中选择一个特定的软件来安装它了。假如说我们要从测试版软件源中安装 apache2。

有两个不同的方法,并且其结果也有所不同。

方式一


  1. # apt-get install apache2/testing

上述命令会从测试版软件库中安装 apache2,并从稳定版软件库中安装其依赖包(稳定版通过apt规则确定)。这个命令在某些情况下会失败,比如安装的软件包(apache2)所需的依赖包在稳定版软件库中没有更新到可以支持该软件时。

方式二


  1. # apt-get -t testing install apache2

上述命令会从测试版软件库中安装apache2,并从测试版软件库中安装其依赖包。这要比上面的命令工作的更好。

所以,要安装较新的软件包,直接从测试版/不稳定版的软件库中安装就行了。注意,优先级号码不只是一个数字而已,还有其特定意义。可以查看 apt_preferences的man页面了解更多:


  1. $ man 5 apt_preferences

总结

使用“钉住”方式的测试版/不稳定版的软件库是一个获取较新版本软件包的一个好办法,不过其实并不推荐使用它们。如果弄错了,可能会从也许不兼容的分支上下载软件包,这会把你的系统搞乱。

一个更好的方式是,使用向后移植的软件库来安装更新的包。它从测试版和不稳定版的软件库中获取较新版本的软件包,但是为当前的稳定版软件库而编译。所以,对于 debian wheezy来说,你可以使用wheezy-backports 软件库。访问http://backports.debian.org/ 了解更多。

原文发布时间:2014-06-28

本文来自云栖合作伙伴“linux中国”

时间: 2024-09-21 17:32:39

如何在Debian中启用测试版/不稳定版的软件库的相关文章

如何在Oh-My-Zsh中启用Heroku命令补全功能

如何在Oh-My-Zsh中启用Heroku命令补全功能 Heroku客户端是创建和管理Heroku应用的命令行界面工具. 需求: Heroku toolbelt Oh-My-Zsh (如何安装) 本文不是讲关于heroku的知识,也不是讲关于heroku的使用细节,而是仅仅展示给用户他们怎样可以使用oh-my-zsh来方便地敲入heroku命令.此外你还应该安装heroku toolbelt来进行本文的相应的操作.对于Ubuntu和Debian发行版,你可以通过运行下面的命令来安装: wget

如何在SQL中启用全文检索功能?(实例)

全文检索 如何在SQL中启用全文检索功能? -------------------------------------------------------------------------------- 全文索引的一个例子,在查询分析器中使用:use pubsgo--打开数据库全文索引的支持execute sp_fulltext_database 'enable'go--建立全文目录ft_titlesexecute sp_fulltext_catalog 'ft_titles', 'creat

如何在 Apache 中启用 HTTP/2

如何在 Apache 中启用 HTTP/2 Copyright (C) 2015 greenbytes GmbH 刚发布的 Apache httpd 2.4.17 终于支持 HTTP/2 了.这个页面给出了一些如何构建/部署/配置的建议.目的是为了大家发现 bugs 时能升级它,或者给一些能更好工作的建议. 最后,这会归并回到官方 Apache 文档,这里只会留下一个到那里的链接.暂时我们还没做到. 源码 你可以从这里得到 Apache 版本.Apache 2.4.17 及其更高版本都支持 HT

如何在Linux中启用Shell脚本的调试模式

脚本是存储在一个文件的一系列命令.在终端上输入一个个命令,按顺序执行的方法太弱了,使用脚本,系统中的用户可以在一个文件中存储所有命令,反复调用该文件多次重新执行命令. 在学习脚本或写脚本的初期阶段,我们通常从写小脚本或者几行命令的短脚本开始,调试这样的脚本时我们通常无非就是通过观察它们的输出来确保其正常工作. 然而,当我们开始写非常长或上千行命令的高级脚本,例如改变系统设置的脚本,在网络上执行关键备份 等等,我们会意识到仅仅看脚本输出是不足以在脚本中找到 Bug 的! 因此,在 Linux 系列

如何在 Linux 中启用 Shell 脚本的调试模式

脚本是存储在一个文件的一系列命令.在终端上输入一个个命令,按顺序执行的方法太弱了,使用脚本,系统中的用户可以在一个文件中存储所有命令,反复调用该文件多次重新执行命令. 在学习脚本或写脚本的初期阶段,我们通常从写小脚本或者几行命令的短脚本开始,调试这样的脚本时我们通常无非就是通过观察它们的输出来确保其正常工作. 然而,当我们开始写非常长或上千行命令的高级脚本,例如改变系统设置的脚本,在网络上执行关键备份 等等,我们会意识到仅仅看脚本输出是不足以在脚本中找到 Bug 的! 因此,在 Linux 系列

如何在Word2013中启用或禁用Office加载项

  第1步,打开Word2013文档窗口,依次单击"文件"→"选项"按钮. 第2步,打开"Word选项"对话框,切换到"加载项"选项卡.在"加载项"列表中找到需要启用或禁用的加载项,并记录下该加载项的类型(例如"Microsoft Word稿纸向导加载项"的类型为"COM加载项"),然后单击"管理"下拉三角按钮. 第3步,在"管理&quo

如何在Windows中启用自动登录

  本文介绍如何通过在注册表数据库中存储密码和其他相关信息,将 Windows 配置为自动执行登录过程.此功能允许其他用户启动您的计算机并使用您建立的帐户自动登录. 重要说明:如果启用自动登录,可以更方便地使用 Windows;但是,此功能可能会造成安全风险.如果将计算机设置为自动登录,则任何可以实际接触该计算机的人都可以访问其中的所有内容,包括它所连接到的任何网络内容.另外,如果启用自动登录,则密码将以纯文本形式存储在注册表中.Authenticated Users 组可以远程读取存储此值的特

如何在ESXi中启用巨型帧支持?

巨型帧可以在恰当的时候帮助减少网络延迟,但需要对整个网络设施进行正确的配置. 在虚拟环境中巨型帧是一款很有价值的工具.传统以太网帧.数据包最多能够包含1500个字节,但每个数据包包括额外的数据头.校验码以及数据尾.每个帧必须被确认增加的流量及延迟将降低网络通信效率.将传统以太网帧从1500个字节提升至9000个字节能够在每个帧中封装更多的有效负载并缓解由频繁握手而导致的延迟.容量更大的数据帧被称为巨型帧.VMware ESXi 启用了巨型帧支持,但需要确保每个网络组成部分配置合理才能够支持巨型帧

如何在SQL中启用全文检索功能

全文索引的一个例子,在查询分析器中使用: use pubs go --打开数据库全文索引的支持 execute sp_fulltext_database 'enable' go --建立全文目录ft_titles execute sp_fulltext_catalog 'ft_titles', 'create' go --为titles表建立全文索引数据元,UPKCL_titleidind是主键所建立的唯一索引,可由sp_help titles得知 execute sp_fulltext_tab