[ 上一篇 ] [ 目录 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 下一篇 ]


APT HOWTO(已过时的文档)
第 2 章 - 基本配置


2.1 /etc/apt/sources.list 文件

作为其运行的一部分,APT 使用一个文件来列出可以从中获取软件包的“源”。这个文件是 /etc/apt/sources.list

此文件中的条目通常遵循以下格式。

     deb http://host/debian distribution section1 section2 section3
     deb-src http://host/debian distribution section1 section2 section3

当然,上面的条目是虚构的,不应使用。每行开头的第一个词,debdeb-src,表示软件包库的类型:它是否包含二进制软件包 (deb),也就是我们通常使用的预编译软件包,还是源代码包 (deb-src),后者是原始程序源代码加上 Debian 控制文件 (.dsc) 以及包含“debianizing”程序所需更改的 diff.gz 文件。

我们通常可以在默认的 Debian sources.list 文件中找到以下内容:

     # See sources.list(5) for more information, especially
     # Remember that you can only use http, ftp or file URIs
     # CDROMs are managed through the apt-cdrom tool.
     deb http://http.us.debian.org/debian stable main contrib non-free
     deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
     deb http://security.debian.org stable/updates main contrib non-free
     
     # Uncomment if you want the apt-get source function to work
     #deb-src http://http.us.debian.org/debian stable main contrib non-free
     #deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free

这些是基本的 Debian 安装所需要的行。第一条 deb 行指向官方软件包库,第二条指向非美国软件包库,第三条指向 Debian 安全更新的软件包库。

最后两行被注释掉了(行首带有 `#` ),因此 apt-get 会忽略它们。这些是 deb-src 行,也就是说,它们指向 Debian 源代码包。如果您经常下载程序源代码用于测试或重新编译,请取消注释这些行。

/etc/apt/sources.list 文件可以包含多种类型的条目。据我所知,APT 能够处理类型为 httpftpfile(本地文件,例如,包含已挂载的 ISO9660 文件系统的目录)和 ssh 的软件包库。

修改 /etc/apt/sources.list 文件后,请不要忘记运行 apt-get update 命令。您必须这样做,才能让 APT 从您指定的源获取软件包列表。


2.2 如何在本地使用 APT

有时您可能有很多 .deb 软件包,并且希望使用 APT 来安装它们,以便自动解决依赖关系。

为了做到这一点,创建一个目录,并将您想要索引的 .deb 文件放入其中。例如:

     # mkdir /root/debs

您可以使用一个 override 文件,直接修改为您的软件仓库在软件包的控制文件中设置的定义。在这个文件中,您可以定义一些选项,以覆盖软件包自带的选项。它的格式如下:

     package priority section

`package` 是软件包的名称,`priority` 是优先级,可以是 `low`、`medium` 或 `high`,`section` 是软件包所属的分类。文件名并不重要,您稍后需要将其作为 dpkg-scanpackages 命令的参数传递。如果您不想创建 override 文件,只需在调用 dpkg-scanpackages 命令时使用 /dev/null 即可。

仍然在 /root 目录下执行以下操作:

     # dpkg-scanpackages debs file | gzip > debs/Packages.gz

在上面的命令中,fileoverride 文件。该命令会生成一个名为 Packages.gz 的文件,其中包含了关于软件包的各种信息,这些信息会被 APT 使用。最后,要使用这些软件包,请添加:

     deb file:/root debs/

之后,您就可以像往常一样使用 APT 命令了。您也可以生成一个源代码仓库。要做到这一点,请使用相同的步骤,但请记住,您需要在目录中包含 .orig.tar.gz.dsc.diff.gz 这些文件,并且您需要使用 Sources.gz 而不是 Packages.gz。用于生成源代码仓库的程序也不同,它是 dpkg-scansources。命令行会像这样:

     # dpkg-scansources debs | gzip > debs/Sources.gz

