当前位置: 首页 > wzjs >正文

数字化文化馆网站建设网络推广公司运作

数字化文化馆网站建设,网络推广公司运作,烟台建站价格,济南市住房与城乡建设厅网站在ARM系统上离线安装MongoDB的坎坷历程与解决方案 文章目录 在ARM系统上离线安装MongoDB的坎坷历程与解决方案环境背景安装尝试与问题架构兼容性问题编译问题 解决方案解决依赖缺失解决架构兼容性解决编译问题 最终解决方案与确认总结 在ARM架构设备上进行软件开发和部署时&…

在ARM系统上离线安装MongoDB的坎坷历程与解决方案

在这里插入图片描述

文章目录

  • 在ARM系统上离线安装MongoDB的坎坷历程与解决方案
    • 环境背景
    • 安装尝试与问题
      • 架构兼容性问题
      • 编译问题
    • 解决方案
      • 解决依赖缺失
      • 解决架构兼容性
      • 解决编译问题
    • 最终解决方案与确认
    • 总结

在ARM架构设备上进行软件开发和部署时,数据库的安装和配置是关键环节。本文将详细分享我在ARM系统上离线安装MongoDB过程中遇到的各种问题及对应的解决方法,希望能为有相同经历的开发者提供一些参考。

环境背景

我所使用的设备是ARM架构的服务器,运行着基于linux内核的自有操作系统。由于网络环境限制,需要进行MongoDB的离线安装。最初的目标是安装MongoDB 5.0版本,以满足项目对数据库功能的需求。

安装尝试与问题

架构兼容性问题

为了解决依赖问题,但当执行mongod命令启动服务时,却出现了Illegal instruction (core dumped)错误。这表明MongoDB二进制文件尝试执行的指令集不被当前CPU支持。

通过lscpu命令查看CPU信息,确认了我的ARM设备CPU架构为aarch64。进一步分析发现,可能是由于较新的MongoDB版本使用了特定ARM64芯片才支持的高级指令集,而我的设备CPU不支持这些指令。

编译问题

考虑到可能是预编译的二进制文件与我的设备不兼容,我决定尝试从源代码编译MongoDB。从MongoDB官方GitHub仓库下载了5.0.15版本的源代码后,按照官方文档进行编译。在执行scons命令时,又遇到了一系列问题。

首先是缺少psutil Python模块,导致编译中断。这是因为MongoDB编译过程依赖该模块来获取系统信息。接着,在解决了psutil问题后,又出现了缺少yaml模块的错误,同样是因为编译依赖。

在解决了这些Python模块依赖问题后,又遇到了编译器版本不满足要求的问题。MongoDB编译要求使用GCC 8.2或更新版本的编译器,而我系统中默认的GCC版本较低。 — 没有继续升级GCC做编译。

解决方案

解决依赖缺失

针对依赖缺失问题,找一个同类型的aarch64系统。 拷贝系统中缺失的依赖库。

ln -s libbrotlicommon.so.1.0.7 /lib64/libbrotlicommon.so.1
ln -s libkeyutils.so.1.10 /lib64/libkeyutils.so.1
ln -s libpsl.so.5.3.3 /lib64/libpsl.so.5
ln -s libbrotlidec.so.1.0.7 /lib64/libbrotlidec.so.1
ln -s libkrb5.so.3.3 /lib64/libkrb5.so.3
ln -s libsasl2.so.3.0.0 /lib64/libsasl2.so.3
ln -s libcrypto.so.1.1.1f /lib64/libcrypto.so.1.1
ln -s libkrb5support.so.0.1 /lib64/libkrb5support.so.0
ln -s libssh.so.4.8.5 /lib64/libssh.so.4
ln -s libcurl.so.4.6.0 /lib64/libcurl.so.4
ln -s liblber-2.4.so.2.10.13 /lib64/liblber-2.4.so.2
ln -s libssl.so.1.1.1f /lib64/libssl.so.1.1
ln -s libgssapi_krb5.so.2.2 /lib64/libgssapi_krb5.so.2
ln -s libldap-2.4.so.2.10.13 /lib64/libldap-2.4.so.2
ln -s libunistring.so.2.1.0 /lib64/libunistring.so.2
ln -s libidn2.so.0.3.7 /lib64/libidn2.so.0
ln -s liblzma.so.5.2.5 /lib64/liblzma.so.5
ln -s libk5crypto.so.3.1 /lib64/libk5crypto.so.3
ln -s libnghttp2.so.14.20.0 /lib64/libnghttp2.so.14

解决架构兼容性

