02 开发环境搭建

Linux 服务器申请和配置

服务器:centos8.2

服务器配置

  1. 用 root 用户登录 Linux 系统,并创建普通用户

    useradd going  # 创建普通用户
    passwd going   # 设置密码
    
  2. 添加 sudoers
    centos8.2 中 新创建的用户 ,无法使用 sudo 命令来暂时获取 root 权限。

    sudo

    可以执行下面命令添加:

    sed -i '/^root.*ALL=(ALL).*ALL/a\going\tALL=(ALL) \tALL' /etc/sudoers
    
  3. 使用 普通用户 going 登录服务器

    # 个人在vmware虚拟机中最小化安装centos8.2
    # 使用 dnf 安装常用软件
    sudo dnf install vim net-tools wget -y
    
  4. 配置 $HOME/.bashrc 文件

    # 参数 -i :执行 rm、cp、mv 操作前先进行确认
    alias rm='rm -i'
    alias cp='cp -i'
    alias mv='mv -i'
    
    # Basic envs
    export WORKSPACE="$HOME/workspace" # 设置工作目录
    export LANG="en_US.UTF-8"    # 设置系统语言为 en_US.UTF-8,避免终端出现中文乱码
    export PS1='[\u@dev \W]\$ '  # 默认的 PS1 设置会展示全部路径,为了防止过长,
                                 # 这里只展示:"用户名@dev 最后一级目录名"
    export PATH=$HOME/bin:$PATH  # 将 $HOME/bin 目录加入到 PATH 变量中
    
    cd $WORKSPACE # 登录系统,默认进入 workspace 目录
    
  5. 创建工作目录 workspace。将工作文件统一放在 $HOME/workspace 目录中。

    # -p 参数,确保目录名称存在,不存在的就建一个。
    mkdir -p $HOME/workspace
    

依赖安装和配置

  1. 安装所需工具的依赖

  2. 安装git
    因为安装 IAM 系统、执行 go get 命令、安装protobuf工具等,都是通过 Git 来操作的。

    go get 在安装 Go 包时会用到 git fetch --unshallow 命令,因此我们要安装一个高版本的 GIt。

    fetch        # Download objects and refs from another repository
    --unshallow  # convert to a complete repository
    

    git 安装好后,要把 Git 的二进制目录添加到 PATH 路径中,不然 Git 可能会因为找不到一些命令而报错。

    # Configure for git
    export PATH=/usr/local/libexec/git-core:$PATH
    
    # 或者使用下面的方式
    tee -a $HOME/.bashrc <<'EOF'
    # Configure for git
    export PATH=/usr/local/libexec/git-core:$PATH
    EOF
    
  3. 配置 Git

    git config --global user.name "xxx"           # 用户名
    
    git config --global user.email "xxx"          # 邮箱
    
    git config --global credential.helper store   # 设置 Git,保存用户名和密码 
    
    git config --global core.longpaths true       # 解决 Git 中 ‘Filename too lang’ 的错误
    
    git config --global core.quotepath off        # 在Git,把非ASCII字符叫做 Unusual 字符。这类字符输出到
                                                  # 终端的时候默认是8进制转义字符输出的(以防乱码),现在的
                                                  # 终端多数都支持直接显示非ASCII字符,所以关闭这个属性。
    
    # 通过国内Github镜像网站访问,提高访问速度。
    # 仅对 HTTPS 协议生效,对 SSH 协议不生效。
    # github.com.cnpmjs.org 的同步时间间隔为 1 天。
    git config --global url."https://github.com.cnpmjs.org/".insteadOf "https://github.com/"
    
    # GitHub 限制最大只能克隆 100M 的仓库,
    # 为了能够克隆容量大于 100M 的仓库,我们还需要安装 Git Large File Storage
    git lfs install --skip-repo
    

    Git 的配置文件位于:$HOME/.gitconfig

    配置文件内容

    配置完成后

Go编译环境和配置

Go 是一门编译性语言,需要将代码编译成可执行的二进制文件。

  1. Go 编译环境安装和设置

    • 官网下载 go1.16.2
    • 安装目录为 $HOME/go/go1.16.2
    mkdir -p $HOME/go
    tar -zxvf /tmp/go1.16.2.linux-amd64.tar.gz -C $HOME/go
    mv $HOME/go/go $HOME/go/go1.16.2
    
    • 添加 环境变量 到 $HOME/.bashrc 文件中
    export GOVERSION=go1.16.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=github.com                # 指定不走代理的 Go 包域名
    
    export GOSUMDB=off                         # 关闭校验 Go 依赖包的哈希值
    
    # 或者使用下面命令
    tee -a $HOME/.bashrc <<'EOF'
    # Go envs
    export GOVERSION=go1.16.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
    

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

    • 测试
      go version

ProtoBuf 编译环境安装

会使用到 gRPC框架展示 RPC 通信协议的用法,所以需要将 ProtoBuf 的 .proto 文件编译成 Go 语言的接口。
protoc 需要 protoc-gen-go 来完成 Go 语言的代码转换。

  1. 安装 ProtoBuf 的编译器。

    cd /tmp/
    git clone --depth=1 https://github.com/protocolbuffers/protobuf
    cd protobuf
    ./autogen.sh
    ./configure
    make
    sudo make install
    protoc --version # 查看 protoc 版本,成功输出版本号,说明安装成功libprotoc 3.15.6
    
  2. 安装 protoc-gen-go

    go get -u github.com/golang/protobuf/protoc-gen-go
    

Go开发IDE安装和配置

NeoVim + SpaceVim
NeoVim 是基于 Vim 的一个 fork 分支。
通过 SpaceVim 将 Vim 配置成一个 Go IDE。

  1. 安装 NeoVim

    sudo pip3 install pyvim
    sudo yum -y install neovim
    
  2. 配置 $HOME/.bashrc

    export EDITOR=nvim # 默认的编辑器(git 会用到)
    alias vi="nvim"
    
  3. 检查 nvim 是否安装成功

    bash
    vi --version
    
  4. 离线安装 SpaceVim
    SpaceVim 的配置文件为:

    • $HOME/.SpaceVim.d/init.toml
      SpaceVim的配置文件
    • $HOME/.SpaceVim.d/autoload/custom_init.vim
      兼容vimrc,用户自定义的配置文件

Go 工具安装

SpaceVim 会用到一些 Go 工具,比如在函数跳转时会用到 guru、godef 工具,在格式化时会用到 goimports,所以我们也需要安装这些工具。

  1. Vim 底线命令安装
    vi test.go,然后执行::GoInstallBinaries 安装。

你可能感兴趣的:(02 开发环境搭建)