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

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

使用 Ubuntu 22.04。我已添加nodejsrepo遵循官方手册。然而,当我这样做时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'

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

[signed-by=/etc/apt/keyrings/nodesource.gpg]

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

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

deb [arch=amd64,signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main

答案1

有两种格式允许您向apt源添加多个选项:单行样式格式(使用.list中的文件/etc/apt/sources.list.d)和 DEB822 样式格式(使用.sources中的文件)/etc/apt/sources.list.d。目前使用的是单行样式格式,但计划逐步将 DEB822 样式格式变为默认格式。下面介绍了每种格式的用法。


.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

.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

有关的:

相关内容