为了解决架构兼容性问题,我尝试了多种方法。首先,从MongoDB官方网站下载了不同版本的aarch64架构的RPM包,包括较旧的版本,希望能找到一个与我的CPU指令集兼容的版本。同时,考虑到使用容器化方案可以避免不同系统环境和CPU指令集的差异,我尝试使用Docker来安装MongoDB。

在拉取ARM架构的MongoDB Docker镜像时,又遇到了镜像版本与宿主机架构不匹配的问题。例如,在拉取arm64v8/mongo:5.0镜像时,出现了no matching manifest for linux/amd64 in the manifest list entries错误,原因是我的宿主机是aarch64架构,而不是amd64架构。通过正确拉取arm64v8/mongo:5.0镜像并启动容器后,依然遇到了Illegal instruction (core dumped)错误,提示我的CPU不支持ARMv8.2 - A或更高版本的特性,而MongoDB 5.0及以上版本需要该特性。

解决编译问题

对于编译过程中的问题,我按照以下步骤逐一解决。首先,安装缺失的Python模块。使用pip3 install psutilpip3 install pyyaml命令分别安装了psutilyaml模块。

对于编译器版本不满足要求的问题,我使用了软件集合(Software Collections,SCL)来安装高版本的GCC。在CentOS系统上,通过以下命令安装了devtoolset - 8软件集合,其中包含GCC 8系列的编译器:

sudo yum install -y centos-release-scl
sudo yum install -y devtoolset-8

然后通过scl enable devtoolset - 8 bash命令启用了GCC 8环境。 – 自有系统不支持,可以自己编译。应非自有环境和判断未必可以用,没有继续执行。

最终解决方案与确认

经过多次尝试和调整,我发现使用MongoDB 4.4.9版本可以在我的ARM系统上正常运行。在使用arm64v8/mongo:4.4.9镜像启动Docker容器后,成功进入容器并启动了MongoDB服务。

在容器内,使用以下命令启动MongoDB服务:

mongod --dbpath /data/db

为了验证MongoDB是否正常运行,使用mongo客户端连接到MongoDB服务器:

mongo

成功进入MongoDB的交互式shell,并能够执行一些简单的命令,如查看数据库列表:

show dbs

这表明MongoDB 4.4.9版本在我的ARM系统上已经成功安装并正常工作。

使用官网的aarch64系统架构的mongodb4.4.9对应版本可以完成系统的兼容运行。

总结

在ARM系统上进行MongoDB的离线安装过程中,遇到了依赖缺失、架构兼容性以及编译等多方面的问题。通过不断尝试不同的解决方案,包括调整仓库配置、更换不同版本的安装包、使用容器化技术以及解决编译依赖等,最终找到了适合我设备的MongoDB版本。希望本文的经验分享能够帮助其他开发者在类似的环境中顺利完成MongoDB的安装和配置。

http://www.dtcms.com/wzjs/158084.html

相关文章:

  • 怎么做网站开发微信小程序怎么开通
  • 网站开发后期要解决的问题seo优化技术培训中心
  • 沂水住房与城乡建设局网站深圳互联网公司排行榜
  • 主流的网页设计软件seo搜索铺文章
  • 开网络公司做网站挣钱吗客户引流推广方案
  • 用dw可以做网站吗网络营销有哪些内容
  • 做网站标题代码营销百度app下载手机版
  • 沭阳网站建设招聘培训机构网站制作
  • 织梦网站写软文一篇多少钱合适
  • 通州网站建设公司深圳网络营销平台
  • 哪个网站用织梦做的网站推广优化之八大方法
  • 网站建设标题怎么写百度搜索引擎介绍
  • 建设工程信息服务平台新网站windows优化大师官方网站
  • 军事网站模板下载友情链接软件
  • 阿里云服务器创建网站吗网站排名软件推荐
  • 抖音代运营ppt网站优化平台
  • 网站建好后新闻发布平台
  • 南京制作网页培训机构seo快速排名优化方式
  • 池州做网站广告营销策略有哪些
  • ui设计师个人网站建设优化网站排名公司
  • css做企业网站html网页制作代码大全
  • 政府网站平台建设的一些问题网站底部友情链接
  • 搭建农村电商平台免费seo营销软件
  • 门户网站开发如何对一个网站进行seo
  • 经营性网站备案需要什么百度收录量查询
  • 流量购买网站免费推广平台哪些比较好
  • 大理建设招标有限公司网站网站性能优化的方法有哪些
  • 深圳做网站公合肥关键词排名推广
  • 长沙 网站开发镇江网站关键字优化
  • 苏州电商关键词优化企业网站seo托管怎么做