1.Linux虚拟机环境准备
笔者这里是直接使用阿里云配置了一台Centos8的linux云服务器。
linux配置
1.用户配置
[root@yz117 opt]# useradd terry
[root@yz117 opt]# passwd terry
2.将普通用户加入到 sudoers 中,这样普通用户就可以通过 sudo 命令来暂时获取 Root 的权限。
sed -i '/^root.*ALL=(ALL).*ALL/a\terry\tALL=(ALL) \tALL' /etc/sudoers
3.用新的用户名(going)和密码登录 Linux 服务器。
su terry
4.配置 $HOME/.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 设置会展示全部的路径,为了防止过长,这里只展示
export WORKSPACE="$HOME/workspace" # 设置工作目录
export PATH=$HOME/bin:$PATH # 将 $HOME/bin 目录加入到 PATH 变量中
# Default entry folder
cd $WORKSPACE # 登录系统,默认进入 workspace 目录
2.安装依赖
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
3.git安装
1.install
$ 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
2.配置环境变量
[terry@dev git-2.30.2]$ tee -a $HOME/.bashrc <<'EOF'
> export PATH=/usr/local/libexec/git-core:$PATH
> EOF
export PATH=/usr/local/libexec/git-core:$PATH
3.配置git
$ git config --global user.name "yours" # 用户名改成自己的
$ git config --global user.email "yours" # 邮箱改成自己的
$ git config --global credential.helper store # 设置 Git,保存用户名和密码
$ git config --global core.longpaths true # 解决 Git 中 'Filename too long' 的错
$ git config --global core.quotepath off #防止显示乱码
$ git config --global url."https://github.com.cnpmjs.org/".insteadOf "https://github.com/" #配置加速
$ git lfs install --skip-repo #配置large file storage
4.Go 编译环境安装和配置
- Go 以后会用 Go modules 来管理依赖,所以我建议你将 GO111MODULE 设置为 on。
- 在使用模块的时候,GOPATH 是无意义的,不过它还是会把下载的依赖储存在$GOPATH/pkg/mod 目录中,也会把 go install 的二进制文件存放在 GOPATH/bin 目录中。
- 要将GOPATH/bin、GOROOT/bin 加入到 Linux 可执行文件搜索路径中。这样一来,我们就可以直接在 bash shell 中执行 go 自带的命令,以及通过 go install 安装的命令。
1.安装go
$ wget https://golang.google.cn/dl/go1.18.linux-amd64.tar.gz -O /tmp/go1.18.linux-amd64.tar.gz
$ mkdir -p $HOME/go
$ tar -xvzf /tmp/go1.18.linux-amd64.tar.gz -C $HOME/go
$ mv $HOME/go/go $HOME/go/go1.18
2.配置环境变量
tee -a $HOME/.bashrc <<'EOF'
# Go envs
export GOVERSION=go1.18 # 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
Go环境变量速查
5.ProtoBuf 编译环境安装
protoc 需要 protoc-gen-go 来完成 Go 语言的代码转换,因此我们需要安装 protoc 和 protoc-gen-go 这 2 个工具。
在clone的过程中发现cnpmjs已经不能使用了,建议修改/etc/hosts文件,将github.com指向一个可用ip
# 第一步:安装 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
# 第二步:安装 protoc-gen-go
$ go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
$ go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
6.Go 开发 IDE 安装和配置
Linux下的NeoVim
Vim 可以选择 NeoVim,NeoVim 是基于 Vim 的一个 fork 分支,它主要解决了 Vim8 之
前版本中的异步执行、开发模式等问题,对 Vim 的兼容性很好。同时对 vim 的代码进行了
大量地清理和重构,去掉了对老旧系统的支持,添加了新的特性。
1.Install
$ sudo pip3 install pynvim
$ sudo yum -y install neovim
2.配置环境变量
tee -a $HOME/.bashrc <<'EOF'
# Configure for nvim
export EDITOR=nvim # 默认的编辑器(git 会用到)
alias vi="nvim"
EOF
3.检查 nvim 是否安装成功。
[terry@dev workspace]$ bash
[terry@dev workspace]$ vi --version
NVIM v0.7.0
4.离线安装 SpaceVim
cd /tmp
wget https://marmotedu-1254073058.cos.ap-beijing.myqcloud.com/tools/marmotVim.tar.gz tar -xvzf marmotVim.tar.gz
cd marmotVim
./marmotVimCtl install
SpaceVim 配置文件为:$HOME/.SpaceVim.d/init.toml 和$HOME/.SpaceVim.d/autoload/custom_init.vim
init.toml:SpaceVim 的配置文件
custom_init.vim:兼容 vimrc,用户自定义的配置文件
SpaceVim Go IDE 常用操作的按键
7.Go工具的安装
SpaceVim 会用到一些 Go 工具,比如在函数跳转时会用到 guru、godef 工具,在格式化时会用到 goimports,所以我们也需要安装这些工具。安装方法有 2 种:
- Vim 底线命令安装:vi test.go,然后执行::GoInstallBinaries 安装。
- 拷贝工具:直接将整理好的工具文件拷贝到$GOPATH/bin 目录下。
直接拷贝
$ cd /tmp
$ wget https://marmotedu-1254073058.cos.ap-beijing.myqcloud.com/tools/gotools-for-spacevim.tgz
$ mkdir -p $GOPATH/bin
$ tar -xvzf gotools-for-spacevim.tgz -C $GOPATH/bin
尝试运行
main.go
package main
import "fmt"
func main() {
fmt.Println("Hello World")
}
[terry@dev src]$ go build main.go
[terry@dev src]$ go run main.go
Hello World