1. 安装 golang

(1) ubuntu

add-apt-repository ppa:longsleep/golang-backports更新 apt库
apt-get update安装go
sudo apt-get install golang-go鉴定是否安装成功
go version
# 设置 mod
go env -w GO111MODULE="on"
# 设置 代理
go env -w GOPROXY="https://goproxy.cn,direct"

(2)centos

yum install golang

2.下载 protoc 和 protoc-gen-go

这里直接下载编译好的版本,比较简单

工具 下载地址 图片
protoc protoc
protoc-gen-go protoc-gen-go

上面的方式是图形化下载,你需要下载后再发送到你的 linux 服务器上

3. 解压并拷贝到目录

[root@centos go]# ll
total 1812
# protobuf-1.5.2.tar.gz 用来编译  protoc-gen-go
-rw-r--r-- 1 root root  171702 Jun 18 15:27 protobuf-1.5.2.tar.gz
# protoc-3.17.3-linux-x86_64.zip 是 protoc 的执行文件和 include 文件夹
-rw-r--r-- 1 root root 1680819 Jun 18 15:29 protoc-3.17.3-linux-x86_64.zip

你需要做的

  1. 将 protobuf-1.5.2.tar.gz 解压 进入 protoc-gen-go 编译 go build -o prootc-gen-go main.go 并移动到 /usr/bin
  2. 将 protoc-3.17.3-linux-x86_64.zip 解压, 给 bin/protoc 执行文件执行权限,并复制到 /usr/bin
  3. protoc-3.17.3-linux-x86_64.zip 解压的文件的 include 文件夹复制到 /usr/local/ 下面

命令如下

protoc-gen-go

[root@centos temp]# ls
protobuf-1.5.2.tar.gz  protoc-3.17.3-linux-x86_64.zip
# 解压
[root@centos temp]# tar -zxvf protobuf-1.5.2.tar.gz
protobuf-1.5.2/
......
protobuf-1.5.2/test.bash
[root@centos temp]# cd protobuf-1.5.2/protoc-gen-go/
# 编译
[root@centos protoc-gen-go]# go build -o protoc-gen-go main.go
[root@centos protoc-gen-go]# ls
descriptor  generator  grpc  main.go  plugin  protoc-gen-go
# 复制到 `/usr/bin`
[root@centos protoc-gen-go]# cp protoc-gen-go /usr/bin
cp: overwrite '/usr/bin/protoc-gen-go'? y
[root@centos protoc-gen-go]#

复制 protoc

[root@centos temp]# mkdir tmp
[root@centos temp]# ls
protobuf-1.5.2  protobuf-1.5.2.tar.gz  protoc-3.17.3-linux-x86_64.zip  tmp
# 解压
[root@centos temp]# unzip protoc-3.17.3-linux-x86_64.zip -d tmp/
Archive:  protoc-3.17.3-linux-x86_64.zip.....     inflating: tmp/readme.txt
# 移动可执行文件 protoc
[root@centos temp]# cp tmp/bin/protoc /usr/bin
[root@centos temp]# 

复制 include 文件夹

# 移动 include 文件夹
[root@centos temp]# cp -R tmp/include /usr/local
[root@centos temp]# protoc --version
libprotoc 3.17.3
[root@centos temp]# protoc-gen-go --version
protoc-gen-go: unknown argument "--version" (this program should be run by protoc, not directly)

4. 测试

编写一个 user.proto 文件

syntax = "proto3";
package proto1;
option go_package = "proto1/";
service User {rpc GetUser(GetUserRequest) returns (GetUserResponse) {}
}
message GetUserRequest {string id = 1;
}
message GetUserResponse {UserDTO user = 1;
}
message UserDTO {string id = 1 ;string name = 2;
}

编译自动生成 go 文件

[root@centos temp]# ls
protobuf-1.5.2  protobuf-1.5.2.tar.gz  protoc-3.17.3-linux-x86_64.zip  tmp
[root@centos temp]# vim user.proto
[root@centos temp]# ls
protobuf-1.5.2  protobuf-1.5.2.tar.gz  protoc-3.17.3-linux-x86_64.zip  tmp  user.proto
[root@centos temp]# protoc --go_out=plugins=grpc,paths=source_relative:. ./user.proto
[root@centos temp]# ls
protobuf-1.5.2  protobuf-1.5.2.tar.gz  protoc-3.17.3-linux-x86_64.zip  tmp  user.pb.go  user.proto
[root@centos temp]# 

参考: https://segmentfault.com/a/1190000021456180 解决编译问题
问题: pugins 有哪些? grpc, gateway?

