Skip to content

Instantly share code, notes, and snippets.

@sofyan-ahmad
Last active November 25, 2025 20:07
Show Gist options
  • Select an option

  • Save sofyan-ahmad/37787e5ed098c97919b8c593f0ec44d8 to your computer and use it in GitHub Desktop.

Select an option

Save sofyan-ahmad/37787e5ed098c97919b8c593f0ec44d8 to your computer and use it in GitHub Desktop.
# Make sure you grab the latest version
curl -OL https://github.com/google/protobuf/releases/download/v3.2.0/protoc-3.2.0-linux-x86_64.zip
# Unzip
unzip protoc-3.2.0-linux-x86_64.zip -d protoc3
# Move protoc to /usr/local/bin/
sudo mv protoc3/bin/* /usr/local/bin/
# Move protoc3/include to /usr/local/include/
sudo mv protoc3/include/* /usr/local/include/
# Optional: change owner
sudo chwon [user] /usr/local/bin/protoc
sudo chwon -R [user] /usr/local/include/google
@yurkazaytsev

Copy link
Copy Markdown

Thanks!

@bedge

bedge commented Nov 4, 2017

Copy link
Copy Markdown

Latest is now https://github.com/google/protobuf/releases/download/v3.4.0/protoc-3.4.0-linux-x86_64.zip
Also, recommend 'stow' utility for managing non-packaged components.
e.g.:

 %> sudo stow -n cproto -D /usr/local -d /usr/local/stow
Loading defaults from /root/.stowrc
LINK: include/google => ../stow/cproto/include/google
LINK: readme.txt => stow/cproto/readme.txt
LINK: bin/protoc => ../stow/cproto/bin/protoc

Avoids the need to manually copy/link, plus manages what's been added in this manner for later removal/upgrade/etc.

@Arfey

Arfey commented Dec 21, 2017

Copy link
Copy Markdown

Thx

@aescart1

Copy link
Copy Markdown

great

@sailfish009

Copy link
Copy Markdown

thanks for the info!

@sleebapaul

Copy link
Copy Markdown

it is giving the following error -bash: /usr/local/bin/protoc: cannot execute binary file: Exec format error

@rahuldeo2047

Copy link
Copy Markdown

Just thought it might be useful to mates, stuck with multiple protobuf versions runtime issue:
protocolbuffers/protobuf#4001

So that we check if there is already a version installed.

@edwardmartinsjr

Copy link
Copy Markdown

Awesome!

@bigdataplot

bigdataplot commented May 3, 2018

Copy link
Copy Markdown

Fixed my problem :) Thx

@jeshan

jeshan commented May 11, 2018

Copy link
Copy Markdown

thanks. consider changing [user] to $USER to make it runnable immediately. also the "chwon" has already been reported above.

@xxlyu-2046

Copy link
Copy Markdown

should add ln -s /usr/local/bin/protoc /usr/bin/protoc

@deepkshikha

Copy link
Copy Markdown

Thanks

@purusothaman2502

Copy link
Copy Markdown

redhat@redhat-HP-245-G5-Notebook-PC:~$ sudo chown [redhat] /usr/local/bin/protocchown: invalid user: ‘[redhat]’
how to solve this error?? ple help me :::))

@tshan1229

Copy link
Copy Markdown

@purusothaman2502 remove the [ ] for your user.

Command becomes sudo chown redhat /usr/local/bin/protocchown

@janoskut

Copy link
Copy Markdown

How can I update the library too?
Cmake gives me:
Protobuf compiler version 3.3.0 doesn't match library version 3.0.0
(on ubuntu-bionic)

@Jomes

Jomes commented Jul 25, 2018

Copy link
Copy Markdown

Thank you!
There are a typos in line 14 and line 15: chown is misspelled.

@shriAG

shriAG commented Jul 30, 2018

Copy link
Copy Markdown

Hi How to install google protobuf along with protoc ?

@efazati

efazati commented Oct 28, 2018

Copy link
Copy Markdown

Change chwon to chown

@edxmorgan

Copy link
Copy Markdown

thanks . workeed

@biswajitAqb

Copy link
Copy Markdown

Awesome !! Worked.

@pmalhaire

Copy link
Copy Markdown

I added auto get version and made it work as a script file

#! /bin/bash

TEMP_DIR=/tmp


VERSION=`curl --silent "https://api.github.com/repos/protocolbuffers/protobuf/releases/latest" | grep -Po '"tag_name": "v\K.*?(?=")'`

[[ -z VERSION ]] && echo "Could not get version from github"

mkdir $TEMP_DIR/protoc_inst

cd $TEMP_DIR/protoc_inst

# Make sure you grab the latest version
curl -OL "https://github.com/google/protobuf/releases/download/v$VERSION/protoc-$VERSION-linux-x86_64.zip"

# Unzip
unzip "protoc-$VERSION-linux-x86_64.zip" -d protoc3

# Move protoc to /usr/local/bin/
sudo mv protoc3/bin/* /usr/local/bin/

# Move protoc3/include to /usr/local/include/
sudo mv protoc3/include/* /usr/local/include/

rm -rf $TEMP_DIR/protoc_inst

@jiankang1991

Copy link
Copy Markdown

How to solve the problem that is:

Protobuf compiler version 3.6.1 doesn't match library version 3.0.0?

Thank you.

@vboo27

vboo27 commented Nov 22, 2018

Copy link
Copy Markdown

THX!

@sri-prasanna

Copy link
Copy Markdown

thanks

@hyperchris

Copy link
Copy Markdown

Thanks!

@AtsushiSakai

Copy link
Copy Markdown

Great!! Thanks.

@Albertchieng

Copy link
Copy Markdown

awesome

@kumarashit

Copy link
Copy Markdown

Awesome!! Helpful!!

@Albertchieng

Albertchieng commented Oct 14, 2019 via email

Copy link
Copy Markdown

@gsilano

gsilano commented Jan 3, 2020

Copy link
Copy Markdown

Here the link to my Gist if you are interested in recovering the previous version of protobuf installed on your pc (Ubuntu 16.04).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment