• CentOS8.2 配置go开发环境


    Linux 服务器配置

    用 Root 用户登录 Linux 系统,并创建普通用户

    [root@VM-4-9-centos ~]# useradd going # 创建 going 用户,通过 going 用户登录开发机进行开发
    [root@VM-4-9-centos ~]# passwd going # 设置密码
    Changing password for user going.
    New password:
    Retype new password:
    passwd: all authentication tokens updated successfully.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    添加 sudoers

    普通用户也要用到 Root 的一些权限,但 Root 用户的密码一般是由系统管理员维护并定期更改的,每次都向管理员询问密码又很麻烦.
    因此,我建议你将普通用户加入到 sudoers 中,这样普通用户就可以通过 sudo 命令来暂时获取 Root 的权限.

    [root@VM-4-9-centos ~]# sed -i '/^root.*ALL=(ALL).*ALL/a\going\tALL=(ALL) \tALL' /etc/sudoers
    
    • 1

    用新的用户名(going)和密码登录 Linux 服务器。这一步也可以验证普通用户是否创建成功。

    配置 $HOME/.bashrc 文件。

    我们登录新服务器后的第一步就是配置 $HOME/.bashrc 文件,以使 Linux 登录 shell 更加易用,
    例如配置 LANG 解决中文乱码,配置 PS1 可以避免整行都是文件路径,并将 $HOME/bin 加入到 PATH 路径中.

    # .bashrc
     
    # User specific aliases and functions
     
    alias rm='rm -i'
    alias cp='cp -i'
    alias mv='mv -i'
     
    # Source global definitions
    if [ -f /etc/bashrc ]; then
            . /etc/bashrc
    fi
     
    # User specific environment
    # Basic envs
    export LANG="en_US.UTF-8" # 设置系统语言为 en_US.UTF-8,避免终端出现中文乱码
    export PS1='[\u@dev \W]\$ ' # 默认的 PS1 设置会展示全部的路径,为了防止过长,这里只展示:"用户名@dev 最后的目录名"
    export WORKSPACE="$HOME/workspace" # 设置工作目录
    export PATH=$HOME/bin:$PATH # 将 $HOME/bin 目录加入到 PATH 变量中
     
    # Default entry folder
    cd $WORKSPACE # 登录系统,默认进入 workspace 目录
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    在 export PATH 时,最好把 $PATH 放到最后,因为我们添加到目录中的命令是期望被优先搜索并使用的。
    配置完 $HOME/.bashrc 后,我们还需要创建工作目录 workspace。将工作文件统一放在 $HOME/workspace 目录中,有几点好处。

    • 可以使我们的$HOME目录保持整洁,便于以后的文件查找和分类。
    • 如果哪一天 /分区空间不足,可以将整个 workspace 目录 mv 到另一个分区中,并在 /分区中保留软连接,例如:/home/going/workspace -> /data/workspace/。
    • 如果哪天想备份所有的工作文件,可以直接备份 workspace。
      具体的操作指令是$ mkdir -p $HOME/workspace。配置好 $HOME/.bashrc 文件后,我们就可以执行 bash 命令将配置加载到当前 shell 中了。

    依赖安装和配置

    安装依赖。

    [root@VM-4-9-centos ~]# sudo yum -y install make autoconf automake cmake perl-CPAN libcurl-devel libtool gcc gcc-c++ glibc-headers zlib-devel git-lfs telnet ctags lrzsz jq expat-devel openssl-devel
    
    • 1

    安装git

    由于低版本的 Git 不支持–unshallow 参数,而 go get 在安装 Go 包时会用到 git fetch --unshallow 命令,因此我们要确保安装一个高版本的 Git,具体的安装方法如下:

    $ cd /tmp
    $ wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.30.2.tar.gz
    $ tar -xvzf git-2.30.2.tar.gz
    $ cd git-2.30.2/
    $ ./configure
    $ make
    $ sudo make install
    $ git --version          # 输出 git 版本号,说明安装成功
    git version 2.30.2
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    注意啦,按照上面的步骤安装好之后,我们要把 Git 的二进制目录添加到 PATH 路径中,不然 Git 可能会因为找不到一些命令而报错。你可以通过执行以下命令添加目录:

    tee -a $HOME/.bashrc <<'EOF'
    # Configure for git
    export PATH=/usr/local/libexec/git-core:$PATH
    EOF
    
    • 1
    • 2
    • 3
    • 4

    配置 Git

    我们直接执行如下命令配置 Git:

    $ git config --global user.name "Sanfeng Zhang"    # 用户名改成自己的
    $ git config --global user.email "example@foxmail.com"    # 邮箱改成自己的
    $ git config --global credential.helper store    # 设置 Git,保存用户名和密码
    $ git config --global core.longpaths true # 解决 Git 中 'Filename too long' 的错误
    
    • 1
    • 2
    • 3
    • 4

    除了按照上述步骤配置 Git 之外,我们还有几点需要注意。
    首先,在 Git 中,我们会把非 ASCII 字符叫做 Unusual 字符。这类字符在 Git 输出到终端的时候默认是用 8 进制转义字符输出的(以防乱码),但现在的终端多数都支持直接显示非 ASCII 字符,所以我们可以关闭掉这个特性,具体的命令如下:

    $ git config --global core.quotepath off
    
    • 1

    其次,如果你觉得访问 github.com 太慢,可以通过国内 GitHub 镜像网站来访问,配置方法如下:

    $ git config --global url."https://github.com.cnpmjs.org/".insteadOf "https://github.com/"
    
    • 1

    这里你要注意,通过镜像网站访问仅对 HTTPS 协议生效,对 SSH 协议不生效,并且 github.com.cnpmjs.org 的同步时间间隔为 1 天。
    最后,GitHub 限制最大只能克隆 100M 的单个文件,为了能够克隆大于 100M 的文件,我们还需要安装 Git Large File Storage,安装方式如下:

    $ git lfs install --skip-repo
    
    • 1

    好啦,现在我们就完成了依赖的安装和配置。

    Go 编译环境安装和配置

    安装 Go 语言相对来说比较简单,我们只需要下载源码包、设置相应的环境变量即可。
    首先,我们从 Go 语言官方网站下载对应的 Go 安装包以及源码包,这里我下载的是 go1.17.2 版本:

    $ wget https://golang.google.cn/dl/go1.17.2.linux-amd64.tar.gz -O /tmp/go1.17.2.linux-amd64.tar.gz
    
    • 1

    接着,我们完成解压和安装,命令如下:

    $ mkdir -p $HOME/go
    $ tar -xvzf /tmp/go1.17.2.linux-amd64.tar.gz -C $HOME/go
    $ mv $HOME/go/go $HOME/go/go1.17.2
    
    • 1
    • 2
    • 3

    最后,我们执行以下命令,将下列环境变量追加到$HOME/.bashrc 文件中。

    tee -a $HOME/.bashrc <<'EOF'
    # Go envs
    export GOVERSION=go1.17.2 # Go 版本设置
    export GO_INSTALL_DIR=$HOME/go # Go 安装目录
    export GOROOT=$GO_INSTALL_DIR/$GOVERSION # GOROOT 设置
    export GOPATH=$WORKSPACE/golang # GOPATH 设置
    export PATH=$GOROOT/bin:$GOPATH/bin:$PATH # 将 Go 语言自带的和通过 go install 安装的二进制文件加入到 PATH 路径中
    export GO111MODULE="on" # 开启 Go moudles 特性
    export GOPROXY=https://goproxy.cn,direct # 安装 Go 模块时,代理服务器设置
    export GOPRIVATE=
    export GOSUMDB=off # 关闭校验 Go 依赖包的哈希值
    EOF
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    为什么要增加这么多环境变量呢?这是因为,Go 语言是通过一系列的环境变量来控制 Go 编译器行为的。因此,我们一定要理解每一个环境变量的含义。
    因为 Go 以后会用 Go modules 来管理依赖,所以我建议你将 GO111MODULE 设置为 on。

    在使用模块的时候,$GOPATH 是无意义的,不过它还是会把下载的依赖储存在 $GOPATH/pkg/mod 目录中,也会把 go install 的二进制文件存放在 $GOPATH/bin 目录中。

    另外,我们还要将GOPATH/bin、GOROOT/bin 加入到 Linux 可执行文件搜索路径中。这样一来,我们就可以直接在 bash shell 中执行 go 自带的命令,以及通过 go install 安装的命令。

    最后就是进行测试了,如果我们执行 go version 命令可以成功输出 Go 的版本,就说明 Go 编译环境安装成功。具体的命令如下:

    $ bash
    $ go version
    go version go1.17.2 linu x/amd64
    
    • 1
    • 2
    • 3
  • 相关阅读:
    基于深度学习的水果识别系统
    springboot 实现跨域的几种方式
    超分辨率硕士论文阅读
    mybatis-plus id在高并发下出现重复
    Spring基础:快速入门spring cloud(1):Spring Cloud介绍
    基于SpringBoot+Vue的超市货物管理系统
    springcloud-01-注册中心
    uniapp学习笔记 真机运行遇到的问题
    Spring中什么样的Bean存在线程安全问题-有状态bean
    SpringCloud Alibaba——记录一种nacos配置中心动态刷新不起效的解决方式(@ConfigurationProperties)
  • 原文地址:https://blog.csdn.net/Zerore/article/details/125616429