博客 / 詳情

返回

Mac 安裝多版本 protoc / protobuf

一、單版本安裝

# 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

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.