如何在 aptsources.list 中使用多个选项?

sot*_*rov 6 package-management apt repository

使用Ubuntu 22.04。我按照他们的官方手册添加了nodejs存储库。然而,当我这样做时,我得到:sudo apt update

N: Skipping acquire of configured file 'main/binary-i386/Packages' as repository 'https://deb.nodesource.com/node_20.x nodistro InRelease' doesn't support architecture 'i386'
Run Code Online (Sandbox Code Playgroud)

我做了一些研究并解决这个问题,我必须添加[arch=amd64]选项/etc/apt/sources.list.d/nodesource.list。但是,当我打开文件时,源已经有一个选项:

[signed-by=/etc/apt/keyrings/nodesource.gpg]
Run Code Online (Sandbox Code Playgroud)

如何在apts中使用多个选项值sources.list

我尝试用,(逗号)分隔它们,但这不起作用:

deb [arch=amd64,signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main
Run Code Online (Sandbox Code Playgroud)

sot*_*rov 9

有两种格式允许您向apt源添加多个选项:单行样式格式(.list使用. 当前使用的是单行样式格式,但计划逐渐成为默认的 DEB822 样式格式。下面描述了每种格式的用法。/etc/apt/sources.list.d.sources/etc/apt/sources.list.d


.list- 一行式格式

根据sources.list(5)联机帮助页,使用单行样式格式时,选项必须用空格分隔:

如果应提供选项,则它们之间用空格分隔,并且所有选项一起用方括号 ([]) 括起来,包含在以空格分隔的类型之后的行中。如果选项允许多个值,则这些值之间用逗号 (,) 分隔。选项名称与其值通过等号 (=) 分隔。多值选项还具有 -= 和 += 作为分隔符,它不是用给定值替换默认值,而是修改默认值以删除或包含给定值。

/etc/apt/sources.list.d/nodesource.list应该看起来像这样:

deb [arch=amd64 signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main
Run Code Online (Sandbox Code Playgroud)

.sources- DEB822 风格格式

根据sources.list(5)联机帮助页,如果您使用 DEB822 格式,则选项的设置方式与其他字段相同。

选项与所有其他字段具有相同的语法:字段名称用冒号 (:) 分隔,并且可以选择与其值分隔。请特别注意,多个值由空格(如空格、制表符和换行符)分隔,而不是像单行格式那样由逗号分隔。像 Architectures 这样的多值字段也有 Architectures-Add 和 Architectures-Remove 来修改默认值而不是替换它。

/etc/apt/sources.list.d/nodesource.sources应该看起来像这样:

Enabled: yes
Types: deb
URIs: https://deb.nodesource.com/node_20.x
Suites: nodistro
Components: main
Architectures: amd64
Signed-By: /etc/apt/keyrings/nodesource.gpg
Run Code Online (Sandbox Code Playgroud)

有关的: