当前位置: 首页 > news >正文

开发工具安装

一、 docker安装

1.1、 基础软件安装

# 安装基本软件
$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates curl git softwareproperties-common lrzsz -y

1.2、 添加阿里的docker镜像仓库

# 添加阿里的docker镜像仓库
$ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key
add -
$ sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/dockerce/
linux/ubuntu $(lsb_release -cs) stable"
# 更新软件源
$ sudo apt-get update

1.3、 安装docker

若是root用户,则不会出现如下问题

# 安装docker
$ sudo apt-get install docker-ce -y
# 查看安装的docker版本
$ docker version
	Client:
		Version: 18.06.1-ce
		API version: 1.38
		Go version: go1.10.3
		Git commit: e68fc7a
		Built: Tue Aug 21 17:24:51 2018
		OS/Arch: linux/amd64
		Experimental: false
	Got permission denied while trying to connect to the Docker daemon socket at
	unix:///var/run/docker.sock: Get
	http://%2Fvar%2Frun%2Fdocker.sock/v1.38/version:
	dial unix /var/run/docker.sock: connect: `permission denied`
# 当前用户直接操作docker时, 权限不够, 需要做下面的第4不操作

1.4、将当前用户添加到docker组

# 将用户加入该 group 内。然后退出并重新登录就生效啦。
$ sudo gpasswd -a ${USER} docker
# 重启docker服务
$ systemctl restart docker
# 当前用户切换到docker群组
$ newgrp - docker
$ docker version
	Client:
         Version:           18.06.1-ce
         API version:       1.38
         Go version:        go1.10.3
         Git commit:        e68fc7a
         Built:             Tue Aug 21 17:24:51 2018
         OS/Arch:           linux/amd64
         Experimental:      false

    Server:
         Engine:
         Version:          18.06.1-ce
         API version:      1.38 (minimum version 1.12)
         Go version:       go1.10.3
         Git commit:       e68fc7a
         Built:            Tue Aug 21 17:23:15 2018
         OS/Arch:          linux/amd64
         Experimental:     false

1.5、安装docker-compose

#安装依赖工具
$ sudo apt-get install python-pip -y
#安装编排工具
$ sudo pip install docker-compose
#查看版本
$ sudo docker-compose version

二、go安装

# 安装包下载地址:
https://studygolang.com/dl - go语言中文网
https://go.dev/dl/  - go官网
# 1. 使用wget工具下载安装包
    $ wget https://dl.google.com/go/go1.12.7.linux-amd64.tar.gz
# 2. 解压tar包到/usr/local
    $ sudo tar zxvf go1.12.7.linux-amd64.tar.gz -C /usr/local
# 3. 创建Go目录
    $ mkdir $HOME/go
# 4. 用vi打开~./bashrc,配置环境变量
    $ vim ~/.bashrc
# 5. 增加下面的环境变量,保存退出
	export GOROOT=/usr/local/go
    export GOPATH=$HOME/go
    export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
# 6. 使环境变量立即生效, 一些命令二选一
    $ source ~/.bashrc  
    $ . ~/.bashrc
# 7. 检测go是否安装好
    $ go version

三、protoc相关安装

首先确定自己当前linux版本(当前版本为x86_64)

uname -a
Linux localhost.localdomain 3.10.0-1127.el7.x86_64 #1 SMP Tue Mar 31 16:36:51 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

1、protoc安装

我们把protoc放在/usr/local/bin可执行程序目录中,这样全局都可以访问到,同时把include目录的内容也复制到/usr/local/include/

注:解压protoc压缩包后,可以看到 readme.txt文件

大致意思是安装protoc,只需将bin目录下的二进制文件放在某个位置就行,如果打算用其中包含的其他类型,就需要将include目录下的内容也复制到某个地方,例如输入/usr/local/include/

第一种:直接解压到/usr/local/目录下,执行一下命令;

进入protoc页面,选择适合自己操作系统的压缩包文件,解压到目录中

unzip protoc-21.6-linux-x86_64.zip -d /usr/local/

此时,/usr/local/bin/下面就会出现protoc。

第二种:

