我按照此处给出的说明在装有 CentOS 的计算机上安装了 MariaDB:
MariaDB 包存储库设置和使用 - MariaDB 知识库
我使用的基本命令是:
sudo yum install MariaDB-server MariaDB-client
我没有安装 Maxscale 或 percona。
MariaDB 安装已成功完成,但现在如果我在 bash shell 中输入尚未卸载的命令,则会收到此错误:
Failed to search for file: Failed to download gpg key for repo 'mariadb-main': Curl error (37): Couldn't read a file:// file for file:///etc/pki/rpm-gpg/MariaDB-Server-GPG-KEY [Couldn't open file /etc/pki/rpm-gpg/MariaDB-Server-GPG-KEY]
例如,如果我输入命令 ftp,以前我会收到一条消息,指示未安装 ftp,并且我会得到一些关于我想要下载的命令的建议。然而,现在我明白了:
[username@localhost ~]$ ftp
bash: ftp: command not found...
Failed to search for file: Failed to download gpg key for repo 'mariadb-main': Curl error (37): Couldn't read a file:// file for file:///etc/pki/rpm-gpg/MariaDB-Server-GPG-KEY [Couldn't open file /etc/pki/rpm-gpg/MariaDB-Server-GPG-KEY]
[username@localhost ~]$
经过一番搜索后,我发现这是因为文件 etc/yum.repos.d/mariadb.repo 有一个条目:
gpgkey = file:///etc/pki/rpm-gpg/MariaDB-Server-GPG-KEY
并且 etc/pki/rpm-gpg 中不存在 MariaDB-Server-GPG-KEY 文件
我想这应该是我安装 mariadb 时自动创建的?如何让这个 bash 错误消失?有什么方法可以手动下载或创建此文件吗?
--- 编辑 ---
解决如下:
下载了 RPM-GPG-KEY-MariaDB,如 Philip 的回答中所述(https://unix.stackexchange.com/a/602962/28907)
复制到/etc/pki/rpm-gpg/
将/etc/yum.repos.d/mariadb.repo
行更改gpgkey = file:///etc/pki/rpm-gpg/MariaDB-Server-GPG-KEY
为gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-MariaDB
将 mariadb.repo 文件中其他条目的 gpgcheck 设置为 0(我没有安装 maxscale 和 mariadb enterprise)
答案1
电信公司的评论回答了这个问题的根本原因:
显然您已经安装了 PackageKit-command-not-found RPM 软件包。它向 shell 的“未找到命令”错误处理程序添加了特殊的自定义,该处理程序尝试查看该命令是否存在于当前未安装的包中,并针对这种情况生成信息更丰富的错误消息。
但要进行检查,您必须可以访问所有已配置的软件包存储库 - 包括可用的 GPG 密钥。如果出现问题,标准错误消息将被替换为更神秘的消息。
按照劳伦蒂诺的回答这是下载正确的 gpg 密钥以用于存储库mariadb-main
并移动到目录的简单问题/etc/pki/rpm-gpg/
:
wget https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
其他存储库将具有不同的密钥,并且此处无法合理地提供详尽的链接列表。
答案2
对我来说,解决方案是手动执行
sudo wget https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
直接在目录 /etc/pki/rpm-gpg/ 内,并创建文件 RPM-GPG-KEY-MariaDB。