本文介绍在Fedora操作系统上获取MongoDB服务器(MongoDB Server)的一些信息,包括其安装方法。Mongo是一种高性能,开放源代码,无模式的面向文档的数据库,它是最受欢迎的NoSQL数据库之一,它使用JSON作为文档格式,并且可以在多个服务器节点之间进行扩展和复制。
有关许可证变更的故事 上游MongoDB决定更改服务器代码的许可证已经一年多了,先前的许可证是GNU Affero通用公共许可证v3(AGPLv3)。但是,上游公司写了一个新许可证,旨在使运行MongoDB服务的公司回馈社区,新许可证称为服务器端公共许可证(SSPLv1)。 Fedora一直只包含免费软件,当SSPL发行时,Fedora认为它不是免费软件许可证,许可证更改日期(2018年10月)之前发布的所有MongoDB版本都可能保留在Fedora中,但是以后再也不更新软件包,这样会带来安全问题。因此,从Fedora 30开始,Fedora社区决定完全删除MongoDB server。
开发人员还有哪些选择? 存在替代方案,例如PostgreSQL在最新版本中也支持JSON,并且可以在无法再使用MongoDB的情况下使用它。使用JSONB类型,索引在PostgreSQL中可以很好地工作,其性能可与MongoDB媲美,甚至不会受到ACID的影响,参考在Fedora 31/30/29发行版上安装PostgreSQL 12版本的方法。 开发人员可能选择MongoDB的技术原因并未随许可证而改变,因此许多人仍想使用它。重要的是要意识到,SSPL许可证仅更改为MongoDB server,MongoDB上游还开发了其他项目,例如MongoDB工具,C和C++客户端库以及用于各种动态语言的连接器,这些项目在客户端(要通过网络与服务器通信的应用程序中)使用。由于这些软件包的许可证是免费的(主要是Apache许可证),因此它们保留在Fedora存储库中,因此用户可以将其用于应用程序开发。 唯一的变化实际上是服务器软件包本身,它已从Fedora存储库中完全删除。
如何从上游安装MongoDB服务器 当Fedora用户想要安装MongoDB服务器时,他们需要直接向上游访问MongoDB。但是,上游不为Fedora本身提供RPM软件包。相反,MongoDB服务器可以用作源tarball,用户需要自己进行编译,或者Fedora用户可以使用一些兼容的软件包,从兼容选项中,最好的选择是RHEL-8 RPM。 以下步骤描述了如何安装它们以及如何启动守护程序。 1.使用上游RPM创建存储库(RHEL-8 builds) $ sudo cat > /etc/yum.repos.d/mongodb.repo <<EOF [mongodb-upstream] name=MongoDB Upstream Repository baseurl=https://repo.mongodb.org/yum/redhat/8Server/mongodb-org/4.2/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc EOF 注:$ sudo cat > /etc/yum.repos.d/mongodb.repo <<EOF如果不起作用,请更换为$ sudo cat > /etc/yum.repos.d/mongodb.repo <<EOF 2.安装软件包,以提取服务器和工具软件包 $ sudo dnf install mongodb-org
3.启动MongoDB守护程序 $ sudo systemctl status mongod
4.通过从mongo shell连接到服务器来验证服务器是否在运行 $ mongo
注:与RHEL-8软件包非常兼容,只要Fedora软件包与RHEL-8兼容,它就应该保持这种状态。请注意,在使用时必须遵守SSPLv1许可证。
相关主题 |