Golang入门:Linux上的go语言安装与配置-程序员宅基地

技术标签: ubuntu  运维  linux  golang  服务器  

Tips:本文以本文撰写时的 Go 语言最新版本,也就是 go.1.19.2 版本为例。 Linux 发行版本使用 Ubuntu 22.04.1 LTS 为例来做演示。

安装 C 工具

Go 的工具链是用 C 语言编写的,因此在安装 Go 之前你需要先安装相关的 C 工具。如果你使用的是 Ubuntu 的话,你可以在终端输入以下指令( 由于网络环境的特殊性,你可能需要将每个工具分开安装 )。

sudo apt-get install bison ed gawk gcc libc6-dev make

你可以在其它发行版上使用 RPM 之类的工具。

Go 语言的下载

找到对应的Linux安装包,最新版是 go1.19.2.linux-amd64.tar.gz 这个文件,然后复制下载链接

下载 Linux 版本的 Go 语言环境压缩包,在 Linux 终端中输入下面这条命令:

wget https://go.dev/dl/go1.19.2.linux-amd64.tar.gz

解压语言包

解压文件,一般解压到 /usr/local。解压后得到 /usr/local/go 文件夹,这一步可能需要 root 权限,如果你是 root 账号,则可以不加 sudo 。

sudo tar -C /usr/local -zxvf  go1.19.2.linux-amd64.tar.gz

Go语言环境配置

得到完整的 Go 语言环境之后,我们需要将其可执行文件路径配置到环境变量中,使其在任何一个目录均可使用。如果你是 root 账号,可以不加 sudo。

我们在 Linux 系统下一般通过 $HOME/.bashrc 配置自定义环境变量,根据不同的发行版也可能是文件 $HOME/.profile

  • 单一用户:~/.bash_profile
  • 所有用户:/etc/profile
sudo vi /etc/profile

在打开的文件末尾加入环境变量配置,需要配置 GOPATHGOROOT ,出于个人习惯,建议 GOPATH 配置两个,第一个用于存储 Go 语言的第三方包,第二个用于存储自己开发的代码。

export GOROOT=/usr/local/go
export PATH="$PATH:$GOROOT/bin"
export GOPATH=$HOME/go/lib:$HOME/go/work

环境变量配置完毕后使用 source 指令来使环境变量生效

source /etc/profile

最后验证安装成功,输出正确的版本号。

GOROOT 和 GOPATH

GOROOT 是 Go 语言的安装目录,类似于 JAVA 中的 JAVA_HOME。

GOPATH 是你代码中的引用的包所在的位置,可以看成是工程目录,可以设置多个。

如果你设置了多个工作目录,那么当你在之后使用 go install(远程包安装命令)时远程包将会被安装在第一个目录下。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Guzarish/article/details/127388165

智能推荐

8连接路径_path("keys")-程序员宅基地

文章浏览阅读927次。文章目录8.1检查8.1.1初步检查8.5建立连接路径8.5.1 sort_inner_and_outer生成连接路径时所使用的算法—动态规划和遗传,动态规划推进到join_ search_one_ level遗传算法推进到merge clump,物理优化的部分从这两个函数开始就进入到了建立连接路径的阶段 连接路径指的是物理连接路径,也就是通过这种路径来实现逻辑连接操作建..._path("keys")

基于模板匹配的数字识别_基于模板匹配的数字电表数字识别-程序员宅基地

文章浏览阅读6.9k次,点赞5次,收藏35次。基于模板匹配的数字识别,将标准的8*16像素的数字0123456789读取,二值化,对每个数字进行等分区域分割,统计每个区域内的黑色像素点的个数,即为特征初值。采用欧式距离的模板匹配法。z//基于模板匹配的数字识别#include#include#include#include #includeusing namespace std; int main()_基于模板匹配的数字电表数字识别

Python代码的编写运行方式介绍_python安装好后怎么写代码-程序员宅基地

文章浏览阅读7.2k次,点赞11次,收藏74次。Python代码的编写运行方式详解_python安装好后怎么写代码

VS Code使用code runner插件无法识别gcc编译C语言程序_vscode无法识别gcc-程序员宅基地

