我想得到一个解释,为什么apt list
命令arm64
在我的计算机/系统(Linux Mint 22(基于 Ubuntu Noble))上显示两个包amd64
。解释清楚后,让我们讨论一下我是否可以做些什么。
请注意,为了简洁起见,我从下面的列表中删除了以下消息以及可能其他不重要的字符串。
警告:
apt
没有稳定的 CLI 界面。在脚本中请谨慎使用。
以用户或 root 身份运行这些命令,或者更改我指定grep
过滤器的方式,对结果没有任何影响,结果始终相同 =arm64
我的机器上出现两个 Sublime 包amd64
。
在我开始之前,让我先提一下手册页:1)GNUgrep
;2)POSIXgrep
。
# apt list | grep -v 'amd64\|all\|i386' # I ran this as root
sublime-merge/apt/stable 2102 arm64
sublime-text/apt/stable 4189 arm64
$ apt list | grep 'arm64$' # I ran this as an ordinary user
sublime-merge/apt/stable 2102 arm64
sublime-text/apt/stable 4189 arm64
现在,让我们了解一下这些包的一些基本信息:
$ apt list sublime-text sublime-merge
sublime-merge/wilma,apt/stable 2102 amd64
sublime-merge/apt/stable 2102 arm64
sublime-text/apt/stable,now 4189 amd64 [installed]
sublime-text/apt/stable 4189 arm64
^^ 这两个架构包到底为什么会arm64
出现?我已经很久没有编辑过大部分内容/etc/apt/sources.list.d/*.{list,sources}
来明确包含架构了,我以为它会强制执行,不是吗?
$ apt-cache policy sublime-text sublime-merge
sublime-text:
Installed: 4189
Candidate: 4189
Version table:
*** 4189 500
500 https://download.sublimetext.com apt/stable/ Packages
100 /var/lib/dpkg/status
4186 500
500 https://download.sublimetext.com apt/stable/ Packages
4180 500
500 http://packages.linuxmint.com wilma/import amd64 Packages
500 https://download.sublimetext.com apt/stable/ Packages
...
sublime-merge:
Installed: (none)
Candidate: 2102
Version table:
2102 500
500 http://packages.linuxmint.com wilma/import amd64 Packages
500 https://download.sublimetext.com apt/stable/ Packages
2096 500
500 https://download.sublimetext.com apt/stable/ Packages
2091 500
500 https://download.sublimetext.com apt/stable/ Packages
...
在适用的情况下,我已经明确设置了amd64
架构,如下所示:
deb [arch=amd64 ...
并且sublime-text
源列表文件也不例外:
$ cat /etc/apt/sources.list.d/sublime-text.list
deb [arch=amd64 signed-by=/usr/share/keyrings/sublimehq-archive.gpg] https://download.sublimetext.com/ apt/stable/
因此,现在我不确定arch=amd64
其中的这个条款实际上起什么作用,如果不阻止从此类存储库加载/下载此特定架构的话?
有人愿意解释一下吗?如果您知道如何防止这种情况发生,我将不胜感激。谢谢。
为了完整性,让我指定我已添加到操作系统的主要架构和其他架构:
$ dpkg --print-architecture
amd64
$ dpkg --print-foreign-architectures
i386
干杯。
这将是评论部分:
第一个请求来自Stephen Kitt,谢谢。
$ apt policy sublime-{text,merge}:arm64
sublime-text:arm64:
Installed: (none)
Candidate: 4189
Version table:
4189 500
500 https://download.sublimetext.com apt/stable/ Packages
4186 500
500 https://download.sublimetext.com apt/stable/ Packages
4180 500
500 https://download.sublimetext.com apt/stable/ Packages
...
sublime-merge:arm64:
Installed: (none)
Candidate: 2102
Version table:
2102 500
500 https://download.sublimetext.com apt/stable/ Packages
2096 500
500 https://download.sublimetext.com apt/stable/ Packages
2091 500
500 https://download.sublimetext.com apt/stable/ Packages
...