linux下golang protoc安装详细教程
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
你需要做的
- 将 protobuf-1.5.2.tar.gz 解压 进入
protoc-gen-go
编译go build -o prootc-gen-go main.go
并移动到/usr/bin
- 将 protoc-3.17.3-linux-x86_64.zip 解压, 给
bin/protoc
执行文件执行权限,并复制到/usr/bin
- 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安装详细教程相关推荐
- Linux中虚拟机的安装详细教程
Linux中虚拟机的安装详细教程 1 linux中虚拟机的安装 1.1 kvm安装条件 1.2 KVM虚拟化安装 1.3 KVM虚拟化相关信息 1.4 手动安装虚拟机步骤 1.5 脚本安装虚拟机 2 ...
- Ubuntu下QT的安装详细教程
本文转自:http://blog.chinaunix.net/uid-7945126-id-4987195.html 经测试完美解决 --------------------------------- ...
- 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 ...
- ubuntu下Source Insight安装详细教程
1 安装wine 打开命令行,执行如下命令安装 sudo apt install wine 可能会 出现如下提示,执行如下命令安装即可. sudo apt install wine-developme ...
- linux下Oracle 10g安装(超级详细图解教程)
linux下Oracle 10g安装(超级详细图解教程) 一,基本配置: 1.以root登录,挂载linux iso文件 [root@oracle ~]# hostnameoracle.junjie. ...
- 企业版mysql安装教程linux,linux上mysql安装详细教程
所有平台的MySQL下载地址为: MySQL 下载. 挑选你需要的 MySQL Community Server 版本及对应的平台. MySQL - MySQL服务器.你需要该选项,除非你只想连接运行 ...
- Win10 Anaconda下TensorFlow-GPU环境搭建详细教程(包含CUDA+cuDNN安装过程)(转载)...
win7(win10也适用)系统安装GPU/CPU版tensorflow Win10 Anaconda下TensorFlow-GPU环境搭建详细教程(包含CUDA+cuDNN安装过程) 目录 2.配置 ...
- linux下编译libuv,linux下libuv库安装教程
下载并编译libuv libuv需要自己手动下载源码,并手动编译. 当前目录为:/home/xlz/test/github/,在后面,会用$PATH来代替,我的系统的Debian8,64bit. $g ...
- 服务器安装centos6 linux,CentOS6.5安装详细教程,手把手教你安装Linux操作系统(CentOS6.5)...
CentOS6.5安装详细教程 1.准备好CentOS-6.5.iso文件,并刻录到光盘中,放入光驱,重启服务器,修改BIOS为光驱启动,之后开始进入安装: 2.按任意键,进入引导菜单.按上下键,移动 ...
- mysql如何下载msi_2、Windows下MySQL数据库下载与安装详细教程 MSI方式
做者:叁念mysql 写在前言:本文篇幅比较长,可是整体分为三大部分:下载部分.安装部分.环境配置与测试部分 :读者能够自行选择阅读web 1.下载部分 MySQL数据库下载与安装详细教程sql 1. ...
最新文章
- mongodb气势如虹
- 一次“失败”的阿里面试之旅
- Java线程总结(转)
- 在iOS中使用FilesApp
- Android的APP多版本,Android多版本共存-基于gradle实现debug版和release版app共存
- 【前端应该知道的那些事儿】运动学基础
- 最全面的linux网站
- 20. Django进阶:生成csv文件
- 设计模式之GOF23原型模式01
- java编程指南100本电子书
- 取代MS Project 的 开源工具 - OpenProj
- 测试版降级后软件还在么,2分钟告诉你如何将iOS测试版降级到正式版本
- 如何一次性保存html图片大小,保存网页图片的几种方法(批量)
- tp3.2中前台模板中日期时间的转换
- 2020年终总结与展望
- 学习笔记——VMware网络桥接的几个问题(有配置问题的值得一看)
- 车载通信与导航(五):D2D通信流程
- Pandas和Numpy:常见函数参数inplace的作用
- 自动控制原理(4)——传递函数、典型环节的传递函数
- catia如何看曲面的斑马纹_曲面分析中的斑马纹有什么用?如何评价曲面质量?...
热门文章
- 介绍一款在线仿站小工具
- java毕业设计——基于java+JSP+MyEclipse的网上订餐系统设计与实现(毕业论文+程序源码)——网上订餐系统
- Socket编程模型之完成端口模型
- post 请求下载文件
- cpu测试软件一等奖,图吧里捡垃圾的老哥们,制作出了一款超牛 X 的电脑工具箱!...
- 【雨滴桌面】简洁的桌面天气,可以说是永不失效的天气数据获取方法
- Python小程序(3)--BMR(基础代谢率)计算器
- JavaCV的摄像头实战之六:保存为mp4文件(有声音)
- Java学习博客第一篇
- JAVA博客和书籍推荐