/etc/apt/sources.list 文件和 /etc/apt/sources.list.d 目录介绍

Debian 是一款广泛使用的 Linux 发行版,它使用 apt 软件包管理工具来处理软件包的安装、升级和删除。apt 管理软件包的工作依赖于一个或多个软件仓库(repository),这些仓库定义在 /etc/apt/sources.list 文件以及 /etc/apt/sources.list.d/ 目录下的文件中。

/etc/apt/sources.list 文件包含了 Debian 软件包管理器 apt 所需的软件源列表。软件源是指存储有软件包及其数据的服务器或本地目录,它们允许用户安装和更新软件包。这些源可以是官方的,也可能是第三方的。

源的格式一般是这样的:

类型 URL 发行版 软件分区
  • 类型:软件源的类型。通常是 deb 用于二进制包,或者是 deb-src 用于源代码包。
  • URL:软件源的网址或路径。
  • 发行版:指定发行版的代号(如 stretch, buster, bullseye)或类别(如 stable, testing, unstable)。
  • 软件分区:软件库的分区,如 main、contrib 和 non-free。关于软件分区的讨论可以参见这里:What's the difference between multiverse, universe, restricted and main? | askUbuntu

举个例子:

deb http://deb.debian.org/debian/ buster maindeb-src http://deb.debian.org/debian/ buster main

在这个例子中,deb 表示这个源包含编译好的二进制文件,而 deb-src 表示这个源包含软件包的源代码。http://deb.debian.org/debian/ 是软件仓库的 URL,在这里,buster 是 Debian 10 的发行版代号。main 表示这个源包含 Debian 发行版的自由软件部分。

你可以通过编辑这个文件来添加、删除或更改软件包仓库。要添加一个新的软件源,你需要以超级用户权限编辑 /etc/apt/sources.list 文件,并按照上面的格式添加一行新的源配置。完成后,通过运行 sudo apt update 命令,你可以让 apt 从新添加的源中获取和更新软件包列表。

另外,为了组织和管理方便,apt 还支持读取 /etc/apt/sources.list.d/ 目录下的文件。这些文件的格式和主 sources.list 文件相同,但这种机制让你可以把软件源分散在不同的文件中,以防止主 sources.list 文件过于复杂。即,/etc/apt/sources.list 是主配置文件,包含了系统默认的软件源列表。而 /etc/apt/sources.list.d/ 目录则被用来存储附加软件源的单独文件。

/etc/apt/sources.list.d/ 目录的主要作用是组织和分离软件源配置,以保持系统的整洁和易于管理。每个文件通常包含单独一个软件源或者相关联的软件源组,这些文件最终会被 APT 工具合并并且和主 sources.list 文件一起处理。

这些文件的命名约定通常是 <repository>.list,它们遵循与 /etc/apt/sources.list 文件相同的格式。

举例来说,如果你想添加一个第三方软件仓库,通常供应商或项目会提供一个 .list 文件或是相应的命令,你把它添加到 sources.list.d 目录下。例如,对于 Google Chrome 的 Debian 仓库,你可能会创建一个名为 google-chrome.list 的文件,内容如下:

deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main

在配置了新的源之后,为了让 APT 识别和使用这些新增的源,你需要执行:

sudo apt update

这个命令将会更新软件包列表,使得新添加的软件源可用于软件包的安装和更新。通过这种机制,维护者可以轻松地添加或删除软件源,而不需要直接编辑主 sources.list 文件,这使得软件源的管理更加灵活和模块化。

posted @ 2024-01-20 13:28  Undefined443  阅读(612)  评论(0编辑  收藏  举报