首页 > 系统相关 >Ubuntu使用gvm安装go

Ubuntu使用gvm安装go

时间:2024-03-21 22:36:55浏览次数:28  
标签:go1.18 gvm GOROOT ubuntu export Ubuntu go

建议使用非sudo用户装,方便vscode连接时go插件使用。

1.若系统之前存在旧版本的go,无则跳过此步骤

sudo rm -rf /usr/local/go
sudo apt-get remove golang
sudo apt-get remove golang-go
sudo apt-get autoremove

2.到gvm的官方github页面找到安装的命令

https://github.com/moovweb/gvm

安装gvm命令

bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)

如果用的是zsh,那就把这条命令的bash换成zsh即可。

在这里我使用的是腾讯云的服务器,它把github给ban了,非常烦人。执行这个bash命令报网络错误,我的解决方法是:直接到命令中的网址把这个gvm-installer下载下来,然后本地执行这个文件。

然后重启一下terminal,试试输入gvm会不会输出对应的输出,不行的话,到~/.bashrc 中底部补充一句

(这里的'/home/ubuntu'是用户目录,如果ubuntu可以换成自己的用户名。)

[[ -s "/home/ubuntu/.gvm/scripts/gvm" ]] && source "/home/ubuntu/.gvm/scripts/gvm"

3.使用gvm安装go(go1.5以上)

如果需要安装go1.5或以上的go版本,需要先安装go1.4,gvm官网写的原因是go1.5以上版本去除了C编译器(感兴趣可以去官网页面看)。

gvm install go1.4 -B
gvm use go1.4
export GOROOT_BOOTSTRAP=$GOROOT
gvm install go1.18

如果gvm install卡住了,可以尝试以下两种解决方法:

 gvm install go1.18 -B
或者
gvm install go1.18 --source=https://github.com/golang/go

4.使用刚安装的go

gvm use go1.18
(如果想要让gvm默认使用此版本,在后面添加--default)
go version

5.把gvm装的某个版本的go配置到系统默认里

将以下环境变量添加到/etc/profile

# GO PATH
export GOROOT=/home/ubuntu/.gvm/gos/go1.18
export GOPATH=/home/ubuntu/.gvm/pkgsets/go1.18/global
export GOBIN=$GOPATH/bin
export PATH=$GOPATH:$GOBIN:$GOROOT/bin:$PATH

如果不确定自己的GOROOT 和GOPATH,可以使用命令获取

gvm use go1.18
go env | grep GOROOT
go env | grep GOPATH

也可以在 gvm use go1.18的后面加上--default,设置该版本为默认版本。

然后将下列命令补充到~/.bashrc 的最后一行

source "/etc/profile"

然后把机器重启一下,尝试一下直接go version看下是否打印了对应的go版本

标签:go1.18,gvm,GOROOT,ubuntu,export,Ubuntu,go
From: https://www.cnblogs.com/chenmaoling/p/18088385

相关文章

  • 5.Go变量 常量 变量命名规则 代码风格
    Go变量、常量、命名规则、代码风格1、变量的来历程序运行过程中的数据都是保存在内存中,我们想要在代码中操作某个数据时就需要去内存上找到这个变量,但是如果我们直接在代码中通过内存地址去操作变量的话,代码的可读性会非常差而且还容易出错,所以我们就利用变量将这个数据的内存......
  • 3.Go 语言 定义变量、fmt 包、Print、Println、Go 语言注释
    Go语言定义变量、fmt包、Print、Println、Printf、Go语言注释1、Go语言定义变量这里我们为了演示代码期间给大家先简单介绍一下变量,后面的教程还会详细讲解。关于变量:程序运行过程中的数据都是保存在内存中,我们想要在代码中操作某个数据时就需要去内存上找到这个变量,但是......
  • 4.Go变量 常量申明 变量命名规则
    Go变量、常量、变量命名规则1、变量的来历程序运行过程中的数据都是保存在内存中,我们想要在代码中操作某个数据时就需要去内存上找到这个变量,但是如果我们直接在代码中通过内存地址去操作变量的话,代码的可读性会非常差而且还容易出错,所以我们就利用变量将这个数据的内存地址保......
  • MongoDB入门
    目录1.MongoDB简介与特点1.1.NoSQL数据库的概念与分类1.2.MongoDB的特点与优势1.3.为什么选择MongoDB?2.MongoDB安装与配置2.1.下载与安装MongoDB2.2.连接MongoDB数据库并进行基本操作3.MongoDB数据建模3.1.MongoDB的文档模型3.2.集合与文档的概念3.3.如......
  • django中分页器的使用方法(初、高级版本)
    效果图:方法如下:1.简单版(较繁琐但是直观):1.1定义数据库模型(models.py)中添加表classProductSample(models.Model):#示例商品表id=models.AutoField(db_column='ID',primary_key=True)#Fieldnamemadelowercase.item_id=models.CharField(verbose......
  • [GPT] swoole的协程和golang的协程有什么区别,哪个更好
    Swoole的协程和Golang(Go语言)的协程(Goroutine)在概念上都是为了实现轻量级的并发编程,但它们在具体实现、使用方式和性能特点上有所不同:实现原理:Golang协程(Goroutine):Go语言从语言层面内置了对协程的支持。Goroutine是由Go运行时系统管理的轻量级线程,它基于M:N调度模型......
  • Ubuntu部署Maxkey单点登录认证系统
    1:基础环境ubuntu-23.10-live-server-amd64.isoDockerversion24.0.5,build24.0.5-0ubuntu1MaxKey-v4.0.2-GA2:Git克隆远程仓库到本地gitclonehttps://gitee.com/dromara/MaxKey.git3:安装MaxKey3-1:进入/root/MaxKey/docker目录cd/root/MaxKey/docker3-2:查看/root......
  • ubuntu 搭建Samba服务
    1.sudoapt-getinstallsamba2.sudocp/etc/samba/smb.conf/etc/samba/smb.conf.bak3.sudovi/etc/samba/smb.conf在smb.conf的文件最后加入以下配置并保存,然后退出[work] #ubuntu下的共享目录名称comment=sambahomedirectorypath=/home/book/ #共享目......
  • golang使用redis锁(避免误解锁/死锁/过期引起并发):go-redis, redigo
    【go-redis】简单实现方式,不会死锁/误解锁packagemainimport("context""fmt""sync""time"redis2"github.com/redis/go-redis/v9")varmutexsync.Mutex//redis加锁sec:锁定秒数(避免死锁),value锁唯一值(避免误解......
  • go+gin webscoket 怎么实现心跳
    在Go+Gin中实现WebSocket的心跳,你需要一个WebSocket库,如gorilla/websocket。下面的例子展示了如何实现心跳机制:packagemainimport("net/http""time""github.com/gin-gonic/gin""github.com/gorilla/websocket")//升级器,用于将HTTP连接升......