apt-get - 选择 sources.list.d 中最旧的 google-chrome 文件

apt-get - 选择 sources.list.d 中最旧的 google-chrome 文件

在我的文件夹中/etc/apt/sources.list.d有以下文件:

google-chrome-repo.列表:

deb [arch=amd64 signed-by=/usr/share/keyrings/google-chrome-keyring.gpg] https://dl.google.com/linux/chrome/deb/ stable main
deb-src [arch=amd64 signed-by=/usr/share/keyrings/google-chrome-keyring.gpg] https://dl.google.com/linux/chrome/deb/ stable main

在文件夹中/usr/share/keyrings我有一个名为google-chrome-keyring.gpg

如果我安装 google-chrome:

sudo apt-get install google-chrome-stable

令人厌烦的第二个文件的/etc/apt/sources.list.d名称为google-chrome.list,其内容为:

### THIS FILE IS AUTOMATICALLY CONFIGURED ###
# You may comment out this entry, but any other modifications may be lost.
deb [arch=amd64] https://dl.google.com/linux/chrome/deb/ stable main

以及/etc/apt/trusted.gpg.d文件夹中名为google-chrome.gpg

如果我不删除烦人的自动生成的文件/etc/apt/sources.list.d/google-chrome.list,那么命令:

sudo apt-get purge google-chrome-stable

会出现以下错误:

E: Conflicting values set for option Signed-By regarding source https://dl.google.com/linux/chrome/deb/ stable: /usr/share/keyrings/google-chrome-keyring.gpg != 
E: The list of sources could not be read.

我的目标是能够根据需要多次执行apt-get install和删除 google-chrome,而不必每次都先删除自动生成的文件。apt-get purge

我怎样才能得到这个?有没有办法apt-get忽略该文件?

其他主题中提出的解决方案delete that file实际上并不实用。

我希望能够apt-get直接使用上面写的内容而不是脚本或替代函数。

如果有类似这样的内容就好了Dpkg::Options::=

Of multiple coincident files in "sources.list.d", only consider the oldest one (the one created first).

答案1

我认为您明确要求的是不可能的(仅使用最旧的源文件)。

但是,您可以创建一个在使用/DPkg::Post-Invoke后运行的命令来删除您不想要的文件。aptdpkg

创建文件/etc/apt/apt.conf.d/100post-invoke(您可以随意命名),内容如下:

# This is a list of shell commands to run after invoking dpkg/apt-get #
DPkg::Post-Invoke { "rm -f /etc/apt/sources.list.d/google-chrome.list"; };

现在,运行任何apt installapt purge命令后,该文件/etc/apt/sources.list.d/google-chrome.list将被删除(如果不存在,则将被忽略)。

当然,您可以向文件中添加任意数量的命令来定制//etc/apt/apt.conf.d/100post-invoke的行为。aptdpkg

相关内容