如何在Ubuntu 16.04上安装protoc?

如何在Ubuntu 16.04上安装protoc,即protobuf编译器以生成Java代码?
6个回答

请参阅https://github.com/protocolbuffers/protobuf/blob/master/src/README.md

先决条件

$ sudo apt-get install autoconf automake libtool curl make g++ unzip

安装

  1. 此页面下载protobuf-all-[VERSION].tar.gz文件。
  2. 解压文件并进入目录。
  3. ./configure
  4. make
  5. make check
  6. sudo make install
  7. sudo ldconfig # 刷新共享库缓存。

检查是否正常工作

$ protoc --version
libprotoc 3.6.1

相同的步骤也适用于Ubuntu Trusty。 - Binita Bharati
11也适用于Ubuntu 18.04 - Binita Bharati
https://www.youtube.com/watch?v=EAFK-tN_yaw - Pushkarraj Pujari
5使用 -jX 进行并行运行,其中 X 是您拥有的核心数。 - Omar
适用于Debian 10的完美选择 - Corrado
感谢 @OmarS。它真的充分利用了我的四核心CPU进行编译 =)) - Thai Tran
@MartinThoma bash: ./configure: 没有该文件或目录 - Bilal
@Bilal 你可能没有进入目录。当你使用 ls 命令时,能看到文件 configure 吗?如果不能,那么你做错了些什么。 - Martin Thoma
@MartinThoma 我进去了,我能看到 configure.ac,但是我无法执行 ./configure - Bilal
1@Bilal 你需要运行 autoconf。感谢评论! - Martin Thoma

sudo apt install protobuf-compiler

8这会导致"设置protobuf编译器(2.6.1-1.3)" - 可能不是每个人都想要的版本。 - y.selivonchyk

如果你不是C++用户和/或不想自己编译,安装当前版本的protoc最简单的方法是从发布页面下载预编译的二进制文件。

https://github.com/protocolbuffers/protobuf/releases

安装时,只需将该二进制文件放置在您的PATH环境变量中的某个位置(例如/usr/local/bin)。

(如果您打算使用已包含的常用类型,请不要忘记将“include”目录的内容复制到其他地方,例如/usr/local/include/。)

示例:

wget https://github.com/protocolbuffers/protobuf/releases/download/v21.12/protoc-21.12-linux-x86_64.zip
sudo unzip -o protoc-21.12-linux-x86_64.zip -d /usr/local bin/protoc
sudo unzip -o protoc-21.12-linux-x86_64.zip -d /usr/local 'include/*'
# now test:
protoc --version

你可能还需要一些来自Google的通用API的proto文件。克隆[该仓库][4]并将google文件夹中的内容移动到/usr/local/include/目录下。 - Jack
protoc 默认情况下并不会在 /usr/local/include 目录中查找我。 - Bryan

您可以从源代码下载二进制文件并使用以下命令。
sudo rm -rf ./protoc
unzip protoc-3.10.1-linux-x86_64.zip -d protoc
chmod 755 -R protoc
BASE=/usr/local
sudo rm -rf $BASE/include/google/protobuf/
sudo cp protoc/bin/protoc $BASE/bin 
sudo cp -R protoc/include/* $BASE/include 

将您的基础路径更改为 /usr/,或 /usr/local/,或者在您的 PATH 中选择其他任何路径。

1)从链接 https://github.com/protocolbuffers/protobuf/releases 下载二进制文件。

2)解压并将目录保存到特定位置(/user/app/protoc)。

3)在 /usr/.bash_profile 中添加以下条目: export PROTOC_HOME=/user/app/protoc export PATH=$PROTOC_HOME/bin:$PATH

4)刷新文件 $source /usr//.bash_profile

另一种选择是在下载存储库后逐个运行以下命令:

sudo rm -rf ./protoc

unzip protoc-3.10.1-linux-x86_64.zip -d protoc

chmod 755 -R protoc

BASE=/usr/local

sudo rm -rf $BASE/include/google/protobuf/

sudo cp protoc/bin/protoc $BASE/bin

sudo cp -R protoc/include/* $BASE/include


如果您遇到以下错误,请使用此方法

google/protobuf/descriptor.proto:找不到文件。
google/protobuf/duration.proto:找不到文件。
google/protobuf/timestamp.proto:找不到文件。

PROTOC_ZIP=protoc-3.7.1-linux-x86_64.zip
curl -OL https://github.com/protocolbuffers/protobuf/releases/download/v3.7.1/$PROTOC_ZIP
sudo unzip -o $PROTOC_ZIP -d /usr/local bin/protoc
sudo unzip -o $PROTOC_ZIP -d /usr/local 'include/*'
rm -f $PROTOC_ZIP

当您使用protoc-gen-go进行go代码生成时,此功能非常有用,因为它要求基本的proto文件存在于默认的包含文件夹中


  • 相关问题