• 开发工具安装


    一、 docker与docker compose安装

    如果已安装 Docker Desktop,则已经安装了完整的 Docker,包括 Docker Compose。

    1、安装docker

    在新主机上首次安装 Docker Engine 之前,您需要设置 Docker 版本库。之后,您可以从版本库安装和更新 Docker。

    1)设置Docker 版本库

    1. 允许apt通过 HTTPS 使用存储库更新apt包索引并安装包:

      1. $ sudo apt-get update
      2. $ sudo apt-get install \
      3. ca-certificates \
      4. curl \
      5. gnupg \
      6. lsb-release
    2. 添加 Docker 的官方 GPG 密钥:

      1. $ sudo mkdir -p /etc/apt/keyrings
      2. $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    3. 使用以下命令设置版本库:

      1. $ echo \
      2. "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
      3. $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

    2)安装 Docker Engine

    1. 更新apt包索引,安装最新版本的 Docker Engine、containerd 和 Docker Compose,或者进入下一步安装特定版本:

      1. $ sudo apt-get update
      2. $ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

      运行 apt-get update 时收到 GPG 错误?

      您的默认 umask 可能设置不正确,导致无法检测到 repo 的公钥文件。运行以下命令,然后再次尝试更新您的存储库:

      sudo chmod a+r /etc/apt/keyrings/docker.gpg
    2. 要安装特定版本的 Docker Engine,请在 repo 中列出可用版本,然后选择并安装:

      a. 列出您的版本库中可用的版本:

      1. $ apt-cache madison docker-ce
      2. docker-ce | 5:20.10.16~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
      3. docker-ce | 5:20.10.15~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
      4. docker-ce | 5:20.10.14~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
      5. docker-ce | 5:20.10.13~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages

      b. 使用第二列中的版本字符串安装特定版本,例如 5:20.10.16~3-0~ubuntu-jammy 。

      $ sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io docker-compose-plugin
      
    3. 通过运行 hello-world 镜像来验证 Docker Engine是否已正确安装。

      1. $ sudo service docker start
      2. $ sudo docker run hello-world

      此命令下载测试镜像并在容器中运行它。当容器运行时,它会打印一条消息并退出。

    Docker Engine已安装并正在运行。该docker组已创建,但未向其中添加任何用户。需要使用sudo来运行 Docker 命令。

    3)添加用户组(以非root用户身份管理Docker)

    Docker 守护进程绑定到 Unix 套接字而不是 TCP 端口。默认情况下,Unix 套接字归root用户所有,其他用户只能使用sudo。 Docker 守护程序始终以root用户身份运行。

    如果您不想在docker命令前加上sudo,请创建一个名为 Unix 组docker并将用户添加到其中。当 Docker 守护进程启动时,它会创建一个可供docker组成员访问的 Unix 套接字。

    要创建docker组并添加您的用户:

    1. 创建docker组。

      $ sudo groupadd docker
    2. 将您的用户添加到docker组中。

      $ sudo usermod -aG docker $USER
    3. 注销并重新登录,以便重新评估您的组成员身份。

      如果在虚拟机上进行测试,可能需要重新启动虚拟机才能使更改生效。

      在桌面Linux环境(如X Windows)上,完全注销会话,然后重新登录

      在 Linux 上,您还可以运行以下命令来激活对组的更改:

      $ newgrp docker
    4. 验证您可以在没有sudo的情况下运行docker命令。

      $ docker run hello-world

      此命令下载测试镜像并在容器中运行它。当容器运行时,它会打印一条消息并退出。

      如果在将用户添加到Docker组之前使用sudo运行Docker CLI命令,您可能会看到以下错误,这表明您的~/.docker/目录是由于命令没有sudo权限导致的。

    1. WARNING: Error loading config file: /home/user/.docker/config.json -
    2. stat /home/user/.docker/config.json: permission denied

    要解决此问题,请删除~/.docker/目录(它会自动重新创建,但会丢失任何自定义设置),或使用以下命令更改其所有权和权限:

    1. $ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
    2. $ sudo chmod g+rwx "$HOME/.docker" -R

    4)将 Docker 配置为开机启动

    大多数当前的 Linux 发行版(RHEL、CentOS、Fedora、Debian、Ubuntu 16.04 和更高版本)用于systemd管理系统启动时启动的服务。在 Debian 和 Ubuntu 上,Docker 服务默认配置为在启动时启动。要在启动时为 Docker 和 Containerd自动启动其他发行版,请使用以下命令:

    1. $ sudo systemctl enable docker.service
    2. $ sudo systemctl enable containerd.service

    要禁用此行为,请改用disable

    1. $ sudo systemctl disable docker.service
    2. $ sudo systemctl disable containerd.service

    2、安装docker compose

    要安装 Compose:

    需先在 Linux 系统上设置 Docker 的版本库

    1)使用存储库安装

    注:这些说明假设您已经安装了 Docker Engine 和 Docker CLI,现在想要安装 Compose 插件。
    对于 Compose Standalone,请参阅安装 Compose Standalone

    如果已经设置了 Docker 版本库,请跳至第 2 步。

    1. 设置版本库。在以下位置查找特定于发行版的说明:

      Ubuntu | CentOS | Debian | Fedora | RHEL | SLES.

    2. 更新包索引,并安装最新版本的 Docker Compose:

      • Ubuntu, Debian:

        1. $ sudo apt-get update
        2. $ sudo apt-get install docker-compose-plugin
      • 基于 RPM 的发行版:

        1. $ sudo yum update
        2. $ sudo yum install docker-compose-plugin
    3. 通过检查版本来验证 Docker Compose 是否已正确安装。

      1. $ docker compose version
      2. Docker Compose version vN.N.N

    其中vN.N.N是代表最新版本的占位符文本。

    2)更新Compose

    要更新 Compose,请运行以下命令:

    • Ubuntu, Debian:

      1. $ sudo apt-get update
      2. $ sudo apt-get install docker-compose-plugin
    • 基于 RPM 的发行版:

      1. $ sudo yum update
      2. $ sudo yum install docker-compose-plugin

    3、配置docker镜像加速器

    官方在国内的镜像加速地址:https://registry.docker-cn.com

    在不同的操作系统下,配置加速器的方式略有不同,下文将介绍主要操作系统的配置方法:

    第一种配置方法:

    建议通过daemon config进行配置。使用配置文件/etc/docker/daemon.json(没有时新建该文件),添加以下内容(可添加多个镜像源),重新加载daemon.json文件并重启Docker。

    1. {
    2. "registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com"]
    3. }
    1. $sudo systemctl daemon-reload
    2. $sudo systemctl restart docker
    3. $sudo service docker restart

    第二种配置方法:

    打开Ubuntu的配置文件/etc/default/docker,只需要在这个配置文件中添加加速器的配置项,重启Docker即可。

    方式1:打开/etc/default/docker文件(需要sudo权限),在文件的底部加上一行。

    DOCKER_OPTS="--registry-mirror=https://registry.docker-cn.com"
    
    1. $ sudo service docker restart
    2. $sudo systemctl restart docker

    方式二:使用命令行

    1. $echo "DOCKER_OPTS=\"\$DOCKER_OPTS --registry-mirror=https://registry.docker-cn.com\"" | sudo tee -a /etc/default/docker
    2. $sudo service docker restart
    3. $sudo systemctl restart docker

    二、go安装

    1. # 安装包下载地址:
    2. https://studygolang.com/dl - go语言中文网
    3. https://go.dev/dl/ - go官网

    1、环境变量(Go1.14及之后的版本不需要配置

    GOROOTGOPATH都是环境变量,其中GOROOT是我们安装go开发包的路径,而从Go 1.8版本开始,Go开发包在安装完成后会为GOPATH设置一个默认目录,Go1.14版本之后,都推荐使用go mod模式来管理依赖环境了,也不再强制我们把代码必须写在GOPATH下面的src目录了,你可以在你电脑的任意位置编写go代码。所以也就不需要我们再自己配置GOPATH了,使用默认的即可。

    如果想配,可以使用以下方法配

    bashrc 与 profile 都用于保存用户的环境信息,bashrc用于非交互式non-loginshell,而profile用于交互式login shell。

    ~/.profile 可以设定本用户专有的路径,环境变量,等,它只能登入的时候执行一次
    ~/.bashrc 也是某用户专有设定文档,可以设定路径,命令别名,每次shell script的执行都会使用它一次

    1. # 1. 使用wget工具下载安装包
    2. $ wget https://dl.google.com/go/go1.19.1.linux-amd64.tar.gz
    3. # 2. 解压tar包到/usr/local
    4. $ sudo tar zxvf go1.19.1.linux-amd64.tar.gz -C /usr/local
    5. # 3. 用vi打开~./bashrc,配置环境变量
    6. $ vim ~/.bashrc
    7. # 4. 增加下面的环境变量,保存退出
    8. export GOROOT=/usr/local/go
    9. export GOPATH=$HOME/go #注: go1.8版本之后,默认生成GOPATH目录,即$HOME/go(/home/用户名/go)
    10. export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
    11. # 5. 使环境变量立即生效, 一些命令二选一
    12. $ source ~/.bashrc //~ 代表主目录
    13. $ . ~/.bashrc
    14. # 6. 检测go是否安装好
    15. $ go version
    16. #######################################################################################
    17. 1、下载二进制包:go1.19.1.linux-amd64.tar.gz。
    18. 2、将下载的二进制包解压至 /usr/local目录。
    19. tar -C /usr/local -xzf go1.19.1.linux-amd64.tar.gz
    20. 3、配置环境变量: Linux下有两个文件可以配置环境变量,其中/etc/profile是对所有用户生效的;
    21. $HOME/.profile是对当前用户生效的,根据自己的情况自行选择一个文件打开,添加如下两行代码,保存退出。
    22. export GOROOT=/usr/local/go
    23. export GOPATH=$HOME/go #注: go1.8版本之后,默认生成GOPATH目录,即$HOME/go(/home/用户名/go)
    24. export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
    25. 如果在终端执行以上两行命令,只能暂时添加 PATH,关闭终端下次再登录就没有了。
    26. 4、添加后需要执行以下命令生效:
    27. source ~/.profile
    28. source /etc/profile

    go官方安装方法

    1. 将下载的存档解压缩到 /usr/local,在 /usr/local/go 中创建一个 Go 树。

      重要提示:此步骤将在解压之前删除 /usr/local/go 上的先前安装(如果有)。请在继续之前备份所有数据

      例如,以root或通过sudo运行以下命令:

      rm -rf /usr/local/go && tar -C /usr/local -xzf go1.19.3.linux-amd64.tar.gz
    2. 将 /usr/local/go/bin 添加到PATH环境变量中。

      可以通过将以下行添加到您的 $HOME/.profile 或 /etc/profile (用于系统范围的安装)中做到这一点:

      export PATH=$PATH:/usr/local/go/bin

      注意:对配置文件所做的更改可能要等到您下次登录计算机时才会生效。要立即应用更改,只需直接运行 shell 命令或使用诸如  source $HOME/.profile.

    3. 通过打开命令提示符并键入以下命令来验证您是否已安装 Go:
      $ go version
    4. 确认该命令打印已安装的 Go 版本。

    2、GOPROXY

    默认GoPROXY配置是:GOPROXY=https://proxy.golang.org,direct,由于国内访问不到https://proxy.golang.org,所以我们需要换一个PROXY,这里推荐使用https://goproxy.iohttps://goproxy.cn

    可以执行下面的命令修改GOPROXY:

    1. //全局生效
    2. go env -w GO111MODULE=on
    3. go env -w GOPROXY=https://goproxy.cn,direct
    4. 或者
    5. //当前终端生效(优先级高,即当前终端设置完代理之后,在其他终端再次设置新的代理,只要当前终端不关闭,新设置的代理对当前终端不生效)
    6. export GO111MODULE=on
    7. export GOPROXY=https://goproxy.cn

    三、protoc相关安装

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

    1. uname -a
    2. 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安装

    命令行安装:

    注:请尽量采用包管理器方式进行安装,以确保安装的完整性。

    1. //Linux, using apt or apt-get, for example:
    2. apt install -y protobuf-compiler
    3. protoc --version // Ensure compiler version is 3+

    安装包安装:

    如果一定要自行下载zip包安装预编译的版本或自行编译安装,请参考zip包中readme.txt文件的说明进行操作,确保include下的所有东西(通常是google目录,里面是一系列.proto后缀的文件)都已经正确放置在您的include路径下,如/usr/local/include/目录中,以确保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
    

    注:如果不打算用其中的其他类型,则protoc的安装到此就结束了。如果打算用其中包含的其他类型,就需要将include目录下的内容也复制到其他地方,则需要继续按照以下步骤进行安装。

    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)查看安装结果

    1. protoc --version
    2. libprotoc x.x.x

    2、protoc-gen-go/protoc-gen-go-grpc 安装

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

    1. //会自动安装到默认的GOPATH的bin(安装go时自动生成的)目录下
    2. go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
    3. go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest

    第二种:安装包建议解压安装到$GOPATH/bin中

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

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

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

    3、其他

    1. //会自动安装到默认的GOPATH的bin(安装go时自动生成的)目录下
    2. go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
    3. go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
    4. go install github.com/go-kratos/kratos/cmd/protoc-gen-go-http/v2@latest
    5. go install github.com/google/gnostic/cmd/protoc-gen-openapi@latest

    四、grpc安装

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

    五、Wire安装

    搜索 Google wire,在GitHub中找到wire的安装命令进行安装

    go install github.com/google/wire/cmd/wire@latest

    问题一:

    安装好wire之后,在wire.go的同级目录的终端执行wire命令即可生成wire_gen.go。若在使用wire命令的时候出现如下错误,说明有使用cgo调用c的库。

     解决办法:

    1、Windows系统

    1)下载mingw64,并安装

    2)将安装目录下的bin文件夹目录添加到Path环境变量中

    3) 测试是否安装成功

    打开cmd命令行,输入:

    gcc -v

    如果出现版本信息,则表示安装成功。

    MinGW64说明:

     可在mingw64(即下图所在链接)下载对应的安装包,或者在线安装(对应的选项解释如下)

    x86_64 是64位,i686 是32位的意思
    posix 是跨平台的意思,win32 仅限Windows
    尾缀是指生成的可执行程序和dll所运行的位数,sjlj可以运行在32位也可以运行在64位,seh仅限运行在64位,drawf仅限32位

    最新版最新版

      或Summary 最新版

    2、Linux系统

    1. 安装GCC

    1. sudo apt-get update //如果下载特别慢,可以先进行升级
    2. //以下选择其中一个进行安装即可
    3. sudo apt-get build-dep gcc
    4. sudo apt-get install gcc
    5. sudo apt-get install build-essential //包含 GCC 和其他各种编译器,如 g++ 和 make

    2. 查看是否安装成功

    gcc --version

     注:查看该软件包的依赖关系(此步骤不影响安装,仅仅是查看依赖关系等):

    apt-cache depends build-essential

    问题二:

    安装好gcc之后,再次执行wire,有可能会出现以下错误

    执行 sudo apt-get install build-essential 可能出现以下错误(遇到类似的问题都可以用方法1去找对应的包进行解决):

    解决方法1、下载安装包进行安装

            1)去https://pkgs.org搜索libc6,找到libc6 (= 2.35-0ubuntu3)的deb包,并下载。

     点击进去,选择如下二进制链接进行下载包

             2)按照下列命令安装即可:

    sudo apt install ./libc6_2.35-0ubuntu3_amd64.deb

     需要查看自己系统相关的信息可以参考以下命令

    1. //查看内核版本
    2. cat /proc/version
    3. uname -a
    4. uname -r
    5. //查看linux版本信息
    6. lsb_release -a
    7. cat /etc/issue
    8. cat /etc/os-release
    9. //查看linux是64位还是32位
    10. getconf LONG_BIT
    11. file /bin/ls
    12. //直接查看系统的架构
    13. dpkg --print-architecture
    14. arch
    15. file /lib/systemd/systemd

    解决方法2、换源

    可以通过 查看自己系统上的版本号,根据自己的系统版本换对应版本的源

    lsb_release -a

     部分Ubuntu系统LTS版本代号

    Ubuntu 16.04 代号为:xenial

    Ubuntu 17.04 代号为:zesty

    Ubuntu 18.04 代号为:bionic

    Ubuntu 19.04 代号为:disco

    Ubuntu 20.04 代号为:focal

    Ubuntu 22.04 代号为:jammy

    1、通过界面换源

     

    在“下载自(或from)”里选择“其他(other)”,选择阿里源, 最后点击“关闭”,等重新载入完成即可

    2、通过编辑文件换源

    换阿里源,编辑这个文件。

    sudo gedit /etc/apt/sources.list
    
    1. #阿里源 Ubuntu22.04
    2. deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
    3. deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
    4. deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
    5. deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
    6. deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
    7. deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
    8. deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
    9. deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
    10. deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
    11. deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse

    换源之后,执行命令进行更新

    1. sudo apt-get update
    2. sudo apt-get upgrade

    再执行安装命令,就会安装成功,会发现执行wire时出现的问题也就解决了

    sudo apt-get install build-essential

  • 相关阅读:
    实现一个支持多线程的Web服务器,能够处理多个客户端请求
    代码随想录算法训练营day53||1035.不相交的线||53. 最大子序和
    Golang 发送邮件
    Leader笔记:程序员小团队透明和信任管理
    Linux基本用户操作
    IDEA调试出现JDWP No transports initialized错误
    [微前端实战]---037 后端服务
    MongoDB聚合运算符:$lte
    登峰造极,师出造化,Pytorch人工智能AI图像增强框架ControlNet绘画实践,基于Python3.10
    码蹄集 - MT3203 - 填坑:骗数据过的~_~
  • 原文地址:https://blog.csdn.net/fbbqt/article/details/126974442