一、单版本装置
# 1) brew 装置
brew install protobuf
# 查看装置目录
$ which protoc
/opt/homebrew/bin/protoc
# 2) 配置环境变量
vim ~/.zshrc
# protoc (for hadoop)
export PROTOC="/opt/homebrew/bin/protoc"
source ~/.zshrc
# 3) 查看 protobuf 版本
$ protoc --version
libprotoc 3.19.1
二、多版本装置
如同时装置 protoc2 和 protoc3
上面演示已装置 protoc3,再装置 protoc2
1、将 protoc v3 命令重命名
# brew 命令的软连贯批改
cd /opt/homebrew/bin/
mv protoc protoc3
# 批改环境变量
vim ~/.zshrc
#export PROTOC="/opt/homebrew/bin/protoc"
# 批改为
export PROTOC3="/opt/homebrew/bin/protoc3"
source ~/.zshrc
# 查看成果
$ protoc3 --version
libprotoc 3.19.1
$ which protoc3
/opt/homebrew/bin/protoc3
2、装置 protoc v2
# 下载
wget https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz
# 解压
tar xvf protobuf-2.5.0.tar.gz
如果是 m1 型号的,需减少 arm 相干配置
在 src/google/protobuf/stubs/platform_macros.h 文件中找到
#else
#error Host architecture was not detected as supported by protobuf
在下面代码的上方增加
#elif defined(__arm64__)
#define GOOGLE_PROTOBUF_ARCH_ARM 1
#define GOOGLE_PROTOBUF_ARCH_64_BIT 1
增加后成果:
<img src=”https://cdn.nlark.com/yuque/0/2022/png/21670600/1667200962353-490fe607-5cad-4e78-bf0f-585023dfa634.png” alt=”image.png” style=”zoom:33%;” />
装置 protoc2.5.0:
# 会默认装置到 /usr/local/bin
./configure
# 如果要指定装置门路,执行 (homebrew 改为本人的门路):
# ./configure --prefix=/opt/homebrew/Cellar/protobuf/2.5.0
make
make check
sudo make install # 最初 install 可能须要 sudo 权限
# 如果批改到了 brew 门路,需再增加环境变量
brew link protobuf
查看版本
$ protoc --version
libprotoc 2.5.0
$ which protoc
/usr/local/bin/protoc
参考文章:
Mac M1 中 Idea 编译 hadoop2.6.0 流程
Hadoop – macOS 上编译 Hadoop 3.2.1