[ 上一篇 ] [ 目录 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 下一篇 ]
作为其运行的一部分,APT 使用一个文件来列出可以从中获取软件包的“源”。这个文件是 /etc/apt/sources.list。
此文件中的条目通常遵循以下格式。
deb http://host/debian distribution section1 section2 section3 deb-src http://host/debian distribution section1 section2 section3
当然,上面的条目是虚构的,不应使用。每行开头的第一个词,deb 或 deb-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 能够处理类型为 http、ftp、file(本地文件,例如,包含已挂载的 ISO9660 文件系统的目录)和 ssh 的软件包库。
修改 /etc/apt/sources.list 文件后,请不要忘记运行 apt-get update 命令。您必须这样做,才能让 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
在上面的命令中,file 是 override 文件。该命令会生成一个名为 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/
一个非常常见的问题,尤其是在新手用户中:“应该在 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 章 “软件包管理” 中的建议进行操作。
如果您希望使用 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月kov@debian.org