Mongo(来自“humongous”-巨大)是一个高性能、开源、无模式、面向文档的数据库,是最流行的NoSQL数据库之一。它使用JSON作为文档格式,可以跨多个服务器节点进行扩展和复制。关于许可证更改的故事MongoDB的上游决定更改服务器代码的许可证已经一年多了。之前的许可证是GNUAffero通用公共许可证v3(AGPLv3)。然而,上游公司编写了一个新的许可证,旨在允许运行MongoDB-as-a-service的公司回馈社区。新许可证称为服务器端公共许可证(SSPLv1),有关此计划的更多信息及其解释可在MongoDBSSPL常见问题解答中找到。Fedora一直只包含自由软件。当SSPL发布时,Fedora确定它不是自由软件许可证。在许可证更改日期(2018年10月)之前发布的所有MongoDB版本都可以保留在Fedora中,但之后从未更新的软件包会带来安全问题。因此,从Fedora30开始,Fedora社区决定彻底移除MongoDB服务器。开发商有哪些选择?是的,还有其他选择,例如PostgreSQL在最新版本中也支持JSON,它可以在不再使用MongoDB的地方使用它。使用JSONB类型,索引在PostgreSQL中运行良好,性能可与MongoDB媲美,甚至不受ACID的影响。开发人员可能选择MongoDB的技术原因并没有随着许可证的改变而改变,所以很多人仍然想使用它。重要的是要认识到SSPL许可证仅针对MongoDB服务器发生变化。从MongoDB上游开发的其他项目,例如MongoDB工具、C和C++客户端库以及各种动态语言的连接器,用于客户端(在通过网络与服务器通信的应用程序中)。由于这些软件包的许可方仍然自由(主要是Apache许可),因此它们保留在Fedora存储库中,因此用户可以使用它们进行应用程序开发。唯一的变化实际上是服务器包本身,它已从Fedora存储库中完全删除。让我们看看Fedora用户如何获得非自由软件包。如何从上游安装MongoDBServer当Fedora用户想要安装MongoDBServer时,需要直接从上游获取MongoDB。但是,上游不为Fedora提供RPM包。取而代之的是,MongoDB服务器以源代码压缩包的形式提供,用户需要自行编译(这需要一些开发知识),或者Fedora用户可以使用一些兼容的包。在兼容选项中,最好的选择是RHEL-8RPM。以下步骤描述了如何安装它们以及如何启动守护进程。1.使用upstreamRPM创建仓库(RHEL-8build)$sudocat>/etc/yum.repos.d/mongodb.repo>>EOF[mongodb-upstream]name=MongoDBUpstreamRepositorybaseurl=https://repo.mongodb.org/yum/redhat/8Server/mongodb-org/4.2/x86_64/gpgcheck=1enabled=1gpgkey=https://www.mongodb.org/static/pgp/server-4.2.ascEOF2,安装meta包,拉取服务器和工具包$sudodnfinstallmongodb-org...Installed:mongodb-org-4.2.3-1.el8.x86_64mongodb-org-mongos-4.2.3-1.el8.x86_64mongodb-org-server-4.2.3-1.el8.x86_64mongodb-org-shell-4.2.3-1.el8.x86_64mongodb-org-tools-4.2.3-1.el8.x86_64完成!3.启动MongoDB守护进程$sudosystemctlstatusmongodmongod.service-MongoDB数据库服务器已加载:已加载(/usr/lib/systemd/system/mongod.service;已启用;供应商预设:已禁用)活动:活动(运行)自周六2020-02-0812:33:45美国东部时间;2s前文档:https://docs.mongodb.org/manual过程:15768ExecStartPre=/usr/bin/mkdir-p/var/run/mongodb(code=exited,status=0/SUCCESS)P进程:15769ExecStartPre=/usr/bin/chownmongod:mongod/var/run/mongodb(代码=退出,状态=0/成功)进程:15770ExecStartPre=/usr/bin/chmod0755/var/run/mongodb(code=exited,status=0/SUCCESS)Process:15771ExecStart=/usr/bin/mongod$OPTIONS(code=exited,status=0/SUCCESS)MainPID:15773(mongod)内存:70.4MCPU:611msCGroup:/system.slice/mongod.service4。通过mongoshell连接服务器验证是否运行$mongoMongoDBshellversionv4.2.3connectingto:mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodbImplicitsession:session{"id":UUID("20b6e61f-c7cc-4e9b-a25e-5e306d60482f")}MongoDB服务器版本:4.2.3欢迎使用MongoDBshell。如需交互式帮助,请键入“help”。有关更全面的文档,请参阅http://docs.mongodb.org/---就是这样如您所见,RHEL-8包是完全兼容的,只要Fedora包与RHEL-8兼容,它们就应该保持兼容。注意使用必须遵守SSPLv1许可。
