我使用了Niry 的出色回答的第一种选项(或类似的选项)来在apt-get update
期间创建了一个本地仓库,并通过apt配置文件中的APT::Update::Pre-Invoke
指令完成。谢谢 Niry。
我还添加了一些额外步骤进行即时包验证...
(不幸的是,根据 SE 规则,我似乎无法将此后续评论内联添加为评论?)
序言
你会注意到Niry的方法在
/etc/apt/sources.list.d/zoomdebs.list
中的repo定义中添加了可信标志
deb [trusted=yes lang=none]
。这意味着你本地repo的校验和被明确地信任。这些校验和仅从下载的文件创建而来。虽然这个deb包相对安全(因为wget中有https),但这并不排除zoom.us托管的zoom_amd64.deb文件在其网站上发生了变化。大多数软件包系统都会进行某种形式的软件包签名验证。我的系统软件包管理器(除非另有指示)通过获取并检查Release文件上的签名,然后从Packages文件中获取相应的安全软件包校验和来执行此操作。
那么我还需要采取哪些额外步骤呢?
首先,你需要安装
debsig-verify
。使用
apt-get install
命令安装它,或者其他方式也可以。然后按照Niry的第一种选项进行操作。在生成的文件
/etc/apt/apt.conf.d/100update_zoom
中,它看起来有点像这样:
APT::Update::Pre-Invoke {"cd /usr/local/zoomdebs && wget -qN https://zoom.us/client/latest/zoom_amd64.deb && && apt-ftparchive packages . > Packages && apt-ftparchive release . > Release";};
将命令
dpkg-sig --verify zoom_amd64.deb
添加如下:
APT::Update::Pre-Invoke {"cd /usr/local/zoomdebs && wget -qN https://zoom.us/client/latest/zoom_amd64.deb && dpkg-sig --verify zoom_amd64.deb && apt-ftparchive packages . > Packages && apt-ftparchive release . > Release";};
现在你需要Zoom软件包维护者的gpg密钥。根据你的偏执程度选择最适合你的方式获取它。我只是使用了:
wget -O Zoom.pubkey.pem https://zoom.us/linux/download/pubkey
,但你也可以去Ubuntu的密钥服务器上获取,例如:
https://keyserver.ubuntu.com/...。然后,如果你对此感到满意,将其安装到apt的gpg密钥环中:
sudo apt-key add Zoom.pubkey.pem
如果一切看起来都很好,当你运行apt-get update时,你应该会在输出的顶部附近看到以下内容。
Processing zoom_amd64.deb...
GOODSIG _gpgbuilder 396060CADD8A75220BFCB369B903BF1861A7C71D 1643092553
如果更新失败,您将会收到如下消息:
E: Problem executing scripts APT::Update::Pre-Invoke 'cd /usr/local/zoomdebs && wget -qN https://zoom.us/client/latest/zoom_amd64.deb && dpkg-sig --verify zoom_amd64.deb && apt-ftparchive packages . > Packages && apt-ftparchive release . > Release'
E: Sub-process returned an error code