最近需要了解组里的Full-Stack同事给我们后端项目写的一些功能,大部分使用Golang实现的,所以就简单在自己的机器上上配置一下Go语言的环境,以备之后自己调试未实现的功能。
这里顺便附上两个参考过的教程:
Download and install - The Go Programming Language
How to install Go (Golang) in Arch Linux/Manjaro
Manjaro用户如果也用pacman作为主要的包管理的话,按我这个教程应该也是没问题的,如果你测试没问题,可以在评论区回复一下哈 :))
首先介绍一下我的机器配置:Arch Linux + 5.19.6 Kernel
xx@ws-30 ~ % neofetch
-` xx@ws-30
.o+` --------
`ooo/ OS: Arch Linux x86_64
`+oooo: Host: 20YM Lenovo ThinkBook 16p Gen 2
`+oooooo: Kernel: 5.19.6-arch1-1
-+oooooo+: Uptime: 1 hour, 44 mins
`/:-:++oooo+: Packages: 1240 (pacman)
`/++++/+++++++: Shell: zsh 5.9
`/++++++++++++++: Resolution: 2560x1440, 2560x1440, 2560x1600
`/+++ooooooooooooo/` DE: GNOME 42.4
./ooosssso++osssssso+` WM: Mutter
.oossssso-````/ossssss+` WM Theme: Adwaita
-osssssso. :ssssssso. Theme: Adwaita [GTK2/3]
:osssssss/ osssso+++. Icons: Adwaita [GTK2/3]
/ossssssss/ +ssssooo/- Terminal: gnome-terminal
`/ossssso+/:- -:/+osssso+- CPU: AMD Ryzen 9 5900HX with Radeon Graphics (16) @ 3.300GHz
`+sso+:-` `.-/+oso: GPU: AMD ATI 05:00.0 Cezanne
`++:. `-/+/ GPU: NVIDIA GeForce RTX 3060 Mobile / Max-Q
.` `/ Memory: 8419MiB / 31461MiB
sudo pacman -Syuu
sudo pacman -S vim curl #如果你没GUI只能用终端下载的话,安装一下这两个包
1. 下载Go语言安装包
这里我不推荐用命令行直接来,因为最新的版本号总是变,直接网页端打开下载好了再弄别的。
下载地址:Download and install - The Go Programming Language
默认的下载路径应该是~/Downloads , 下一步就一直cd进入到这个文件夹里。
如果真的没有GUI的话,curl运行一下以下的命令:
curl -LO https://dl.google.com/go/go具体的版本号自己写.linux-amd64.tar.gz #e.g. 1.19.1
2. 删除旧版本的Go(没有请忽略)并解压新版本到一个指定文件夹
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.19.1.linux-amd64.tar.gz
这里谷歌/Go官方推荐的解压文件夹是 /use/local/ , 解压成功后应该会有一个 /usr/local/go/ ,你可以查看一下这里面具体有啥。
xx@ws-30 ~ % cd /usr/local/go
xx@ws-30 /usr/local/go % ll
total 68
-rw-r--r-- 1 root root 1339 31. Aug 19:37 CONTRIBUTING.md
-rw-r--r-- 1 root root 1479 31. Aug 19:37 LICENSE
-rw-r--r-- 1 root root 1303 31. Aug 19:37 PATENTS
-rw-r--r-- 1 root root 1455 31. Aug 19:37 README.md
-rw-r--r-- 1 root root 419 31. Aug 19:37 SECURITY.md
-rw-r--r-- 1 root root 8 31. Aug 19:37 VERSION
drwxr-xr-x 2 root root 4096 31. Aug 19:39 api
drwxr-xr-x 2 root root 4096 31. Aug 19:40 bin
-rw-r--r-- 1 root root 52 31. Aug 19:37 codereview.cfg
drwxr-xr-x 2 root root 4096 31. Aug 19:39 doc
drwxr-xr-x 3 root root 4096 31. Aug 19:39 lib
drwxr-xr-x 11 root root 4096 31. Aug 19:39 misc
drwxr-xr-x 6 root root 4096 31. Aug 19:40 pkg
drwxr-xr-x 48 root root 4096 31. Aug 19:39 src
drwxr-xr-x 26 root root 12288 31. Aug 19:39 test
3. 设置Go的全局环境变量
Go主要依托于GOROOT和GOPATH,我们只需要把这两个变量定义好并且加入到配置文件中(bash/ zsh)就好了。
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
4. 刷新配置文件
由于ArchLinux本身用的是zshrc,但是大部分Linux也会用bashrc,我有的变量配置在了bash里,有的配置在了zsh里,我也不确定,所以就一次性把两个文件都更新一下。
source ~/.bashrc
source ~/.zshrc
5. 检测
go version
go env
检查一下以上两个命令的输出是什么,然后就可以继续干正事儿了。
xx@ws-30 /usr/local/go % go version
go version go1.19.1 linux/amd64
我之后遇到一些问题,就是刷新配置文件后,新的终端和重启后检测不到go的全局变量,大概错误的输出为
xx@ws-30 /usr/local/go % go version
go will not execute and completion _go exists
这种情况一般是zshrc变量是临时的,要手动编辑保存一下。打开~/.zshrc 文件,把上面拿三行粘贴进去,保存。
source ~/.zshrc 更新,然后重新打开终端测试一下,输出正常就可以了。