Go 环境版本管理用哪个- -有点疑惑 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
wispmagical
V2EX    Go 编程语言

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

  •  
  •   wispmagical 3 天前 1756 次点击

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

    1. GVM
    2. GOENV
    3. asdf

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

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

    当然,我现在参与的项目的版本还不支持这个功能。升级是不可能升级的,这辈子都不可能升级的。
    THESDZ
        17
    THESDZ  
       3 天前
    vfox
    THESDZ
        18
    THESDZ  
       3 天前
    treblex
        19
    treblex  
       3 天前 via iPhone
    go download 以后有一个别名可执行文件
    我没切换过
    kiritoxkiriko
        20
    kiritoxkiriko  
    PRO
       3 天前
    g
    gongym
        21
    gongym  
       3 天前
    go 不用版本管理吧
    不是兼容的吗,无脑用最新的就行了
    geminikingfall
        22
    geminikingfall  
       3 天前
    话说不是跟生产环境搞成一样的不就完事了吗?理论上不会有问题吧。
    Jinvic
        23
    Jinvic  
       3 天前
    vfox +1
    用一个版本管理器管理所有语言挺方便的。
    Binwalker
        24
    Binwalker  
       3 天前
    mise 秒了,所有都用这个
    craftsmanship
        25
    craftsmanship  
       3 天前 via Android
    mise
    Reficul
        26
    Reficul  
       3 天前   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  
       3 天前
    mise
    EricXuu
        28
    EricXuu  
       3 天前 via Android
    之前好几个语言版本的管理器,全换 mise 了,好用
    jqtmviyu
        29
    jqtmviyu  
       3 天前
    mise, 因为还可以管理 node, python, uv 等.
    rarpainting
        30
    rarpainting  
       2 天前
    @Reficul 还以为你拿 cgo 举例,如果是这玩意的话的确一辈子都没有升级的希望了
    但是你说的这些只是验证时间长度和方案选取的区别,另外升的越晚技术债积的越多
    Reficul
        31
    Reficul  
       2 天前
    @rarpainting

    是咯,越老越复杂的严肃项目,就越不敢动。。。
    lysShub
        32
    lysShub  
       10 小时 35 分钟前
    go 向下兼容的,开发业务不需要版本管理,直接安最新版
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2332 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 15:47 PVG 23:47 LAX 07:47 JFK 10:47
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86