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 14 天前 2118 次点击

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

    1. GVM
    2. GOENV
    3. asdf

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

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

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

    是咯,越老越复杂的严肃项目,就越不敢动。。。
    lysShub
        32
    lysShub  
       11 天前
    go 向下兼容的,开发业务不需要版本管理,直接安最新版
    pike0002
        33
    pike0002  
       10 天前
    gvm 问题不大
    liulaomo
        34
    liulaomo  
       1 天前
    liulaomo
        35
    liulaomo  
       1 天前
    @lysShub 并不
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     917 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 20:29 PVG 04:29 LAX 12:29 JFK 15:29
    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