您好,这可能看起来非常基本和普遍的问题。 (但)
很多时候,当我安装软件时,添加新的存储库是要走的路。我过去常常遵循在互联网上找到的说明,如下所示:
curl -s https://example-browser-apt-release.s3.example.com/example-core.asc | sudo apt-key --keyring /etc/apt/trusted.gpg.d/example-browser-release.gpg add -
source /etc/os-release
echo "deb [arch=amd64] https://example-browser-apt-release.s3.example.com/ $LINUXDISTRO_CODENAME main" | sudo tee /etc/apt/sources.list.d/example-browser-release-${LINUXDISTRO_CODENAME}.list
sudo apt update
sudo apt install example-browser
但是我真的不明白它存储在哪里。
它们都存储在一个地方吗?
是否可以看到我随着时间的推移以及何时添加了哪些存储库
密钥存储在哪里
再次有什么方法可以看到我随着时间的推移添加了哪些内容以及何时添加
如果我不喜欢该软件,删除它们是否很重要?
我知道我问了很多问题,也许这些都是基本问题。也许我在这里缺少一个在安装外部存储库时应该注意的组件。欢迎任何见解。
非常感谢。
答案1
这仅适用于 apt 系统,其他包管理器会有所不同。
它们都存储在一个地方吗?
您是指包档案还是指向存储库的文件?软件包档案存储在 /var/cache/apt/archives 中。特定的存储库文件或条目存储在 /etc/apt/sources.list 或 /etc/apt/sources.list.d/*.list 中。请注意,列出存储库的位置与包含该列表的文件之间根本没有必要的连接。例如,您可以拥有 /etc/apt/sources.list 中的大部分存储库,事实上,Debian 曾经默认使用这些存储库。或者您可以在 opera.list 文件中拥有来自 google 的存储库,文件名并不重要,重要的是 .list。但为了使事情更加可预测和可维护,让存储库文件名与其指向的实际存储库相对应并不是一个坏主意。
是否可以看到我随着时间的推移以及何时添加了哪些存储库
你可以看看有哪些存储库,我使用inxi,因为它很简单。
inxi -r
Repos:
Active apt repos in: /etc/apt/sources.list
1: deb http://mirrors.kernel.org/debian unstable main contrib non-free
2: deb http://mirrors.kernel.org/debian/ buster main non-free contrib
3: deb http://security.debian.org/debian-security buster/updates main contrib non-free
4: deb https://liquorix.net/debian unstable main
5: deb http://www.deb-multimedia.org/ buster main non-free
Active apt repos in: /etc/apt/sources.list.d/google-chrome.list
1: deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main
Active apt repos in: /etc/apt/sources.list.d/opera-stable.list
1: deb https://deb.opera.com/opera-stable/ stable non-free #Opera Browser (final releases)
您还可以这样做:
cat /etc/apt/sources.list /etc/apt/sources.list.d/*.list
但这更难阅读,更难输入,并且不清楚哪个文件包含什么内容。 inxi 的目的是清晰地显示该信息。
我相信您添加它们时可以看到的唯一方法是添加单独的存储库文件,然后查看文件创建时间戳。可能还有另一种方法,但我不知道。
密钥存储在哪里
好问题,从来没想过。我看看能不能找到那个人。
根据:https://wiki.debian.org/SecureApt
它们位于 /etc/apt/trusted.gpg.d 和文件 /etc/apt/trusted.gpg 中
ls /etc/apt/trusted.gpg.d -w 1
debian-archive-buster-automatic.gpg
debian-archive-buster-security-automatic.gpg
debian-archive-buster-stable.gpg
debian-archive-jessie-automatic.gpg
debian-archive-jessie-security-automatic.gpg
debian-archive-jessie-stable.gpg
debian-archive-stretch-automatic.gpg
debian-archive-stretch-security-automatic.gpg
debian-archive-stretch-stable.gpg
deb-multimedia-keyring.gpg
将我拥有的存储库与这些存储库进行比较,看起来至少有一些存储库实际上存储在 /etc/apt/trusted.gpg 中,并且这是一个非零文件大小的文件。
再次有什么方法可以看到我随着时间的推移添加了哪些内容以及何时添加
同样的问题,同样的答案。
如果我不喜欢该软件,删除它们是否很重要?
您应该这样做,以避免混乱,并避免每次当您实际上不需要该数据时都必须在 apt-get update 上获取该数据。另外,随机存储库有时可能会消失、更改或损坏,此时您将遇到烦人的 apt 更新失败调试问题。还要确保使用 apt-get remove --purge 以避免在系统上留下您确实不想要的软件的配置文件。如果没有 --purge 选项,配置文件将保留在原处。
话虽如此,请注意迈克尔·霍纳在评论中所说的话,如果安全是您主要关心的问题,我认为这实际上是正确的答案。
答案2
我将在这里回答@MichaelHomer 评论中的一般性问题,因为我认为他击中了关键点:
老实说,不要从互联网上复制和粘贴(sudo!)你不懂的代码,这可能是对你的安全最需要注意的事情
您问“添加存储库(密钥环、源列表等)时(为了您的安全)需要注意什么?”
这一切都归结为您是否信任存储库的维护者在您的计算机上运行软件。添加存储库后,您就授权并信任该存储库中包含的任何软件和软件包。这对于官方发行版的基础存储库(Debian、CentOS 等)来说非常好,对于众所周知的存储库(EPEL、Atlassian 等)来说也可以。对于未知和模糊的维护的存储库,您应该保持警惕并避免添加它们。在此视图中,其组件的存储位置根本不重要。