/etc/apt/sources.list.d目录下的文件需要以'.list'作为扩展名吗?

/etc/apt/sources.list.d中,我有几个用于自定义软件源的文件。所有这些文件的名称都以.list结尾。
这个文件夹中的文件是否必须以该扩展名结尾?如果是的话,那么这个信息写在哪里?
4个回答

是的,在/etc/sources.list.d中的文件名必须以.list结尾,这样文件中的行才会被视为指定应该使用的软件源。否则,这些文件可能会被解释为具有不同的含义。

sources.list

man sources.list(1)中:
名称 sources.list - APT软件包资源列表
描述 软件包资源列表用于定位系统中使用的软件包分发系统的存档。目前,此手册页仅记录了Debian GNU/Linux系统使用的打包系统。此控制文件位于/etc/apt/sources.list。
源列表旨在支持任意数量的活动源和各种源介质。该文件每行列出一个源,首选源排在最前面。每行的格式为:类型 URI 参数。第一项类型确定参数的格式。URI是统一资源标识符(URI),它是更具体和众所周知的统一资源定位符(URL)的超集。行的其余部分可以通过使用#来标记为注释。
SOURCES.LIST.D /etc/apt/sources.list.d目录提供了一种在单独文件中添加sources.list条目的方法。格式与常规的sources.list文件相同。文件名必须以.list结尾,并且只能包含字母(a-z和A-Z)、数字(0-9)、下划线(_)、连字符(-)和句点(.)字符。否则,如果文件不匹配Dir::Ignore-Files-Silently配置列表中的模式,APT将打印一个忽略文件的通知 - 在这种情况下,它将被静默忽略...

sources.list.save

.list.save文件是一种工作/备份文件:

链接:

  1. http://manpages.ubuntu.com/

作为对user26687答案的补充:

是的,/etc/apt/sources.list.d目录下的任何文件都必须有一个.list扩展名,否则apt将打印一个警告信息并忽略该文件,除非该文件匹配apt的Dir::Ignore-Files-Silently选项中的模式。

软件源GUI为其管理的每个.list文件创建一个.list.save文件,作为一种“备份”文件。提到的LP bug 611925是在2010年,当时apt还没有默默地忽略.save文件,因此生成了很多警告。

这个行为在2010年的apt版本0.8.3ubuntu1中得到了修复,用于LP bug 631770

apt (0.8.3ubuntu1) maverick; urgency=low

  * merged fixes from debian-sid
  * debian/rules:
    - put ubuntu-archive.gpg back into the package (LP: #620576)
  * apt-pkg/init.cc:
    - ignore ".distUpgrade" and ".save" files in sources.list.d
      (LP: #631770)

从那时起,默认情况下,apt会默默地忽略这些文件。您可以使用以下命令查看所有这类模式:
apt-config dump | grep Dir::Ignore-Files-Silently::

所以像 .save.bak.orig 等文件也被接受(并忽略)在 /etc/apt/sources.list.d 目录中。

非常感谢您提供如此详细的补充回答。这些额外的信息对我来说是新的收获。 - SRDC

它们也可以以.sources结尾,如果你使用的是deb822格式。

你没有提到你遇到的问题。但是为了回答你的问题,每个存储库在/etc/apt/sources.list.d/路径下都会有一个文件,并且通常有两个文件。必需的文件将以*.list结尾,可选的文件将以*.list.save结尾(该文件是某些GUI存储库管理器自动生成的)。由操作系统管理的主要列表位于/etc/apt/sources.list,可以向/etc/apt/sources.list.d/your-custom-list-here.list添加附加列表。

1我并没有解决任何特定的问题,只是在学习Ubuntu中的存储库如何工作。我不明白为什么需要两个文件(内容完全相同),而不是直接使用它们来添加存储库。 - bessarabov
3在几个方面上有些误导性的回答:首先,.list.save文件不是必需的,它们是由软件源图形界面创建的一种备份文件,只有.list文件被apt系统使用;其次,存储库可以添加到/etc/apt/sources.list中,但不建议这样做(操作系统会处理),因此管理员和软件包实际上是鼓励/etc/apt/sources.list.d进行操作。 - MestreLion
对于任何读者来说,答案已经进行了编辑,反映了@MestreLion提出的观点。 - SRDC