/etc/apt/sources.list
会列出发布 Debian 软件包不同的仓库(或软件源)。接下来APT会从每一个软件源导入所发布的软件包列表。这个过程是通过下载 Packages.xz
或使用不同压缩方法的变体(比如Packages.gz
或者.bz2
) )文件(若是二进制包的仓库)和Sources.xz
文件(若是软件包源的仓库),并分析这两个文件内容。如果文件的旧版本已经存在,APT仅下载更新的部分(参见:TIP 增量更新)。
/etc/apt/sources.list
文件中每个有效的代码行包括对源的描述,由三个被空格分开的部分组成。
deb
” 表示二进制软件包,
deb-src
”表示源代码包。
Packages.gz
中给出的文件名,必须是有效URL的全称):此区域存在于一个 Debian 镜像或其他任何由第三方所建的软件源文档中。这个 URL 可以用 file://
起始来表示系统里安装了本地仓库,或以 http://
表示仓库可通过网络服务器来获取,或用 ftp://
表示软件源在一个 FTP 服务器上。URL 还可以用 起始表示从 cdrom:
开始安装。因基于网络的安装愈来愈流行,这个方法已不那么常用了。
./
” 表示子目录不存在 - 这个软件源就位于给定的 URL上)。 不过一般来讲,仓库的结构类似于一个 Debian 的镜像, 包括很多分支,每一分支有很多组成部分。通常命名选定的分支(由 “codename” 来命名 - 参看附栏中的目录社区 Bruce Perens,一位有争议的领导者 或是由对应的 “suites” — stable
, testing
, unstable
),然后命名下面的组成部分(或分区)(从main
, contrib
和non-free
中选择) 来激活一个典型的 Debian 镜像。
cdrom
条目描述了你所有的CD/DVD光盘。 与其他条目不同,因为一个CD光盘需要插入光驱中,并且每次只能读一张,所以并不总是可用。因此这种仓库管理起来稍有不同,需要加在apt-cdrom
程序中,经常与add
参数一起执行。后者会要求驱动中插入光盘,并会浏览内容,寻找Packages
文件。这些文件会用于更新可用软件包的数据库(此过程由apt update
命令执行)。 自此, 如果某软件包需要光盘,APT 可发出要求插入光驱。
sources.list
文件,它被用于 Stable 版本的 Debian 系统:
例 6.1. /etc/apt/sources.list
给 Debian Stable 使用者的文件
# Security updates deb http://security.debian.org/ jessie/updates main contrib non-free deb-src http://security.debian.org/ jessie/updates main contrib non-free ## Debian mirror # Base repository deb http://ftp.debian.org/debian jessie main contrib non-free deb-src http://ftp.debian.org/debian jessie main contrib non-free # Stable updates deb http://ftp.debian.org/debian jessie-updates main contrib non-free deb-src http://ftp.debian.org/debian jessie-updates main contrib non-free # Stable backports deb http://ftp.debian.org/debian jessie-backports main contrib non-free deb-src http://ftp.debian.org/debian jessie-backports main contrib non-free
stable
, stable-updates
, stable-backports
)来命名。
sources.list
中所列出的第一个会被使用。因此,非官方来源的包一般在此文件末尾处。
security.debian.org
(位于 Debian 系统管理员Debian System Administrators维护的小范围网络)。其上的文档包括为那些稳定版本准备的安全更新(由 Debian 安全团队和/或软件包维护者预备)。
计划-更新proposed-updates
的子库,是由稳定更新管理员小心选定的。
计划更新
仓库里准备(由稳定发布管理员监督)。
jessie-proposed-updates
别名。因为wheezy-proposed-updates
也存在,别名的使用更清楚更一致(对于Oldstable更新来讲):
deb http://ftp.debian.org/debian jessie-proposed-updates main contrib non-free
stable-backports
仓库存放“软件包的向后移植版本”。该术语指的是一些近期发布的软件针对旧的发行版重新编译的包,这里所指的旧发行版通常是指稳定(Stable)的发行版本。
stable-backports
仓库与通常的Debian镜像共同存在,但是Squeeze对应的仓库仍然在一个单独的服务器(backports.debian.org
)上存放,且需要增加以下特殊的sources.list
条目才能使用:
deb http://backports.debian.org/debian-backports squeeze-backports main contrib non-free
stable-backports
里的软件包(Backports)通常是从Testing版本创建的。这确保一旦下一个稳定的Debian版本可用,所有安装的backports都可以升级到相应的稳定版本。
$
sudo apt-get install package/jessie-backports
$
sudo apt-get install -t jessie-backports package
sources.list
文件,用于系统运行 Debian 测试或非稳定 版本:
例 6.2. Debian Testing/Unstable 用户的 /etc/apt/sources.list
文件
↵ # Unstable↵ deb http://ftp.debian.org/debian unstable main contrib non-free↵ deb-src http://ftp.debian.org/debian unstable main contrib non-free↵ ↵ # Testing↵ deb http://ftp.debian.org/debian testing main contrib non-free↵ deb-src http://ftp.debian.org/debian testing main contrib non-free↵ ↵ # Stable↵ deb http://ftp.debian.org/debian stable main contrib non-free↵ deb-src http://ftp.debian.org/debian stable main contrib non-free↵ ↵ # Security updates↵ deb http://security.debian.org/ stable/updates main contrib non-free↵ deb http://security.debian.org/ testing/updates main contrib non-free↵ deb-src http://security.debian.org/ stable/updates main contrib non-free↵ deb-src http://security.debian.org/ testing/updates main contrib non-free↵
sources.list
文件来从非稳定安装软件包。如果这不是你所需要的,用APT::Default-Release
设置(参见 第 6.2.3 节 “系统升级”)来指示 APT 从另一分布获取软件包(一般用 测试)。
sources.list
内,并不表示该软件包可顺利使用,应加入这一个行:
deb http://ftp.debian.org/debian experimental main contrib non-free↵
mentors.debian.net
站点比较有意思(虽然它只提供源码包)。它搜集Debian开发者候选人员制作的软件包,以及那些希望创建Debian软件包又不想经历成为Debian开发者整套流程的那些志愿者的软件包。这些软件包提供时没有任何质量保证;请确保您在将它们用于生产环境之前检查它们的来源和完整性并进行测试。
sources.list
保持不变,但是 APT 被配置为把它们作为代理使用。
/etc/approx/approx.conf
中:
↵ # <name> <repository-base-url>↵ debian http://ftp.debian.org/debian↵ security http://security.debian.org↵
# 指向本地 approx 服务器的sources.list 范例 deb http://apt.falcot.com:9999/security jessie/updates main contrib non-free deb http://apt.falcot.com:9999/debian jessie main contrib non-free