使用 Ubuntu 22.04。我已添加nodejs
repo遵循官方手册。然而,当我这样做时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]
如何在 中使用多个选项apt
值sources.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
有关的: