在 RHEL 8 上安装 MongoDB | AWS EC2 — 无法同步缓存

在 RHEL 8 上安装 MongoDB | AWS EC2 — 无法同步缓存

我正在尝试在我的 RedHat 8 | AWS EC2 实例上安装 MongoDB...

/etc/yum.repos.d/mongodb-org-4.0.repo

[mongodb-org-4.0]
name=MongoDB Repository
baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc

然后 ...yum repolist

MongoDB Repository                                                                                                                                                                 366  B/s | 390  B     00:01
Error: Failed to synchronize cache for repo 'mongodb-org-4.0'

...

可能是 RHEL 8 作为新版本导致了问题?

答案1

许多为 RHEL 构建的东西也需要 EPEL,但 EPEL 8 尚不可用。

其中之一是mock,一个协调构建 RPM 包以进行分发的软件包,它本身位于 EPEL 中,并且尚未具有可用于 RHEL 8 的配置。

这个问题可能要等几个月才能解决,然后 EPEL 才能mock使用。在此期间,您应该在 RHEL 7 上进行部署。

答案2

其他可能的原因可能是 URL 错误或 repo URL 根本不适用于 RHEL8。如果不是这种情况,请尝试清理 yum 缓存(可能已损坏)。

以详细模式运行缓存可能会显示一些内容,例如

sudo dnf makecache --verbose --disablerepo="*" --enablerepo=mongodb-org-4.0

答案3

虽然接受迈克尔·汉普顿的回答在回答时可能是准确的,EPEL 已经为 EL8 提供一段时间了:

$ sudo rpm -q --changelog epel-release | awk '/8-7/,/8-1/'
* Thu Oct 10 2019 Stephen Smoogen <[email protected]> - 8-7.el8
- Remove failovermethod from EPEL8 tree. It is no longer needed.

* Mon Sep 16 2019 Stephen Smoogen <[email protected]> - 8-6.el8
- Change gpg key to use -8 versus -$releasever. This fixes bash problem

* Tue Aug 06 2019 Stephen Smoogen <[email protected]> - 8-5.el8
- Fix playground release to have os/ on its name [Kevin Fenzi]
- Make sure all values of $release are $releasever

* Thu Aug 01 2019 Pablo Greco <[email protected]> - 8-4
- Use the correct var for dnf to expand
- Update playground source url
- Remove epel-modules repo
- Use https in baseurl

* Thu Aug 01 2019 Stephen Smoogen <[email protected]> - 8-3
- Make sure that the key name is named correctly

* Thu Aug 01 2019 Stephen Smoogen <[email protected]> - 8-2
- Make baseurl paths match dl.fedoraproject.org
- Add draft of epel8 packaging
- Fix docs

* Thu Jul 18 2019 Stephen Smoogen <[email protected]> - 8-1

如果你使用 MongoDB YUM存储库那么你将拥有适用于 EL8 的 4.2 版本(注意,这会将版本编号添加到 repo ID 中):

[mongodb-org-4.2]                                                                               
name=MongoDB Repository 4.2                                                                     
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/                 
gpgcheck=1                                                                                                        
enabled=1                                                                                                         
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc

[mongodb-org-4.0]                                                                               
name=MongoDB Repository 4.0                                                                     
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/                 
gpgcheck=1                                                                                                        
enabled=0                                                                                                         
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc

如果您尝试将 repo 文件与 EL8 4.0 一起使用,那么您将看到:

$ sudo dnf makecache --disablerepo="*" --enablerepo=mongodb-org-4.0
MongoDB Repository 4.0                                                                                                                                                             369  B/s | 390  B     00:01    
Error: Failed to synchronize cache for repo 'mongodb-org-4.0'

使用详细模式,你可以看到错误的提示(EL8 没有 4.0 仓库):

$ sudo dnf makecache --verbose --disablerepo="*" --enablerepo=mongodb-org-4.0
Loaded plugins: builddep, changelog, config-manager, copr, debug, debuginfo-install, download, generate_completion_cache, needs-restarting, playground, repoclosure, repodiff, repograph, repomanage, reposync
DNF version: 4.0.9
cachedir: /var/cache/dnf
Unknown configuration value: failovermethod=priority in /etc/yum.repos.d/puppet5.repo; Configuration: OptionBinding with id "failovermethod" does not exist
Making cache files for all metadata files.
mongodb-org-4.0: has expired and will be refreshed.
repo: downloading from remote: mongodb-org-4.0
MongoDB Repository 4.0                                                                                                                                                             367  B/s | 390  B     00:01    
Cannot download 'https://repo.mongodb.org/yum/redhat/8/mongodb-org/4.0/x86_64/': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried.
Error: Failed to synchronize cache for repo 'mongodb-org-4.0'

根据 MongoDB 的 Jira(服务器-37772),于 2019 年 7 月 29 日下午 05:48:23 GMT+0000 标记为已解决,已请求对 MongoDB 早期版本的 EL8 软件包进行反向移植,但它们尚未显示在存储库中:

请注意,从MongoDB 下载页面,选择 rhel80x64 会产生:

因此,您可以将 EL8 与 4.2 一起使用,或者您需要将 EL7 与以前的 MongoDB 发行版本一起使用(至少目前如此),或者您可以使用 Percona 的发行版:

相关内容