V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
wispmagical
V2EX  ›  Go 编程语言

Go 环境版本管理用哪个- -有点疑惑

  •  
  •   wispmagical · 1 天前 · 1653 次点击

    我现在了解下来有一堆版本管理

    1. GVM
    2. GOENV
    3. asdf

    我问 GPT ,说 GVM 已经淘汰了。。。 真的是这样嘛- -有没有 go 大佬来推荐和讲解一下。。。有点迷

    31 条回复    2025-11-14 11:57:55 +08:00
    justseemore
        1
    justseemore  
       1 天前
    基本上可以做到向上兼容, 用啥版本管理啊.
    wispmagical
        2
    wispmagical  
    OP
       1 天前
    开发环境。。。我还是想保持统一的- -
    @justseemore
    looplj
        3
    looplj  
       1 天前
    我用 goup
    Nanosk
        4
    Nanosk  
       1 天前
    goup 环境变量指到~/.go/current 就行
    guagecool
        5
    guagecool  
       1 天前
    skywalker1014
        6
    skywalker1014  
       1 天前
    我还在用 gvm ,感觉还行吧
    Seck
        7
    Seck  
       1 天前
    不重要 🤣
    个人观点(有啥用啥)
    snxq1995
        8
    snxq1995  
       1 天前   ❤️ 1
    asdf 无脑什么语言都一把唆~
    mwjz
        9
    mwjz  
       1 天前
    asdf +1 虽然我是前端开发。
    cccvno1
        10
    cccvno1  
       1 天前
    mise
    vultr
        11
    vultr  
       1 天前
    go 不是默认就支持不同版本了吗?
    ratazzi
        12
    ratazzi  
       1 天前
    mise
    hailaz
        13
    hailaz  
       1 天前
    还有个叫 vmr ,但是 vscode 自带版本管理了不需要了吧
    https://github.com/gvcgo/version-manager/blob/main/docs/readmeCN.md
    SethShi
        14
    SethShi  
       1 天前
    在用 vfox
    ryan961
        15
    ryan961  
       1 天前
    在用 asdf ,配置起来还是有点麻烦的。感觉可以直接使用 GoLand 中自带的 go sdk 就够用了
    Reficul
        16
    Reficul  
       1 天前
    现在 golang 高版本的 gomod 里可以申明 toolchain 版本。

    当然,我现在参与的项目的版本还不支持这个功能。升级是不可能升级的,这辈子都不可能升级的。
    THESDZ
        17
    THESDZ  
       1 天前
    vfox
    THESDZ
        18
    THESDZ  
       1 天前
    treblex
        19
    treblex  
       1 天前 via iPhone
    go download 以后有一个别名可执行文件
    我没切换过
    kiritoxkiriko
        20
    kiritoxkiriko  
    PRO
       1 天前
    g
    gongym
        21
    gongym  
       1 天前
    go 不用版本管理吧
    不是兼容的吗,无脑用最新的就行了
    geminikingfall
        22
    geminikingfall  
       1 天前
    话说不是跟生产环境搞成一样的不就完事了吗?理论上不会有问题吧。
    Jinvic
        23
    Jinvic  
       1 天前
    vfox +1
    用一个版本管理器管理所有语言挺方便的。
    Binwalker
        24
    Binwalker  
       1 天前
    mise 秒了,所有都用这个
    craftsmanship
        25
    craftsmanship  
       1 天前 via Android
    mise
    Reficul
        26
    Reficul  
       1 天前   ❤️ 2
    @gongym 兼容说是兼容,可这不是理想情况吗。

    按照 Hyrum’s Law ,实际上你已经依赖了 Go 内部的非公开实现,而你永远不知道你的同事和你依赖的库有什么骚操作。这样的例子其实有很多:
    1. 依赖反射和 unsafe ,这些库不保证行为兼容。unsafe 就不说了。reflect 更隐蔽,比如`reflect.DeepEqual` 的行为变过。你用高版本的 Go 去编译老版本不带修复的 K8s ,你会发现一堆 CR 提交不上去。
    2. 依赖黑魔法注解,一堆库被 rcs 在 Go 源码里拉耻辱柱群,这些库多半你用过:containerd 、protobuf 、sonic ;有一些改了退群了,有一些一直还在。
    3. 你依赖了 golang.org/x 下面的库,这玩意的版本很玄学,兼容性就更别说了。
    Cusox
        27
    Cusox  
       1 天前
    mise
    EricXuu
        28
    EricXuu  
       1 天前 via Android
    之前好几个语言版本的管理器,全换 mise 了,好用
    jqtmviyu
        29
    jqtmviyu  
       1 天前
    mise, 因为还可以管理 node, python, uv 等.
    rarpainting
        30
    rarpainting  
       17 小时 16 分钟前
    @Reficul 还以为你拿 cgo 举例,如果是这玩意的话的确一辈子都没有升级的希望了
    但是你说的这些只是验证时间长度和方案选取的区别,另外升的越晚技术债积的越多
    Reficul
        31
    Reficul  
       16 小时 50 分钟前
    @rarpainting

    是咯,越老越复杂的严肃项目,就越不敢动。。。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   881 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 20:48 · PVG 04:48 · LAX 12:48 · JFK 15:48
    ♥ Do have faith in what you're doing.