文章浏览阅读1.2k次。VS Code配置Code runner_vscode无法识别gcc

Unity3D中使用mesh collider和box collider的区别-程序员宅基地

文章浏览阅读1.5w次,点赞10次,收藏14次。Unity3D中使用mesh collider和box collider的区别踩坑过程记录。设备是HTC的VIVE 和 Unity 5.xCPU: Intel Xeon Silver 4116 * 2GPU: NVIDIA Quadro P6000RAM: 64GB这个问题是在解决项目卡顿问题的同时出现的:最近在用U3D做一个VR项目,需求是要给网格加碰撞体以实现获取手柄射线与..._mesh collider和box collider

关于jar包后台运行及端口占用问题_centos启动jar包不显示端口占用-程序员宅基地

文章浏览阅读4.7k次。问题场景问题一:后端项目jar包打包上传运行,终端上正常,终端退出后,项目未能运行。问题二:第二次上传jar包并运行时提示该端口被占用。解决方法问题一:使用nohub命令启动jar包。nohup java -jar 1.0.0.jar &问题二:由于两次使用的同一个端口,先查找到当前端口正在运行的进程的进程号。netstat -lnp|grep 端口号然后用杀掉进程..._centos启动jar包不显示端口占用

随便推点

使用Gitlab 搭建私有镜像仓库(外置Nginx)_docker gitlab 使用外部nginx-程序员宅基地

文章浏览阅读1.2k次。为了让团队尽快使用Gitlab的CI进行工作,必须做好Gitlab的初始化工作,大家都知道拉取镜像由于某些原因,会比较慢,因此构建自己的私有镜像仓库就成为了关键的一步。当然私有镜像仓库的搭建有很多种方式,这里直接使用Gitlab提供的镜像仓库功能。一揽子解决方案比较香。gitlab真的越来越好用了,有了这个镜像仓,也没必要再使用三方的镜像仓库了。Devops 真好用!_docker gitlab 使用外部nginx

python之uWSGI和WSGI-程序员宅基地

文章浏览阅读130次。WSGI协议首先弄清下面几个概念:WSGI:全称是Web Server Gateway Interface,WSGI不是服务器,python模块,框架,API或者任何软件,只是一种规范,描述web server如何与web application通信的规范。server和application的规范在PEP 3333中有具体描述。要实现WSGI协议,必须同时实现web server和..._python uwsgi 和pywsgi

Java---简单易懂的KNN算法_jf.knn-%; 9 &-程序员宅基地

文章浏览阅读399次。一,简单介绍KNN算法---就是获取临近点,范围内,哪一种点最多(例如:红点:6,黑点:2,未知点肯定是红点),就是属于最多一方定义样本,拥有四个样本,已知A区两点分别(2,5)和(1,4),B区(8,1)和(9,2),求灰点(4,3)属于哪一区?代码定义实体类/** * 定义数据和数据类型 * @author peng * */ private s..._jf.knn-%; 9 &

最新版ffmpeg 提取视频关键帧_从视频中获取flag-程序员宅基地

文章浏览阅读8.9k次,点赞2次,收藏9次。对于ffmpeg的配置请看我的上篇博客:http://blog.csdn.net/kuaile123/article/details/11367309所用视频为 flv格式的,用的vs2010,电脑为64位,下面的也是64位,别下错了。因为ffmpeg的函数和版本有关系,这里记录下我所用的整合的版本,是昨天下的最新版的,需要请下载http://download.csdn.n_从视频中获取flag

【ARM Cache 系列文章 11 -- ARM Cache 直接映射 详细介绍】

在直接映射缓存中,每个内存地址通过某种映射函数(通常是地址的一部分)映射到一个特定的缓存行。这种结构简单,硬件实现成本较低,但可能会导致较高的缓存冲突(两个内存地址映射到同一缓存行),从而降低缓存效率。在介绍直接映射之前,以停车场停车作为例子,先把结构的特点简单地概括出来,便于读者了解。

Objective-C学习计划

持续学习,跟进Objective-C的最新发展和技术。了解Objective-C的基本语法和编程概念。掌握Objective-C的高级特性和常用框架。应用所学知识,完成实际项目。