源列表主文件 /etc/apt/sources.list,兼取 /etc/apt/sources.list.d/*,结果以并集论。
源列表文件以行为单位,每行分多个字段,字段间以空白符分隔。井号(#)开头为注释行。样例如下:
安装源配置样例(Debian 8 jessie):
deb http://ftp.tw.debian.org/debian/ jessie main contrib non-free deb http://ftp.tw.debian.org/debian/ jessie-updates main contrib non-free deb http://ftp.tw.debian.org/debian/ jessie-backports main contrib non-free deb http://security.debian.org/ jessie/updates main contrib non-free deb http://ftp.yzu.edu.tw/Linux/debian-multimedia/ jessie main non-free #deb http://ftp.cn.debian.org/debian/ jessie main contrib non-free #deb http://ftp.cn.debian.org/debian/ jessie-updates main contrib non-free #deb http://ftp.cn.debian.org/debian/ jessie-backports main contrib non-free #deb http://ftp.cn.debian.org/debian-security/ jessie/updates main contrib non-free #deb http://ftp.cn.debian.org/debian-multimedia/ jessie main non-free
各字段说明
第一字段,指示包类型。 取值仅「deb」「deb-src」两个,分别对应二进制包和源码包。通常仅二进制包有用。
第二字段,指示镜像站点,即「源」!
URL 定位到某个目录,该目录下必有「dists」「pool」两个子目录。如:http://ftp.cn.debian.org/debian/、http://ftp.sjtu.edu.cn/ubuntu/。
第三字段,指示包的「版本类型」,姑且称为「仓库」。
打开某源,进入「dists」子目录可见该源中有哪些仓库,即其下诸子目录。
命名形式为「系统发行版名-仓库名」,如 Debian 的「jessie-backports」「stretch-updates」,Ubuntu 的「vivid-updates」「wily-proposed」。无仓库名的即为主仓库。
Debian 的 stable、testing 为链接,指向具体系统发行版,会随时间而变。比如,当前 stable 为 jessie,所以 stable-backports 与 jessie-backports 等效。但本人不建义使用 stable、testing,因为下一个 stable 发布后,你的源便自动指向了一个新版本,然而你并未阅读新版本的发行说明,并未做好升级的准备。
Debian 的仓库自 squeeze 起与 Ubuntu 基本相同。除主仓库外,有:
「security」,Ubuntu 用于指安全性更新。即影响系统安全的 bug 修补。Debian 特殊一些,见下文。
「updates」,非安全性更新。即不影响到系统安全的 bug 修补。
「proposed-updates」,预更新。小 beta 版。过后会进入「updates」或「security」。Ubuntu 仅用「proposed」,无后缀「updates」。
「backports」,后备。Debian stable 发布后,Ubuntu 某版本正式发布后,其所有软件版本号便已被冻结,所有软件只修 bug,不增加任何特性。但有人可能需要新特性,甚至某些较新的软件原来根本就没有。该仓库正因此而设,但欠官方维护,且可能在系统正式发布之后过一段时间才有内容。此仓库处于第二优先顺序,而上述几个仓库处于第一优先顺序。安装第二优先顺序的包必须特别指明,见 apt-get(8) aptitude(8) 的 –target-release 选项。
提示:并非所有版本都设有上述全部仓库,请打开源中 dists 目录查看。
后续字段,指示包许可类型。
后续字段排名不分先后,最终结果取其并集。按包本身的许可及所直接依赖的包的许可划分。打开某仓库,可见几个子目录。
Debian 最多有三种
「main」,本身是自由软件,且所有依赖的包也都是自由软件,此类可称纯自由软件,见 https://www.debian.org/distrib/packages《Debian自由软件指导方针》。
「contrib」,本身是自由软件,但依赖不纯,即依赖中至少有一例 contrib 或 non-free 者。
「non-free」,本身并非自由软件,无论依赖如何。当然,该软件是可免费使用或试用的。免费一例 https://packages.debian.org/jessie/unrar,试用xx天一例 https://packages.debian.org/jessie/rar。
Ubuntu 最多有四种
「main」,官方维护的自由软件。
「universe」,社区维护的自由软件。
「restricted」,设备专有驱动。
「multiverse」,同 Debian 的「non-free」。
某些另类的第三方源,未必遵循上述惯例。总之,打开仓库目录自己看。
特别之处:
Debian 安全性更新
不像 Ubuntu 放在「security」仓库,而是放在单独一个源中。各大镜像站通常都把一般的包放在根下来一级的「debian」目录中,而安全性更新则会放在「debian-security」目录中,如果有的话,如 http://ftp.cn.debian.org/debian-security/。
Debian 官方建议,所有安全性更新,只从官方主站更新,勿使用其它镜像站,除非你对镜像站非常有信心,见 https://www.debian.org/security/index.en.html。所以,很多镜像站并不提供安全更新源。
安全性更新的第三字段形式固定为「版本名/updates」,如「wheezy/updates」「jessie/updates」。
Debian 多媒体源
一些多媒体软件因牵涉到版权问题,包括硬件解码器,Debian 官方并未收录,有一网站专门填补该空缺,见 http://www.deb-multimedia.org。
最后忠告:不要同时启用多个源,同一仓库的源启用一个即可,否则容易引起混乱。以下实例便是列有多套而仅启用一套。