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

目前 golang 环境的正确搭建姿势是什么?

  •  
  •   junwind · 2025 年 3 月 4 日 · 6031 次点击
    这是一个创建于 320 天前的主题,其中的信息可能已经有所发展或是发生改变。

    为什么我看到还有很多教程都是基于 gopath 的, 一上来就是配置 goroot ,gopath ,创建固定的目录 pkg ,src ,。。。

    大家一般的 go 开发环境怎么搭建呢。项目中的依赖是怎么处理呢?

    52 条回复    2025-03-30 13:55:55 +08:00
    EricYuan1
        1
    EricYuan1  
       2025 年 3 月 4 日
    cy
    securityCoding
        2
    securityCoding  
       2025 年 3 月 4 日
    nickxudotme
        3
    nickxudotme  
       2025 年 3 月 4 日 via iPhone   ❤️ 1
    靠 GoLand 自己管理,本地不用手动装,直接 GoLand 里面下
    cyrivlclth
        4
    cyrivlclth  
       2025 年 3 月 4 日   ❤️ 1
    你的教程是不是太老了?一般 goland ,没有 goland 也是装好 go 之后直接 mkdir 一个文件夹,然后这个文件夹就是你的项目路径了,go mod init 一下不就行了。。。
    ym1ng
        5
    ym1ng  
       2025 年 3 月 4 日
    go mod
    SethShi
        6
    SethShi  
       2025 年 3 月 4 日   ❤️ 2
    1. 安装 golang (放入环境变量)
    2. 用 gomod, 抛弃所有 goroot, gopath, 已经没人用了(pkg, src)
    ninjashixuan
        7
    ninjashixuan  
       2025 年 3 月 4 日
    go path 怕不是好多年前的教程了。
    junwind
        8
    junwind  
    OP
       2025 年 3 月 4 日
    @seth19960929 谢谢,可能是有些教程比较老吧,总是要扯什么 gopath 要配置,要按格式创建目录。
    clino
        9
    clino  
       2025 年 3 月 4 日
    有个 goenv ,和 Python 的 pyenv 类似,可以用这个切换不同的 go 版本
    Trim21
        10
    Trim21  
       2025 年 3 月 4 日   ❤️ 1
    按照我的理解,golang 的想法是开发者不要自己管理工具链的版本,随便装一个足够新的 go (>= 1.21 ),然后让 go 自己根据对应项目的 go.mod 下载使用对应版本的工具链。
    linuxsuren
        11
    linuxsuren  
       2025 年 3 月 4 日
    Goland 安装后啥都不用管,点点点。参与开源项目还能拿到免费的 License
    https://github.com/LinuxSuRen/api-testing
    pike0002
        12
    pike0002  
       2025 年 3 月 4 日
    建议可以的话:
    1. 装 gvm ,便于多版本 go 管理,对于一些特性测试或者多项目的情况比较好。尤其适合要在不同版本间测试同一个特性不同版本间表现时,比如 go 的 for-range 变更。https://www.pixelstech.net/article/1732171804-fix-for-range-issue-again-in-go-1-22?lang=chinese
    2. 项目建在哪不是很重要,建议项目用 go mod 管理,这样的话依赖管理也比较好搞。
    pkoukk
        13
    pkoukk  
       2025 年 3 月 4 日
    唯一指定包管理模式:go mod
    (其实极少部分情况会用 go vendor)
    8355
        14
    8355  
       2025 年 3 月 4 日
    @junwind 那都是 2015 年前后的事了。。。框架还是教 beego 是吧
    IDAEngine
        15
    IDAEngine  
       2025 年 3 月 4 日
    golang 自带 go mod
    tairan2006
        16
    tairan2006  
       2025 年 3 月 4 日
    go mod init

    一般用最新版 go 就行,除非你依赖了一些奇奇怪怪的库
    NessajCN
        17
    NessajCN  
       2025 年 3 月 4 日   ❤️ 1
    sudo pacman -S go 呗, 还要咋样

    你在墙内就再加两句
    go env -w GO111MODULE=on
    go env -w GOPROXY=https://goproxy.cn,direct
    THESDZ
        18
    THESDZ  
       2025 年 3 月 4 日   ❤️ 1
    wentx
        19
    wentx  
       2025 年 3 月 4 日
    brew install go

    mkdir myfxckproject && cd myfxckproject
    go mod init ...
    ScepterZ
        20
    ScepterZ  
       2025 年 3 月 4 日
    安装之后 go env -w 那么几条就行了
    主要是 goproxy 还有 1.21 之后的 toolchain ,1.21 之后也不需要上边说的 gvm 之类的了
    geekzhu
        21
    geekzhu  
       2025 年 3 月 4 日
    Felldeadbird
        22
    Felldeadbird  
       2025 年 3 月 4 日
    win 下我是这样。linux 随便一个目录。
    fffq
        23
    fffq  
       2025 年 3 月 4 日
    只能说教程太老,没必要看了
    jackmod
        24
    jackmod  
       2025 年 3 月 4 日
    不使用 GPU 的话直接用 docker 简单粗暴
    windows 下的 docker 没法用内存来扩展显存
    zfabl
        25
    zfabl  
       2025 年 3 月 4 日
    推荐[mise]( https://github.com/jdx/mise) , 可以管理很多开发工具的版本
    ziyeziye
        26
    ziyeziye  
       2025 年 3 月 4 日
    直接下载 go 安装包,用 go mod init 开搞就行了,最多配一个 gopath
    bintianbaihua
        27
    bintianbaihua  
       2025 年 3 月 4 日
    直接 go mod 管理就好了。 安装 go 环境,随便选择一个目录即可。 然后 vscode 安装 go 插件,就可以了。
    hzzhzzdogee
        28
    hzzhzzdogee  
       2025 年 3 月 4 日
    还在 gopath, 19 年 gomod 实验性支持后就再没理会 gopath 这些配置了
    gam2046
        29
    gam2046  
       2025 年 3 月 4 日
    一般是 VS Code + Dev Container ,不同项目也可以比较方便的用不同版本。

    容器内 go mod init 就可以开始写代码了。
    ziyeziye
        30
    ziyeziye  
       2025 年 3 月 4 日
    配置 gopath 是自己确定包文件存放在哪个盘的,不然都存 c 盘去了,当然用 linux 和 mac 就不用管了,安装包下了直接就开写
    seers
        31
    seers  
       2025 年 3 月 4 日 via Android
    自己写 init ,导入就 tidy 下
    Ipsum
        32
    Ipsum  
       2025 年 3 月 4 日
    Go.dev 解压了,配置 path 不就用了?
    zxjxzj9
        33
    zxjxzj9  
       2025 年 3 月 4 日
    win 下才需要,mac 和 linux 都是直接装 装完 go mod init go mod tidy 就搞定
    xpzouying
        34
    xpzouying  
       2025 年 3 月 4 日
    现在的 Golang 不需要配置 GOPATH 之类的环境变量,
    按照官方教程下载 Golang 即可,Linux/Mac 都是下载压缩包解压缩到 /usr/local/go 中,然后把 /usr/local/go/bin 加入到 PATH 环境变量即可。

    推荐一个自己写的常用 HTTP Server 的模板,可以按照这个快速创建一个 Go 的 HTTP Server (基于 Gin ),
    https://github.com/xpzouying/go-template
    iyaozhen
        35
    iyaozhen  
       2025 年 3 月 4 日
    看到说 gopath 赶紧❌掉,基本上都是老掉牙的教程

    最简单的就是打开 GoLand ,直接用
    ota
        36
    ota  
       2025 年 3 月 4 日
    conda
    vincentWdp
        37
    vincentWdp  
       2025 年 3 月 4 日
    FrankAdler
        38
    FrankAdler  
       2025 年 3 月 4 日
    1. 官方下载 go 安装包,解压到喜欢的路径,然后把 bin 目录加入到 PATH 里,保证能不加路径直接执行`go`,

    2. 执行 go env ,根据需要调整其中的几个变量,一般在 bashrc 或者 profile 里自定下比如 GOPATH 、GOPRIVATE 、GOPRIVATE 、GOCACHE 、GOPROXY 这几个就够了
    dimtutac
        39
    dimtutac  
       2025 年 3 月 4 日
    devcontainer
    noyidoit
        40
    noyidoit  
       2025 年 3 月 4 日
    不需要配置,直接 go mod init/tidy

    多版本并存也不需要 gvm ,直接 go install +go download ,参考 https://go.dev/doc/manage-install
    me1onsoda
        41
    me1onsoda  
       2025 年 3 月 4 日
    现在不是 go mod 吗
    datadump
        42
    datadump  
       2025 年 3 月 4 日
    mac: brew install go
    windows: winget install --id GoLang.Go
    linux: apt install golang-go
    Cusox
        43
    Cusox  
       2025 年 3 月 4 日   ❤️ 1
    jtsang
        44
    jtsang  
       2025 年 3 月 5 日
    mise 一把梭
    hpu423
        45
    hpu423  
       2025 年 3 月 5 日
    打开 powershell (管理员权限)执行
    @powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin

    choco install golang
    choco install nodejs
    choco install yarn
    lvlongxiang199
        46
    lvlongxiang199  
       2025 年 3 月 5 日
    同意 @NessajCN 的观点. OP 估计是个初学者, 别整那么多花里胡哨的, 先装上最新的 golang 就行, gvm 就算了吧, 估计也用不到多个 golang 版本
    Nazz
        47
    Nazz  
       2025 年 3 月 5 日
    首先安装或者直接解压编译器, 然后配置 GOROOT, GOPATH, GOPROXY, 把 $GOROOT/bin 和 $GOPATH/bin 加入 $PATH
    fenghuang
        48
    fenghuang  
       2025 年 3 月 5 日 via Android
    不设置 gopath ,go mod 下载的依赖放在哪里?
    RealYourDad
        49
    RealYourDad  
       2025 年 3 月 5 日
    @junwind 恭喜你获得了上古秘籍,如今武林中人已经几乎无人再会此绝技,待你习成即可称霸武林!
    YanSeven
        50
    YanSeven  
       2025 年 3 月 30 日
    据我目前的了解,GOPATH 还是可以配置的,这个可以的意思就是“非必须”。如果不配置 GOPATH ,go mod init 以及 go install 下来的依赖或者可执行文件都会存储到$HOME/go/ 这个目录下面,在 Mac 和 Linux 你会在的 home 目录看到一个 go 的目录。Win 不知道,没有在 win 环境下搞过。
    YanSeven
        51
    YanSeven  
       2025 年 3 月 30 日
    https://go.dev/wiki/GOPATH 。看下这个你就知道了,虽然说无脑不用管,但是还是可以看下这个环境变量到底起什么作用,以及缓存到底去哪儿看,心里有数。
    YanSeven
        52
    YanSeven  
       2025 年 3 月 30 日
    @SGL https://pkg.go.dev/cmd/go#hdr-GOPATH_environment_variable
    还有这里的说明。 二手博客资料入门后,官方文档永远是最好的教程。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2796 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 13:21 · PVG 21:21 · LAX 05:21 · JFK 08:21
    ♥ Do have faith in what you're doing.