Apt-Pinning的简介

简短的引导

版本1.0
作者:Falko Timme

本文简要介绍了如何在Debian和Debian的发行版(如Ubuntu)上使用apt-pinning。 Apt-Pinning允许您在系统上使用多个版本(例如稳定测试不稳定 ),并指定何时安装从哪个版本的软件包。 这样,您可以运行基于稳定版本的系统,但也可以从测试不稳定 (或第三方存储库)安装一些较新的软件包。

我不会保证这将为您工作!

1初步说明

我在这里使用Debian Lenny( stable )系统。 我将在稳定测试不稳定的存储库(在撰写本文时)的三个不同版本的phpmyadmin软件包的基础上解释apt-pinning - 请参阅http://packages.debian.org/search ?keywords = phpmyadmin&searchon = names&suite = all&section = all

  • lennystable ):版本4:2.11.8.1-5
  • 挤压测试 ):版本4:3.1.2-2
  • sidunstable ):版本4:3.1.3-1

2我的sources.list

我将测试不稳定的存储库添加到我的/etc/apt/sources.list中,看起来如下所示:

vi /etc/apt/sources.list
deb http://volatile.debian.org/debian-volatile lenny/volatile main
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main

## Lenny / Stable
deb http://ftp2.de.debian.org/debian/ lenny main
deb-src http://ftp2.de.debian.org/debian/ lenny main

deb http://security.debian.org/ lenny/updates main
deb-src http://security.debian.org/ lenny/updates main

## Squeeze / Testing
deb http://ftp2.de.debian.org/debian/ squeeze main
deb-src http://ftp2.de.debian.org/debian/ squeeze main

deb http://security.debian.org/ squeeze/updates main
deb-src http://security.debian.org/ squeeze/updates main

## Sid / Unstable
deb http://ftp2.de.debian.org/debian/ sid main
deb-src http://ftp2.de.debian.org/debian/ sid main

打开/etc/apt/apt.conf ...

vi /etc/apt/apt.conf

...并把以下行:

APT::Cache-Limit "100000000";

(否则,运行apt-get update时可能会收到如下错误信息

E: Dynamic MMap ran out of room

然后跑

apt-get update

更新包数据库。

使用当前版本,apt会始终尝试安装最新版本的软件包,通常来自不稳定测试 - 这可能会导致混乱的系统。 通过apt-pinning,我们可以定义优先级,以便只有在没有这样的包稳定的情况下,才能从不稳定测试中安装软件包。

我们可以检查适当的优先级如下:

apt-cache policy
server1:~# apt-cache policy
Package files:
 100 /var/lib/dpkg/status
     release a=now
 500 http://volatile.debian.org lenny/volatile/main Packages
     release o=volatile.debian.org,a=stable,l=debian-volatile,c=main
     origin volatile.debian.org
 500 http://ftp2.de.debian.org sid/main Packages
     release o=Debian,a=unstable,l=Debian,c=main
     origin ftp2.de.debian.org
 500 http://security.debian.org squeeze/updates/main Packages
     release v=None,o=Debian,a=testing,l=Debian-Security,c=main
     origin security.debian.org
 500 http://ftp2.de.debian.org squeeze/main Packages
     release o=Debian,a=testing,l=Debian,c=main
     origin ftp2.de.debian.org
 500 http://security.debian.org lenny/updates/main Packages
     release v=5.0,o=Debian,a=stable,l=Debian-Security,c=main
     origin security.debian.org
 500 http://ftp2.de.debian.org lenny/main Packages
     release v=5.0,o=Debian,a=stable,l=Debian,c=main
     origin ftp2.de.debian.org
Pinned packages:
server1:~#

如您所见, 稳定测试不稳定都具有相同的优先级(500),这意味着将安装最新版本的软件包。 在我们的phpmyadmin软件包的情况下,这是版本4:3.1.3-1,它来自unstable

apt-cache policy phpmyadmin

候选人:行显示将要安装的版本:

server1:~# apt-cache policy phpmyadmin
phpmyadmin:
  Installed: (none)
  Candidate: 4:3.1.3-1
  Version table:
     4:3.1.3-1 0
        500 http://ftp2.de.debian.org sid/main Packages
     4:3.1.2-2 0
        500 http://ftp2.de.debian.org squeeze/main Packages
     4:2.11.8.1-5 0
        500 http://ftp2.de.debian.org lenny/main Packages
server1:~#

这是如何定义优先级(见

man 5 apt_preferences

):

P> 1000
导致安装版本,即使这构成了软件包的降级

990 <P <= 1000
导致安装版本,即使它不是来自目标版本,除非安装的版本更新

500 <P <= 990
导致安装版本,除非有可用的属于目标版本的版本或安装的版本更新

100 <P <= 500
导致安装版本,除非有可用的版本属于某些其他分发版,或者安装的版本更新

0 <P <= 100
只有在没有安装版本的软件包时才会安装版本

P <0
防止安装版本

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