【mac切换go不同版本】

news/2024/6/18 3:12:10 标签: macos, golang

1.需求是:mac本机想要同时拥有几个版本的go,并可以方便切换
第一种brew link切换失败,手动切换成功
第二种gvm方法失败
第三种docker成功

(别看前面啰里八嗦,我只是记录一下,请直接跳到第三个)

第一种brew(内含手动切换)

1.我借鉴了下面链接的方法,尝试了半天用brew ublink,brew link 不管用
https://blog.csdn.net/weixin_45413603/article/details/125999543
找了半天资料,看go env应该是配置文件都没有更新,不太理解brew link的原理,想着看能不能手动切换一下。
排查思路
如果还没有成功可以用which go 看一下go的执行文件,
2.(手动切换前提,你得有2个版本的go)
进入配置文件,配置好下面几个
export PATH=/usr/local/go/bin:$PATH(go的bin下)
export GOROOT=/usr/local/go(go的位置)
export GOPATH=/Users/test/goproject(go项目位置)
export GOBIN=/Users/test/goproject/bin(go项目位置的bin下)
刷新配置文件
source ~/.bash_profile

go版本切换成功。好家伙每次都要配置这个,直接放弃brew link和手动切换。

第二种安装gvm工具,

参考链接:https://mp.weixin.qq.com/s?__biz=MzAxMTA4Njc0OQ==&mid=2651453258&idx=1&sn=5830d289eec61d990ce05160133156b2&chksm=80bb29b8b7cca0aec1788eb4fe795f8ee009b22038f2687d7d1b96085d95b552995dcfb02e21&scene=27
人讲的是真详细啊,我是真装不上,菜哭了,有安装成功的可以教教我,我直接放弃。

第三种是别人和我说用docker安装多方便,下面是成功步骤,真好使

1.下载golang
docker pull golang/golang:指定版本

2.先运行(注意-v后面需要挂载的是 本机go项目存放的位置:容器存放项目的位置)(容器存放的项目需要放在/go/src/下面,只有项目需要放在这个位置,其他的go脚本可以放在其他位置)
docker run -itd -p 127.0.0.1:8888:8888 -v /本机位置/文件夹:/go/src/文件夹 --name golang1.20.5 golang-local 镜像名:Tag

3.进入容器
docker exec -it 容器名/容器id /bin/bash

4.配置golang环境变量
go env -w GO111MODULE=on
go env -w GOPROXY=“https://goproxy.cn”
go env -w GOPATH="/go

5.配置结束可以查看一下go env

6.配置成功后,可以在本机文件夹下先测试一个main.go

package main
 
import (
    "fmt"
)
 
func main() {
    fmt.Println("Hello Word")

}

7.在容器内执行go run main.go

输出Hello Word ,代表安装成功

8.然后在本机文件夹下测试项目,用的是gin框架
mian.go

package main

import "github.com/gin-gonic/gin"

func main() {
    r := gin.Default()

    r.GET("/test", func(c *gin.Context) {
        c.JSON(200, gin.H{
            "message": "test",
        })
    })
    r.Run(":8888")
}

9.在容器内先执行go mod init创建go.mod文件,

10.后安装依赖go mod tidy

11.安装成功后执行go run main.go
访问成功
在这里插入图片描述


http://www.niftyadmin.cn/n/1004871.html

相关文章

语音识别模型whisper的参数说明

一、whisper简介: Whisper是一种通用的语音识别模型。它是在各种音频的大型数据集上训练的,也是一个多任务模型,可以执行多语言语音识别、语音翻译和语言识别。 二、whisper的参数 1、-h, --help 查看whisper的参数 2、--model {tiny.en…

解决IDEA连接数据库后,xml中写SQL语句不提醒数据库表字段问题

有时候我们新建了一个项目,或者新建了一个工程,明明为此项目或者工程连接了数据库,并且一切正确,但是在xml中书写SQL语句就是不提示数据库表中的相关字段,无论是表名也好,还是字段名也好,通通不…

Python获取某品牌加盟数据采集实现可视化数据分析

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 开发环境 : python 3.8 运行代码 pycharm 2022.3 辅助敲代码 jupyter 数据分析使用软件 模块使用 : requests 数据请求模块 需要安装 parsel 数据解析模块 csv pandas pyecharts 第三方模块安装&#xf…

Springboot 定时任务,分布式下幂等性如何解决

一、概述: 在分布式环境下,定时任务的幂等性问题需要考虑多个节点之间的数据一致性和事务处理。 一种解决方法是使用分布式锁来保证同一时间只有一个节点能够执行该任务。具体实现可以使用Redis或Zookeeper等分布式协调工具提供的分布式锁功能。 另一…

目前比较常用的Java操作文档工具库

目前比较常用的Java操作文档工具库有以下几个: Apache POI:Apache POI是一个开源的Java API,用于处理Microsoft Office格式的文件,如Word、Excel和PowerPoint。它提供了丰富的功能,可以读取、写入和操作这些文件。学习…

使用 Maya Mari 设计 3D 波斯风格道具(p1)

今天瑞云渲染小编给大家带来了Simin Farrokh Ahmadi 分享的Persian Afternoon 项目过程,解释了 Maya 和 Mari 中的建模、纹理和照明过程。 介绍 我的名字是西敏-法罗赫-艾哈迈迪,人们都叫我辛巴 在我十几岁的时候,我就意识到我喜欢艺术和创造…

Flink消费kafka出现空指针异常

文章目录 出现场景:表现:问题:解决: tombstone : Kafka中提供了一个墓碑消息(tombstone)的概念,如果一条消息的key不为null,但是其value为null,那么此消息就是墓碑消息. …

lesson 8下 Zigbee单播通信理论相关概念原理(端点、簇)

目录 Zigbee单播通信理论相关概念原理 端点(Endpoint) 簇(ClusterID) 通信数据帧抓包分析 接收过程中的端点和簇(接收模块) 接收过程中的端点 接收过程中的簇 发送过程中的端点和簇(发送…