linux下golang protoc安装详细教程相关推荐

  1. Linux中虚拟机的安装详细教程

    Linux中虚拟机的安装详细教程 1 linux中虚拟机的安装 1.1 kvm安装条件 1.2 KVM虚拟化安装 1.3 KVM虚拟化相关信息 1.4 手动安装虚拟机步骤 1.5 脚本安装虚拟机 2 ...

  2. Ubuntu下QT的安装详细教程

    本文转自:http://blog.chinaunix.net/uid-7945126-id-4987195.html 经测试完美解决 --------------------------------- ...

  3. mysql8.0 linux 安装教程_linux下mysql8.0安装详细教程

    1.下载官方安装包  https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz wge ...

  4. ubuntu下Source Insight安装详细教程

    1 安装wine 打开命令行,执行如下命令安装 sudo apt install wine 可能会 出现如下提示,执行如下命令安装即可. sudo apt install wine-developme ...

  5. linux下Oracle 10g安装(超级详细图解教程)

    linux下Oracle 10g安装(超级详细图解教程) 一,基本配置: 1.以root登录,挂载linux iso文件 [root@oracle ~]# hostnameoracle.junjie. ...

  6. 企业版mysql安装教程linux,linux上mysql安装详细教程

    所有平台的MySQL下载地址为: MySQL 下载. 挑选你需要的 MySQL Community Server 版本及对应的平台. MySQL - MySQL服务器.你需要该选项,除非你只想连接运行 ...

  7. Win10 Anaconda下TensorFlow-GPU环境搭建详细教程(包含CUDA+cuDNN安装过程)(转载)...

    win7(win10也适用)系统安装GPU/CPU版tensorflow Win10 Anaconda下TensorFlow-GPU环境搭建详细教程(包含CUDA+cuDNN安装过程) 目录 2.配置 ...

  8. linux下编译libuv,linux下libuv库安装教程

    下载并编译libuv libuv需要自己手动下载源码,并手动编译. 当前目录为:/home/xlz/test/github/,在后面,会用$PATH来代替,我的系统的Debian8,64bit. $g ...

  9. 服务器安装centos6 linux,CentOS6.5安装详细教程,手把手教你安装Linux操作系统(CentOS6.5)...

    CentOS6.5安装详细教程 1.准备好CentOS-6.5.iso文件,并刻录到光盘中,放入光驱,重启服务器,修改BIOS为光驱启动,之后开始进入安装: 2.按任意键,进入引导菜单.按上下键,移动 ...

  10. mysql如何下载msi_2、Windows下MySQL数据库下载与安装详细教程 MSI方式

    做者:叁念mysql 写在前言:本文篇幅比较长,可是整体分为三大部分:下载部分.安装部分.环境配置与测试部分 :读者能够自行选择阅读web 1.下载部分 MySQL数据库下载与安装详细教程sql 1. ...

最新文章

  1. mongodb气势如虹
  2. 一次“失败”的阿里面试之旅
  3. Java线程总结(转)
  4. 在iOS中使用FilesApp
  5. Android的APP多版本,Android多版本共存-基于gradle实现debug版和release版app共存
  6. 【前端应该知道的那些事儿】运动学基础
  7. 最全面的linux网站
  8. 20. Django进阶:生成csv文件
  9. 设计模式之GOF23原型模式01
  10. java编程指南100本电子书
  11. 取代MS Project 的 开源工具 - OpenProj
  12. 测试版降级后软件还在么,2分钟告诉你如何将iOS测试版降级到正式版本
  13. 如何一次性保存html图片大小,保存网页图片的几种方法(批量)
  14. tp3.2中前台模板中日期时间的转换
  15. 2020年终总结与展望
  16. 学习笔记——VMware网络桥接的几个问题(有配置问题的值得一看)
  17. 车载通信与导航(五):D2D通信流程
  18. Pandas和Numpy:常见函数参数inplace的作用
  19. 自动控制原理(4)——传递函数、典型环节的传递函数
  20. catia如何看曲面的斑马纹_曲面分析中的斑马纹有什么用?如何评价曲面质量?...

热门文章

  1. 介绍一款在线仿站小工具
  2. java毕业设计——基于java+JSP+MyEclipse的网上订餐系统设计与实现(毕业论文+程序源码)——网上订餐系统
  3. Socket编程模型之完成端口模型
  4. post 请求下载文件
  5. cpu测试软件一等奖,图吧里捡垃圾的老哥们,制作出了一款超牛 X 的电脑工具箱!...
  6. 【雨滴桌面】简洁的桌面天气,可以说是永不失效的天气数据获取方法
  7. Python小程序(3)--BMR(基础代谢率)计算器
  8. JavaCV的摄像头实战之六:保存为mp4文件(有声音)
  9. Java学习博客第一篇
  10. JAVA博客和书籍推荐