Linux 服务器申请和配置
服务器:centos8.2
服务器配置
-
用 root 用户登录 Linux 系统,并创建普通用户
useradd going # 创建普通用户 passwd going # 设置密码
-
添加 sudoers
centos8.2 中 新创建的用户 ,无法使用 sudo 命令来暂时获取 root 权限。
可以执行下面命令添加:
sed -i '/^root.*ALL=(ALL).*ALL/a\going\tALL=(ALL) \tALL' /etc/sudoers
-
使用 普通用户 going 登录服务器
# 个人在vmware虚拟机中最小化安装centos8.2 # 使用 dnf 安装常用软件 sudo dnf install vim net-tools wget -y
-
配置 $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 目录
-
创建工作目录 workspace。将工作文件统一放在 $HOME/workspace 目录中。
# -p 参数,确保目录名称存在,不存在的就建一个。 mkdir -p $HOME/workspace
依赖安装和配置
安装所需工具的依赖
-
安装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
-
配置 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 是一门编译性语言,需要将代码编译成可执行的二进制文件。
-
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 语言的代码转换。
-
安装 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 get -u github.com/golang/protobuf/protoc-gen-go
Go开发IDE安装和配置
NeoVim + SpaceVim
NeoVim 是基于 Vim 的一个 fork 分支。
通过 SpaceVim 将 Vim 配置成一个 Go IDE。
-
安装 NeoVim
sudo pip3 install pyvim sudo yum -y install neovim
-
配置 $HOME/.bashrc
export EDITOR=nvim # 默认的编辑器(git 会用到) alias vi="nvim"
-
检查 nvim 是否安装成功
bash vi --version
-
离线安装 SpaceVim
SpaceVim 的配置文件为:- $HOME/.SpaceVim.d/init.toml
SpaceVim的配置文件 - $HOME/.SpaceVim.d/autoload/custom_init.vim
兼容vimrc,用户自定义的配置文件
- $HOME/.SpaceVim.d/init.toml
Go 工具安装
SpaceVim 会用到一些 Go 工具,比如在函数跳转时会用到 guru、godef 工具,在格式化时会用到 goimports,所以我们也需要安装这些工具。
- Vim 底线命令安装
vi test.go,然后执行::GoInstallBinaries 安装。