1 环境搭建

1 环境搭建 (Ubuntu 20.04)#

  • 添加普通用户
Copy
useradd going # 创建 going 用户,通过 going 用户登录开发机进行开发 passwd going # 设置密码 Changing password for user going. New password: Retype new password: passwd: all authentication tokens updated successfully.
  • 添加sudoers
Copy
# 普通用户就可以(不用密码)通过 sudo 命令来暂时获取 Root 的权限 sed -i '/^root.*ALL=(ALL).*ALL/a\going\tALL=(ALL) \tALL' /etc/sudoers
  • $HOME/.bashrc (根据个人需要选择是否配置)
Copy
# .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 目录
  • 配置Git
Copy
git config --global user.name "bmxm" # 用户名改成自己的 git config --global user.email "bmwxm@outlook.com" # 邮箱改成自己的 git config --global credential.helper store # 设置 Git,保存用户名和密码 git config --global core.longpaths true # 解决 Git 中 'Filename too long' 的错误 git config --global core.quotepath off # 在 Git 中,非 ASCII 字符也叫Unusual 字符,在 Git 输出到终端的时候默认是用 8 进制转义字符输出的(以防乱码),但现在的终端多数都支持直接显示非 ASCII 字符,所以我们可以关闭掉这个特性 # 如果你觉得访问 github.com 太慢,可以通过国内 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
  • 配置Go环境
Copy
wget https://golang.google.cn/dl/go1.17.2.linux-amd64.tar.gz -O /tmp/go1.17.2.linux-amd64.tar.gz 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

追加环境变量

Copy
tee -a $HOME/.bashrc <<'EOF' export GOVERSION=go1.17.2 # Go 版本设置 export GO_INSTALL_DIR=$HOME/go # Go 安装目录 export GOROOT=$GO_INSTALL_DIR/$GOVERSION # GOROOT 设置 export GOPATH=$GOROOT/gopath # 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
  • ProtoBuf 编译环境安装
Copy
# 第一步:安装 protobuf cd /tmp/ git clone --depth=1 https://github.com/protocolbuffers/protobuf cd protobuf ./autogen.sh # 可能会提示./autogen.sh: 41: autoreconf: not found # 执行 sudo apt-get install autoconf automake libtool ./configure # 可能会提示 configure: error: C++ preprocessor "/lib/cpp" fails sanity check # 执行 sudo apt-get install build-essential g++ make sudo make install protoc --version # 查看 protoc 版本,成功输出版本号,说明安装成功 # 可能会报错 : protoc: error while loading shared libraries: libprotoc.so.30: cannot open shared object file: No such file or directory # 再.bashrc 中加 export LD_LIBRARY_PATH=/usr/local/lib # bash 或 source # 第二步:安装 protoc-gen-go go get -u github.com/golang/protobuf/protoc-gen-go
  • 配置NeoVim
Copy
# 老版本的Ubuntu可能需要先安装PPA # sudo apt-get install software-properties-common sudo apt-add-repository ppa:neovim-ppa/stable sudo apt-get update sudo apt-get install neovim # 配置 nvim 的别名为 vi,这样当我们执行 vi 时,Linux 系统就会默认调用 nvim。同时,配置 EDITOR 环境变量可以使一些工具 tee -a $HOME/.bashrc <<'EOF' # Configure for nvim export EDITOR=nvim # 默认的编辑器(git 会用到) alias vi="nvim" EOF
  • 配置SpaceVim
Copy
# SpaceVim是一个开源的模块化配置集合,可以通过它很方便的打造出适用于各种开发场景的IDE。 curl -sLf https://spacevim.org/cn/install.sh | bash # SpaceVim 安装 Go 工具 # 这里提供了两种方式 # 1 - Vim 底线命令安装:vi test.go,然后执行::GoInstallBinaries 安装。 # 2 - 拷贝工具:直接将整理好的工具文件拷贝到$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

posted @   bm小明  阅读(93)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示
CONTENTS