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 安装。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,258评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,335评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,225评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,126评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,140评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,098评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,018评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,857评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,298评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,518评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,400评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,993评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,638评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,661评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容