请注意,dpkg-scansources 命令不需要 override 文件。对应的 sources.list 文件中的条目应该是:

     deb-src file:/root debs/

2.3 决定哪个镜像站点最适合添加到 sources.list 文件中:netselect, netselect-apt

一个非常常见的问题,尤其是在新手用户中:“应该在 sources.list 文件中添加哪个 Debian 镜像站点?”。有很多方法可以决定选择哪个镜像站点。专家们可能会有脚本来测量到各个镜像站点的 ping 时间。但是,现在有一个程序可以帮我们完成这项工作:netselect

要安装 netselect,请像往常一样执行以下命令:

     # apt-get install netselect

不带任何参数运行它会显示帮助信息。如果使用空格分隔的主机列表(镜像站点)来运行它,它将返回一个评分以及一个最佳主机。这个评分综合考虑了预估的 ping 时间和跳数(网络查询到达目标主机所经过的路由器数量),并且与预估的下载速度成反比(因此,评分越低越好)。返回的主机是得分最低的那个(添加 `-vv` 选项可以查看完整的评分列表)。请看下面的例子:

     # netselect ftp.debian.org http.us.debian.org ftp.at.debian.org download.unesp.br ftp.debian.org.br
       365 ftp.debian.org.br
     #

这意味着,在作为 `netselect` 命令参数提供的镜像站点中,ftp.debian.org.br 是最佳的,得分为 365。(注意!!这个结果是在我的计算机上测得的,并且网络拓扑结构会因网络接入点而异,所以这个数值不一定代表在其他计算机上的实际速度。)

现在,只需将 `netselect` 找到的最快镜像站点添加到 /etc/apt/sources.list 文件中(请参阅 2.1 节 “/etc/apt/sources.list 文件”),然后按照 第 3 章 “软件包管理” 中的建议进行操作。

注意: 镜像站点列表始终可以在以下文件中找到:http://www.debian.org/mirror/mirrors_full

从 0.3.ds1 版本开始,`netselect` 源代码包中包含了一个 netselect-apt 二进制软件包,它可以使上述过程自动化。只需将发行版分支作为参数输入(默认为 stable),它就会生成一个 sources.list 文件,其中包含了最佳的主镜像站点和非美国镜像站点,并将其保存在当前目录下。下面的例子演示了如何生成 stable 发行版的 sources.list 文件:

     # ls sources.list
     ls: sources.list: File or directory not found
     # netselect-apt stable
     (...)
     # ls -l sources.list
     sources.list
     #

请注意: 生成的 sources.list 文件位于当前目录下,您需要将其移动到 /etc/apt 目录中。

然后,按照 第 3 章 “软件包管理” 中的建议进行操作。


2.4 将 CD-ROM 添加到 sources.list 文件中

如果您希望使用 CD-ROM 通过 APT 自动安装软件包或更新您的系统,您可以将其添加到您的 sources.list 文件中。要做到这一点,您可以使用 apt-cdrom 命令,像这样:

     # apt-cdrom add

前提是您的光驱中已放入 Debian CD-ROM。apt-cdrom 命令将会挂载 CD-ROM,并且如果它是一张有效的 Debian CD,它会在光盘上查找软件包信息。如果您的 CD-ROM 配置有些特殊,您还可以使用以下选项:

     -h           - program help
     -d directory - CD-ROM mount point
     -r           - Rename a recognized CD-ROM
     -m           - No mounting
     -f           - Fast mode, don't check package files
     -a           - Thorough scan mode

例如:

     # apt-cdrom -d /home/kov/mycdrom add

您也可以识别 CD-ROM,而无需将其添加到您的 sources.list 文件中。

     # apt-cdrom ident

请注意,只有当您的 CD-ROM 设备在您系统的 /etc/fstab 文件中正确配置后,这个程序才能正常工作。


[ 上一篇 ] [ 目录 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 下一篇 ]


APT HOWTO(已过时的文档)

1.8.11 - 2005年8月

Gustavo Noronha Silva kov@debian.org