1)进入protoc 页面,选择适合自己操作系统的压缩包文件

2)解压protoc-x.x.x-x86_64.zip并进入protoc-x.x.x-x86_64文件夹下的bin目录

$ cd protoc-x.x.x-x86_64/bin

3)将文件夹里的protoc二进制文件移动到path(被添加到环境变量的任意path)下。(如$GOPATH/bin,不建议直接将其和系统下的path放在一起。$GOPATH为你本机的实际文件夹地址)

$ mv protoc /usr/local/bin

4)进入protoc-x.x.x-x86_64文件夹下的include目录

$ cd protoc-x.x.x-x86_64/include

5)include目录的内容也复制到/usr/local/include/

$ mv google /usr/local/include

6)查看安装结果

$ protoc --version
libprotoc x.x.x

2、protoc-gen-go安装

第一种:执行以下命令即可

go get github.com/golang/protobuf/protoc-gen-go
或
$ go install google.golang.org/protobuf/cmd/protoc-gen-go@latest

第二种:

进入protoc-gen-go页面,下载对应的安装包

直接解压到目录中或解压后移动到 /usr/local/bin (或$GOPATH/bin)目录中

tar zxvf protoc-gen-go.v1.28.1.linux.amd64.tar.gz -C /usr/local/bin

3、protoc-gen-go-grpc 安装

$ go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest

四、grpc安装

// grpc (或者git clone https://github.com/grpc/grpc-go 然后复制到google.golang.org/grpc)
go get -u google.golang.org/grpc

相关文章:

  • 图解字符串匹配算法:从Brute-Force到KMP,一下子就整明白了
  • Python语言:散修笔记
  • 为什么要学习Linux内核,如何学习?
  • 块级作用域绑定
  • 8.7 迁移学习域适应
  • 高企认定评分标准有哪些?
  • halcon提取数据集中指定图片并进行裁剪
  • 使用PdfSharp从模板生成Pdf文件
  • HTML篇三——(2)
  • 【012】基于JavaWeb酒店客房管理系统(附源码、数据库、数据库文档、运行教程)
  • Gitee账号注册以及Git下载安装
  • 边学边记——Java中有关接口的知识
  • ant-design-vue 库 Loading 组件封装
  • 2022 年前端趋势的 技术发展情况
  • Observability:使用 Elastic Agent 来收集定制的 TCP 日志
  • 《剑指offer》分解让复杂问题更简单
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • Git的一些常用操作
  • happypack两次报错的问题
  • Laravel5.4 Queues队列学习
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • MySQL用户中的%到底包不包括localhost?
  • PHP 小技巧
  • springboot_database项目介绍
  • Vue.js-Day01
  • 测试如何在敏捷团队中工作?
  • 来,膜拜下android roadmap,强大的执行力
  • 聊聊sentinel的DegradeSlot
  • 前端js -- this指向总结。
  • 推荐一个React的管理后台框架
  • 微服务框架lagom
  • 追踪解析 FutureTask 源码
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • 阿里云ACE认证之理解CDN技术
  • ​虚拟化系列介绍(十)
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (转)Oracle 9i 数据库设计指引全集(1)
  • .NET delegate 委托 、 Event 事件,接口回调
  • .Net的C#语言取月份数值对应的MonthName值
  • .NET使用存储过程实现对数据库的增删改查
  • /var/log/cvslog 太大
  • @Async注解的坑,小心
  • [ Linux ] git工具的基本使用(仓库的构建,提交)
  • [AX]AX2012开发新特性-禁止表或者表字段
  • [C# 网络编程系列]专题六:UDP编程
  • [C++参考]拷贝构造函数的参数必须是引用类型
  • [linux][调度] 内核抢占入门 —— 高优先级线程被唤醒时会立即抢占当前线程吗 ?
  • [LOJ 6213]「美团 CodeM 决赛」radar
  • [loj#115] 无源汇有上下界可行流 网络流
  • [MZ test.16]P2 math 乘方e
  • [NHibernate]一对多关系(关联查询)
  • [NOI2005]聪聪与可可(期望)
  • [Oh My C++ Diary]用cout输出时后endl的使用