跳过特定包的更新并继续更新所有其他包

跳过特定包的更新并继续更新所有其他包

几个月后,我尝试更新生产服务器。在更新 apt 缓存时,我收到以下消息。

sudo apt update
Hit:1 http://tw.archive.ubuntu.com/ubuntu xenial InRelease
Hit:2 http://tw.archive.ubuntu.com/ubuntu xenial-updates InRelease
Hit:3 http://tw.archive.ubuntu.com/ubuntu xenial-backports InRelease
Get:4 http://security.ubuntu.com/ubuntu xenial-security InRelease [102 kB]                                                          
Ign:5 http://download.owncloud.org/download/repositories/stable/Ubuntu_16.04  InRelease
Hit:6 http://download.owncloud.org/download/repositories/stable/Ubuntu_16.04  Release
Get:7 http://download.owncloud.org/download/repositories/stable/Ubuntu_16.04  Release.gpg [481 B]
Ign:7 http://download.owncloud.org/download/repositories/stable/Ubuntu_16.04  Release.gpg
Reading package lists... Done 
N: Ignoring file '50unattended-upgrades.ucf-old' in directory '/etc/apt/apt.conf.d/' as it has an invalid filename extension
W: GPG error: http://download.owncloud.org/download/repositories/stable/Ubuntu_16.04  Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 47AE7F72479BC94B
E: The repository 'http://download.owncloud.org/download/repositories/stable/Ubuntu_16.04  Release' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

我发现无法验证其中一个软件包ownloud。我想暂时跳过更新此软件包,然后继续更新其他软件包。

问题:

  1. 我是否应该继续sudo apt upgrade升级所有其他版本?
  2. 在以下情况下,如何解决无法验证软件包公钥的问题:

(我) 我信任该软件包并且想要升级吗?

(ii) 我不想升级这个包? (不过我以后会处理这个问题)。

答案1

好的,首先,特别是在生产服务器上,您必须只拥有真正需要的源列表。其他一切都必须删除。然后,您拥有的每个源列表都应提供trusted软件包,检查方法很简单 - 每个提供的软件包都由提供它的人签名。您的系统有可以验证软件包签名的密钥。可以使用 查看这些密钥apt-key list。您缺少 的密钥http://download.owncloud.org/download/repositories/stable/Ubuntu_16.04。我看到Owncloud的密钥几个月前已经过期,他们发布了一个新的。您可以从 获得它http://download.owncloud.org/download/repositories/stable/Ubuntu_16.04/Release.key。下载它wget ...并使用 导入它apt-key add <filename>。运行apt-get update以刷新缓存。

接下来 - 您要问如何屏蔽软件包以防止其被更新。这可以通过 来完成sudo apt-mark hold package_name。希望这对您有所帮助。

相关内容