下文以MongoDB 3.6.13版本为例描述通过源码编译和安装MongoDB Tools的操作步骤,其他版本的MongoDB也可参考本章节。
以下命令中,“3.6.13”表示MongoDB的版本号。安装其他版本的MongoDB时,请将“3.6.13”替换为对应的MongoDB版本号。
- 下载go编译器源码包。
|
cd /root
wget https://dl.google.com/go/go1.13.5.linux-arm64.tar.gz
|
- 解压go源码包到“/usr/local”目录下。
|
tar -C /usr/local -xzf go1.13.5.linux-arm64.tar.gz
ls /usr/local/go
|

- 设置go编译器环境变量。
- 配置环境变量。
- 打开profile文件。
- 按“i”进入编辑模式,在文件末尾加入内容。
|
export PATH=$PATH:/usr/local/go/bin
export GOROOT="/usr/local/go"
|
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 使环境变量生效。
- 查看go编译器环境变量是否设置成功。

- 查看go编译器版本。
|
whereis go
/usr/local/go/bin/go version
|

- 下载MongoDB Tools源码包。
|
cd /root
wget https://github.com/mongodb/mongo-tools/archive/r3.6.13.tar.gz --no-check-certificate
|
如果执行wget命令失败,请将github.com替换为github.com.cnpmjs.org后再执行下载命令。
- 解压MongoDB Tools源码包。
|
mv r3.6.13.tar.gz mongo-tools-r3.6.13.tar.gz
tar -xvf mongo-tools-r3.6.13.tar.gz
ll mongo-tools-r3.6.13
|

- 设置MongoDB Tools环境变量。
|
cd /root/mongo-tools-r3.6.13
chmod +x set_goenv.sh
source set_goenv.sh
ls
|

- 变更MongoDB Tools的编译目录。
解压后的目录是mongo-tools-r3.6.13,需要进行如下操作更换目录结构,否则编译会报错。
在mongo-tools-r3.6.13的同级目录下(本文档是“/root”)执行如下命令:
|
cd /root
mkdir -p mongodb-tools-3.6.13/src/github.com/mongodb
mv mongo-tools-r3.6.13 mongodb-tools-3.6.13/src/github.com/mongodb/mongo-tools
ls
|

- 下载解压gopacket,替换MongoDB Tools的gopacket。
- 下载gopacket。
|
cd /root
wget https://github.com/google/gopacket/archive/master.zip --no-check-certificate
|
如果执行wget命令失败,请将github.com替换为github.com.cnpmjs.org后再执行下载命令。
- 解压gopacket。
|
unzip master.zip
ll gopacket-master
|

- 替换MongoDB Tools的gopacket。
|
ls /root/mongodb-tools-3.6.13/src/github.com/mongodb/mongo-tools/vendor/github.com/google/gopacket/
rm -rf /root/mongodb-tools-3.6.13/src/github.com/mongodb/mongo-tools/vendor/github.com/google/gopacket/
mv gopacket-master /root/mongodb-tools-3.6.13/src/github.com/mongodb/mongo-tools/vendor/github.com/google/gopacket
ls /root/mongodb-tools-3.6.13/src/github.com/mongodb/mongo-tools/vendor/github.com/google/gopacket/
|

- 建立GCC软链接。
- 查看GCC路径以及版本。
|
whereis gcc
/usr/bin/gcc --version
|

- 创建并查看GCC软链接。
|
mkdir -p /opt/mongodbtoolchain/v3/bin
ln -s /usr/bin/gcc /opt/mongodbtoolchain/v3/bin/aarch64-mongodb-linux-gcc
ll /opt/mongodbtoolchain/v3/bin/aarch64-mongodb-linux-gcc
|

- 编译安装MongoDB Tools。
cd /root/mongodb-tools-3.6.13/src/github.com/mongodb/mongo-tools/
./build.sh

查看生成的二进制可执行文件。
|
ll /root/mongodb-tools-3.6.13/src/github.com/mongodb/mongo-tools/bin
|

- 验证MongoDB Tools命令是否正常。本文以mongostat和mongoexport为例进行说明。
|
/root/mongodb-tools-3.6.13/src/github.com/mongodb/mongo-tools/bin/mongostat --version
/root/mongodb-tools-3.6.13/src/github.com/mongodb/mongo-tools/bin/mongoexport --version
/root/mongodb-tools-3.6.13/src/github.com/mongodb/mongo-tools/bin/mongodump --version
|
