Translation(s): English - Français - Italiano - Português (Brasil - Русский - Svenska - 简体中文


Debian 仓库是一组 Debian 二进制软件包或源软件包,它们被组织在一个特殊的目录树中,并带有各种基础设施文件 - 校验和、索引、签名、描述、翻译等。客户端计算机可以连接到软仓库,使用基于Apt的软件包管理工具下载和安装软件包。

仓库的结构

下面的描述主要是为那些使用标准网络浏览器浏览仓库的人准备的,他们想知道什么在哪里,所有的东西是如何组合在一起的。更精确的技术性描述在 Format

一个Debian仓库包含多个发行版。Debian 的发行版是以 "玩具总动员 "电影中的角色命名的 (wheezy, jessie, stretch, ...)。 代号有别名,叫做套件(stable, oldstable, testing, unstable)。一个发行版会被分成几个组件。在 Debian 中,这些组件被命名为 main, contrib, 和 non-free,并表并表示它们所包含的软件的授权条款。一个版本也有各种架构(amd64, i386, mips, powerpc, s390x, ...)的软件包,以及源码和架构独立的软件包。

仓库的根目录下有一个目录dists,而这个目录又有每个发行版和套件的目录,后者通常是前者的符号链接,但浏览器不会向您显示出这个区别。每个发行版子目录都包含一个加密签名的Release文件和每个组件的目录,里面是不同架构的目录,名为binary-<架构>sources。而在这些文件中,Packages是文本文件,包含了软件包。嗯,那么实际的软件包在哪里?

软件包本身在仓库根目录下的pool。在pool下面又有所有组件的目录,其中有0,...,9ab,.., z, liba, ... , libz。 而在这些目录中,是以它们所包含的软件包命名的目录,这些目录最后包含实际的软件包,即.deb文件。这个名字不一定是软件包本身的名字,例如,软件包bsdutils在目录pool/main/u/util-linux 下,它是生成软件包的源码的名称。一个上游源可能会生成多个二进制软件包,而所有这些软件包最终都会在pool下面的同一个子目录中。额外的单字母目录只是一个技巧,以避免在一个目录中有太多的条目,因为这是很多系统传统上存在性能问题的原因。

pool下面的子目录中,通常会有多个版本的软件包,而每个版本的软件包属于什么发行版的信息只存在于索引中。这样一来,同一个版本的包可软件以属于多个发行版,但只使用一次磁盘空间,而且不需要求助于硬链接或符号链接,所以镜像相当简单,甚至可以在没有这些概念的系统中进行。

镜像

正式的Debian软件包存储库在世界各地都有镜像。

包列表

要浏览按类别分类的 Debian 软件包列表,您可以查看 stable, testing, unstable 以及其他各种列表,或者在 packages homepage 上搜索。

与仓库一起工作

与仓库一起工作可能意味着两种不同的事情中的任何一种。

  1. 您可以使用支持apt系列程序(apt,apt-get,apt-cache,aptitude)的仓库来浏览或安装软件包
  2. 您可以自己建立一个仓库,并在其中添加、删除或替换软件包。

使用仓库

使用仓库是非常简单的:对于正式的Debian仓库,打开/etc/apt/source.list,插入一行

deb http://ftp.debian.org/debian stable main contrib non-free

然后运行

apt update

(当然,您必须作为root用户或使用sudo)。您也可以考虑使用类似于这样的URL:

对于正式的Debian仓库来说,这种简单的过程就足够了。[SourcesList]一文包含了更多关于sources.list条目的信息。对于其他的第三方版本库,您可能想要遵循这个优秀的指南,以减少从粗心维护的版本库中破坏系统的风险。

建立和维护一个仓库

自己建立一个仓库的原因有很多。您可能只是有一些经过本地修改的软件包想提供给apt,您可能想用这些软件包运行一个本地镜像以节省带宽,或者您自己构建了一些软件包并想在发布之前进行测试。


CategoryPackageManagement