How can I install protoc on Ubuntu 16.04?

How can I install protoc, the protobuf compiler to generate Java, on Ubuntu 16.04?

6 Answers

See :

Prerequesites

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

Installation

  1. From this page, download the protobuf-all-[VERSION].tar.gz.
  2. Extract the contents and change in the directory
  3. ./configure
  4. make
  5. make check
  6. sudo make install
  7. sudo ldconfig # refresh shared library cache.

Check if it works

$ protoc --version
libprotoc 3.6.1
10
sudo apt install protobuf-compiler
1

If you are a non-C++ user and/or don't want to compile it yourself, the simplest way to install the current version of protoc is to download a pre-built binary from the release page.

To install, simply place this binary somewhere in your PATH (e.g. /usr/local/bin).

(If you intend to use the included well known types then don't forget to copy the contents of the 'include' directory somewhere as well, for example into /usr/local/include/.)

2

You can download binary from the source code and use next commands

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 

Change your base to /usr/, or /usr/loca/, or anything else in your PATH.

1) Download binary from the url

2) extract and keep the directory at particular location (/user/app/protoc)

3) add the entry in /usr//.bash_profile as export PROTOC_HOME=/user/app/protoc export PATH=$PROTOC_HOME/bin:$PATH

4) refresh file $source /usr/<username>/.bash_profile

Other option is run the following command one by one after downloading the repository :

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

Use this if you are having errors like

google/protobuf/descriptor.proto: File not found.
google/protobuf/duration.proto: File not found.
google/protobuf/timestamp.proto: File not found.

PROTOC_ZIP=protoc-3.7.1-linux-x86_64.zip
curl -OL
sudo unzip -o $PROTOC_ZIP -d /usr/local bin/protoc
sudo unzip -o $PROTOC_ZIP -d /usr/local 'include/*'
rm -f $PROTOC_ZIP

This is useful when you are doing generation for go using protoc-gen-go as it requires the base proto files to be present in default include folders

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like