Linux 鲲鹏云 参照 MongoDB 4.0.12 移植指南(CentOS 7.6) 踩坑记录

目录

安装GCC

升级gcc

 

安装cython

安装typing

  

依赖解决

执行编译

安装后没有mongorestore等组件



鲲鹏云移植文档https://support.huaweicloud.com/prtg-kunpengdbs/kunpengmongodb_02_0001.html

记录之间出现的问题

安装GCC

安装OS依赖包报错

Linux 鲲鹏云 参照 MongoDB 4.0.12 移植指南(CentOS 7.6) 踩坑记录

Linux 鲲鹏云 参照 MongoDB 4.0.12 移植指南(CentOS 7.6) 踩坑记录

补充概念「尝试在命令行中添加『–allowerasing』以替换有冲突的软件包,或者『skip-broken』以跳过可卸载的软件包,或者『 –nobest』不仅使用最佳候选软件包」

1解决 Problem 1: cannot install both libyaml-0.1.4-11.el7.aarch64 and libyaml-0.1.7-5.el8.aarch64

执行 yum install libyaml libyaml-devel –nobest(使用低版本的,为了和教程一致不导致后面出幺蛾子o(╥﹏╥)o)

Linux 鲲鹏云 参照 MongoDB 4.0.12 移植指南(CentOS 7.6) 踩坑记录

后面几个类似的gmp,mpfr,libmpc同样操作

这样我们的错误就剩下3个了

解决步骤末尾加上 –skip-broken(没找到其他办法了o(╥﹏╥)o)

 

补充关于openssl的,上面剩余3个均可以按照以下方法,根据关键字在mnt目录查询对应rpm进行-ivh执行

恢复OpenSSL组件到系统自带的OpenSSL 1.0.2版本(前提配置好了本地yum源)

Linux 鲲鹏云 参照 MongoDB 4.0.12 移植指南(CentOS 7.6) 踩坑记录

升级gcc

make install 后

Linux 鲲鹏云 参照 MongoDB 4.0.12 移植指南(CentOS 7.6) 踩坑记录

未解决

../../.././libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:157:10: fatal error: sys/ustat.h: No such file or directory
 #include <sys/ustat.h>
          ^~~~~~~~~~~~~
compilation terminated.

 

安装cython

 

注意python command not found 执行失败需要安装python  或者检查usr/bin/下是否有python软连接

1、下载python

# wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz

2、解压、编译安装

# tar -zxvf Python-2.7.9.tgz

# cd Python-2.7.9

# ./configure –prefix=/usr/local/python-2.7.9

# make

# make install

3、我们需要为新安装的版本添加一个软链

# ln -s /usr/local/python-2.7.9/bin/python /usr/bin/python2.7(名字与5一致)

4、#python2.7 –verison

Linux 鲲鹏云 参照 MongoDB 4.0.12 移植指南(CentOS 7.6) 踩坑记录

 

安装typing

python2.7 setup.py install 即可 ,注意后面的python都用python2.7执行!!!

Linux 鲲鹏云 参照 MongoDB 4.0.12 移植指南(CentOS 7.6) 踩坑记录

解决:https://pypi.org/project/setuptools/42.0.0/#files  下载setuptools-42.0.0.zip

进行解压和安装

Linux 鲲鹏云 参照 MongoDB 4.0.12 移植指南(CentOS 7.6) 踩坑记录

Linux 鲲鹏云 参照 MongoDB 4.0.12 移植指南(CentOS 7.6) 踩坑记录

在回到typing目录执行安装即可

  

依赖解决

    yum install pcre-devel python-devel
    # 解压安装
    tar -zxvf scons-3.0.1.tar.gz && cd scons-3.0.1
    python setup.py install

 

执行编译

#python2 buildscripts/scons.py MONGO_VERSION=4.0.12 all CFLAGS=”-march=armv8-a+crc -mtune=generic” -j64 –disable-warnings-as-errors

1报错!ERROR:root:code for hash md5 was not found.

Linux 鲲鹏云 参照 MongoDB 4.0.12 移植指南(CentOS 7.6) 踩坑记录

 解决:

编译hashlib https://files.pythonhosted.org/packages/74/bb/9003d081345e9f0451884146e9ea2cff6e4cc4deac9ffd4a9ee98b318a49/hashlib-20081119.zip
$ unzip hashlib-20081119.zip  
$ cd hashlib-20081119  
$ sudo python setup.py install

2继续报错

scons: *** No SConstruct file found.
File “/home/mongo-r4.0.12/src/third_party/scons-2.5.0/scons-local-2.5.0/SCons/Script/Main.py”, line 912, in _main

解决:这个要进入对应目录  /home/mongo-r4.0.12

 

3继续报错

Could not find <curl/curl.h> and curl lib
See /home/mongo-r4.0.12/build/scons/config.log for details

解决: yum install libcurl-devel

 

4继续报错(但是能编译了^_^)

cc1plus: out of memory allocating 135143 bytes after a total of 1441792 bytes

cc1plus: out of memory allocating 223400 bytes after a total of 22872064 bytes
Compiling build/opt/mongo/s/client/rs_local_client.o
scons: *** [build/opt/mongo/db/s/migration_source_manager.o] Error 1
scons: *** [build/opt/mongo/db/repair_database_and_check_version.o] Error 1
scons: building terminated because of errors.
build/opt/mongo/db/s/migration_source_manager.o failed: Error 1
build/opt/mongo/db/repair_database_and_check_version.o failed: Error 1

解决分配swap内存

创建一个目录/opt/mongodb/

# mkdir /opt/mongodb/

# rm -rf /opt/mongodb/swap

创建一个xGB大小的文件(按自己机器需要配置)

把创建的文件变成SWAP分区

  • 启用这个SWAP文件

看看SWAP是否生效

编译工作完成后关闭SWAP

5继续编译继续报错No space left on device

挂载大容量磁盘

https://www.cnblogs.com/zishengY/p/7137671.html

安装后没有mongorestore等组件

Linux 鲲鹏云 参照 MongoDB 4.0.12 移植指南(CentOS 7.6) 踩坑记录

MongoDB-tools编译

参照的 https://bbs.huaweicloud.com/forum/thread-66998-1-1.html

Linux 鲲鹏云 参照 MongoDB 4.0.12 移植指南(CentOS 7.6) 踩坑记录

文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux24720 人正在系统学习中

来源:一只臭狮子

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年6月21日
下一篇 2020年6月21日

相关推荐