还原一个全栈开发者的开发环境

12,603 阅读3分钟

这是我参与更文挑战的第4天,活动详情查看:更文挑战

已经不知道换了多少次开发环境,从 Windows 到 Linux,再到 MacOS,更多还是 Linux,但每次都是凭着记忆还原曾经熟悉的那个开发环境,这个过程要花好几天,所以这次我决定记录下这整个过程。

开发环境

最近,由于开发用的一台服务器将要到期了,所以新的服务器需要重新配置环境,借此机会记录下我还原整个开发环境的过程。

我是一个全栈后端开发者,主要写 Golang 等,使用的 IDE 是 VSCode,再加上它的利器 Remote - SSH,远程开发让我很少再使用本地的环境进行开发了,因为这可以让我在切换设备后,仍可以正常工作!

我的开发环境(远程服务器)包括以下内容:

  • Proxy
  • Oh-My-Zsh
  • Go
  • Docker
  • Git

Proxy

所有的开始,都要从配置代理开始,这将会加快整个过程。

作为一名国内开发者,很多时候都需要访问或者下载一些国外的资源,当然可以通过一些国内源代替,但是最好的解决办法还是配置一个代理。这里说明一下如何在 Linux 上配置代理,我们只需要在 ~/.bash_profile 文件里添加下面的内容:

proxy_ip="127.0.0.1"
proxy_port="7890"
proxy_addr="$proxy_ip:$proxy_port"
http_proxy="http://$proxy_addr"
socks5_proxy="socks5://$proxy_addr"
alias proxy='export https_proxy=$http_proxy \
http_proxy=$http_proxy \
ftp_proxy=$http_proxy \
rsync_proxy=$http_proxy \
all_proxy=$socks5_proxy \
no_proxy="127.0.0.1,localhost"'
alias unproxy='unset https_proxy http_proxy ftp_proxy rsync_proxy all_proxy no_proxy'

保存后,执行下面的命令即可生效:

source ~/.bash_profile

在需要使用代理的时候,执行 proxy 即可开启代理,不需要的时候,执行 unproxy 即可关闭。

在后面我们配置好 Oh-My-Zsh 后,可以将上面写在 ~/.bash_profile 里的内容移到 ~/.zshrc 文件中。

Oh-My-Zsh

bash 固然可以,但我更喜欢使用 zsh + Oh-My-Zsh,因为它更加好看,也拥有更多的插件可以使用,可以帮助我节省很多时间。

Oh-My-Zshzsh 的一个框架,所以安装 Oh-My-Zsh 之前,需要先安装 zsh,我用的系统是 CentOS 7,所以需要使用下面的方法进行安装:

sudo yum update && sudo yum -y install zsh

如果是其他系统,可以参考这个 文档 进行安装 zsh

安装完 zsh 后,我们就可以安装 Oh-My-Zsh 了,只需一步:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

到这里,就安装好了 Oh-My-Zsh,但我还会用到一些插件,比如 gitzsh-syntax-highlightingzsh-autosuggestions 等,下面是我的配置文件 ~/.zshrc

export ZSH="/home/k8scat/.oh-my-zsh"
ZSH_THEME="robbyrussell"

plugins_folder="${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins"
syntax_highlight_plugin="${plugins_folder}/zsh-syntax-highlighting"
[[ ! -d "$syntax_highlight_plugin" ]] && git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $syntax_highlight_plugin
autosuggestions_plugin="${plugins_folder}/zsh-autosuggestions"
[[ ! -d "$autosuggestions_plugin" ]] && git clone https://github.com/zsh-users/zsh-autosuggestions $autosuggestions_plugin
[[ -z $(pip list | grep -E "^wakatime ") ]] && pip install --user wakatime
wakatime_plugin="${plugins_folder}/wakatime"
[[ ! -d "$wakatime_plugin" ]] && git clone https://github.com/sobolevn/wakatime-zsh-plugin.git $wakatime_plugin
[[ ! -s "$HOME/.wakatime.cfg" ]] && cat > $HOME/.wakatime.cfg <<EOF
[settings]
api_key = xxx
EOF
plugins=(git zsh-syntax-highlighting zsh-autosuggestions wakatime docker docker-compose)

source $ZSH/oh-my-zsh.sh

export GOPRIVATE="github.com/private"
export GO111MODULE="auto"
export GOPROXY="https://goproxy.io,direct"
export GOROOT="/usr/local/go"
export GOPATH="$HOME/go"
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

proxy_ip="127.0.0.1"
proxy_port="7890"
proxy_addr="$proxy_ip:$proxy_port"
http_proxy="http://$proxy_addr"
socks5_proxy="socks5://$proxy_addr"
alias proxy='export https_proxy=$http_proxy \
http_proxy=$http_proxy \
ftp_proxy=$http_proxy \
rsync_proxy=$http_proxy \
all_proxy=$socks5_proxy \
no_proxy="127.0.0.1,localhost,192.168.8.152,192.168.8.154,192.168.8.155"'
alias unproxy='unset https_proxy http_proxy ftp_proxy rsync_proxy all_proxy no_proxy'
proxy

export PATH=$PATH:$HOME/.local/bin

Go

作为一名 Go 开发者,必不可少的当然是安装 Go。由于我一开始就配置了代理,所以使用的是国外的下载源,安装步骤主要如下:

curl -LO https://golang.org/dl/go1.16.5.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.16.5.linux-amd64.tar.gz

然后需要配置一些环境变量:

export GOPRIVATE="github.com/private"
export GO111MODULE="auto"
export GOPROXY="https://goproxy.io,direct"
export GOROOT="/usr/local/go"
export GOPATH="$HOME/go"
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

Docker

Docker 真的是现代软件开发中必不可少的一个技术了,不使用 Docker 都 Out 了!

也确实,Docker 在日常开发中也有很大的帮助,比如需要一个 MySQL 数据库,我们只需一行命令就可以跑起来:

docker run -d -p 3306:3306 mysql:8

这比以前安装一个 MySQL 折腾半天可要简单太多了!所以如果你现在还不会使用 Docker 的话,赶紧学起来吧!

下面是如何在 CentOS 上安装 Docker:

sudo yum install -y yum-utils
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io

# 让 Docker 服务开机自启动
sudo systemctl enable docker
# 启动 Docker
sudo systemctl start docker

# 验证
sudo docker run hello-world

其他系统安装 Docker 可以参考这个 文档

Git

版本控制是开发过程中必不可少的一个环节,而 Git 就是这个环节的一大利器。在 CentOS 上,我们可以快速使用下面的命令安装 Git:

sudo yum install -y git

但是,这样安装的 Git 的版本比较低,或者不是我们想要的版本,我们可以选择去 GitHub 上面下载需要的发布版本,然后基于源码编译安装,下面是如何安装 Git v2.29.2 的过程:

# 安装依赖
sudo yum install -y gcc openssl-devel expat-devel curl-devel

# 下载源码
curl -LO https://github.com/git/git/archive/v2.29.2.tar.gz
tar zxf v2.29.2.tar.gz
cd git-2.29.2
make prefix=/usr
sudo make prefix=/usr install

本地 VSCode

到此,远程服务器的环境大致算是完成了,然后本地 VSCode 需要安装插件 Remote - SSH,然后配置 ~/.ssh/config 文件,添加以下内容:

Host dev-server
    HostName 40.18.95.22
    User k8scat
    Port 9232
    IdentityFile ~/.ssh/id_rsa

最后,便可以开始远程开发之旅了,下班后回家再也不用带电脑了,回到家继续连上远程 Coding...

个人博客

k8scat.com/posts/dev-w…