在我的个人电脑(Win 11)上安装了带有 Ubuntu 20.04 的 WSL2,但在安装程序时遇到了一些困难。
我尝试安装 OpenFoam 和 Geogebra,但都出现与证书相关的错误。
有人能帮助我理解原因以及如何解决吗?
安装 GEOGEBRA 时:
sudo apt-add-repository -u 'deb http://www.geogebra.net/linux/ stable main'
我收到错误:
...
Err:17 https://sourceforge.net/projects/openfoam/files/repos/deb focal Release
Certificate verification failed: The certificate is NOT trusted. The certificate chain uses expired certificate. Could not handshake: Error in the certificate verification. [IP: 204.68.111.105 443]
Get:20 http://archive.ubuntu.com/ubuntu focal-updates/universe Translation-en [207 kB]
Get:21 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 c-n-f Metadata [20.7 kB]
Reading package lists... Done
W: GPG error: http://www.geogebra.net/linux stable InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY C072A32983A736CF
E: The repository 'http://www.geogebra.net/linux stable InRelease' 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.
E: The repository 'https://dl.openfoam.com/repos/deb focal Release' does not have a Release file.
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.
使用OpenFOAM:
添加存储库
curl https://dl.openfoam.com/add-debian-repo.sh | sudo bash
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 3862 100 3862 0 0 11392 0 --:--:-- --:--:-- --:--:-- 11358
Detected distribution code-name: focal
Overwrote /etc/apt/sources.list.d/openfoam.list
Importing openfoam gpg key... done
Overwrote /etc/apt/trusted.gpg.d/openfoam.gpg
Running apt-get update... done
The repository is setup! You can now install packages.
安装首选包:
sudo apt-get install openfoam2112-default
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package openfoam2112-default
在此链接 他们提出了这样的解决方案:
sudo apt install ca-certificates
对于地理数学,我发现这个建议的解决方案。
但在继续之前我想更好地了解这个问题。
有人可以帮助我更好地理解它吗?
答案1
因此,这两者是相关的,但又有所不同。这里有几个不同的主题需要讨论:
Ubuntu 20.04 上的 PPA 密钥
这两个应用程序都是从 PPA(个人软件包存档)安装的。这是由这些应用程序的维护者设置的存储库,用于简化 Ubuntu 下的安装。
作为一项安全措施,apt
要求这些私有存储库中的包使用维护者的私钥进行签名。为了验证签名,apt
需要相应的公钥。这就是apt-key
您在 Geogebra 中看到的命令的目的回答你提到过。如果你有兴趣,可以谷歌搜索“公钥加密”获取更多详细信息。
OpenFOAM 正在做同样的事情,但是您通过以下方式运行脚本:
curl https://dl.openfoam.com/add-debian-repo.sh | sudo bash
... 实际上就是apt-key add
为了他们的钥匙而做的。
添加密钥后,您还需要使用 更新本地 repo 缓存sudo apt update
。同样,这在 Geogebra 答案中提到过,并且也由 OpenFOAM 脚本自动完成。
20.04 之后的 PPA 密钥
请注意,Ubuntu 20.04 是最后一个主要版本,其中此特定过程完全按照此方式工作。在 20.04 中,添加密钥将允许任何使用该密钥签名的软件是可信的。这在某种程度上存在安全风险,因为如果私钥泄露,它可能会被用来签名恶意软件,然后你的系统就会信任这些恶意软件。话虽如此,这种情况已经持续了很多年了。就我个人而言,我很高兴他们改变了它。
现在,在 20.10 及更高版本中,您必须将每个存储库配置为具有受信任的密钥。由该密钥对签名的位于不同存储库中的软件将不再受信任。请参阅这个优秀的答案了解详细信息。但也要意识到,配置存储库密钥的方法可能会随着时间的推移而改变和改进。
因此,在您的系统上安装各自的 apt 密钥后,Geogebra 和 OpenFOAM 就应该安装。
OpenFOAM 错误
但是,您会看到 OpenFOAM 出现一个有趣的错误:
E: Unable to locate package openfoam2112-default
这个问题无法通过安装来解决ca-certificates
,因为它们实际上是 WSL 上默认 Ubuntu 20.04 安装的一部分。
我可以告诉你,我刚刚在我的 WSL/Ubuntu 20.04 上尝试过,并且它运行正常,所以我能想到两种可能性:
- 您的系统上的 repo 未正确更新。
- 当您尝试安装时,repo 中出现暂时故障。
由于我已经成功完成此操作,因此我建议您再试一次:
sudo apt update
sudo apt-get install openfoam2112-default
如果这不起作用,请再次运行脚本,然后重试:
curl https://dl.openfoam.com/add-debian-repo.sh | sudo bash
sudo apt-get install openfoam2112-default
运行从网上下载的脚本
好的,这也引出了有关此类脚本的话题。由于我们在这里讨论的是“安全”话题,并且您已经表达了兴趣,请记住,从 Web 运行脚本,尤其将它们传递给sudo
,存在相当大的安全风险。
你必须:
- 相信维护者没有做一些邪恶的事情。
- 相信该网站尚未被占领。
- 相信该项目还没有被出售或移交给一个正在做一些邪恶事情的“坏人”(这已经发生了)。
或者:
- 您需要检查正在运行的脚本并确保它看起来是安全的。您可以先发出
curl https://dl.openfoam.com/add-debian-repo.sh
没有将其传递给sudo bash
。
因此,我通常更喜欢 PPA 上的项目,只要它提供指示安装他们的密钥,而不是提供自动化“更易于使用”的脚本。
ca 证书
最后,既然您问到:
sudo apt install ca-certificates
这确实涵盖了这个答案(这也恰好是 Google 搜索结果的首位)。
但在这种情况下它不会有帮助。您链接到的 OpenFOAM 线程是由于:
sourceforge.net 的证书已过期,因此我无法创建存储库,因此无法安装系统
这不是您遇到的问题(或错误)。