The Go Programming Language
› http://golang.org/
› Go Playground
Go Projects
› Revel Web Framework
junwind

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

  •  
  •   junwind · Mar 4, 2025 · 7098 views
    This topic created in 619 days ago, the information mentioned may be changed or developed.

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

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

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

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

    你在墙内就再加两句
    go env -w GO111MODULE=on
    go env -w GOPROXY=https://goproxy.cn,direct
    wentx
    wentx
    Mar 4, 2025
    19
    brew install go

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

    容器内 go mod init 就可以开始写代码了。
    ziyeziye
    ziyeziye
    Mar 4, 2025
    30
    配置 gopath 是自己确定包文件存放在哪个盘的,不然都存 c 盘去了,当然用 linux 和 mac 就不用管了,安装包下了直接就开写
    seers
    seers
    Mar 4, 2025 via Android
    31
    自己写 init ,导入就 tidy 下
    Ipsum
    Ipsum
    Mar 4, 2025
    32
    Go.dev 解压了,配置 path 不就用了?
    zxjxzj9
    zxjxzj9
    Mar 4, 2025
    33
    win 下才需要,mac 和 linux 都是直接装 装完 go mod init go mod tidy 就搞定
    xpzouying
    xpzouying
    Mar 4, 2025
    34
    现在的 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
    iyaozhen
    Mar 4, 2025
    35
    看到说 gopath 赶紧❌掉,基本上都是老掉牙的教程

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

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

    多版本并存也不需要 gvm ,直接 go install +go download ,参考 https://go.dev/doc/manage-install
    me1onsoda
    me1onsoda
    Mar 4, 2025
    41
    现在不是 go mod 吗
    datadump
    datadump
    PRO
    Mar 4, 2025
    42
    mac: brew install go
    windows: winget install --id GoLang.Go
    linux: apt install golang-go
    jtsang
    jtsang
    Mar 5, 2025
    44
    mise 一把梭
    hpu423
    hpu423
    Mar 5, 2025
    45
    打开 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
    lvlongxiang199
    Mar 5, 2025
    46
    同意 @NessajCN 的观点. OP 估计是个初学者, 别整那么多花里胡哨的, 先装上最新的 golang 就行, gvm 就算了吧, 估计也用不到多个 golang 版本
    Nazz
    Nazz
    Mar 5, 2025
    47
    首先安装或者直接解压编译器, 然后配置 GOROOT, GOPATH, GOPROXY, 把 $GOROOT/bin 和 $GOPATH/bin 加入 $PATH
    fenghuang
    fenghuang
    Mar 5, 2025 via Android
    48
    不设置 gopath ,go mod 下载的依赖放在哪里?
    RealYourDad
    RealYourDad
    Mar 5, 2025
    49
    @junwind 恭喜你获得了上古秘籍,如今武林中人已经几乎无人再会此绝技,待你习成即可称霸武林!
    YanSeven
    YanSeven
    Mar 30, 2025
    50
    据我目前的了解,GOPATH 还是可以配置的,这个可以的意思就是“非必须”。如果不配置 GOPATH ,go mod init 以及 go install 下来的依赖或者可执行文件都会存储到$HOME/go/ 这个目录下面,在 Mac 和 Linux 你会在的 home 目录看到一个 go 的目录。Win 不知道,没有在 win 环境下搞过。
    YanSeven
    YanSeven
    Mar 30, 2025
    51
    https://go.dev/wiki/GOPATH 。看下这个你就知道了,虽然说无脑不用管,但是还是可以看下这个环境变量到底起什么作用,以及缓存到底去哪儿看,心里有数。
    YanSeven
    YanSeven
    Mar 30, 2025
    52
    @SGL https://pkg.go.dev/cmd/go#hdr-GOPATH_environment_variable
    还有这里的说明。 二手博客资料入门后,官方文档永远是最好的教程。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   937 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 158ms · UTC 21:58 · PVG 05:58 · LAX 13:58 · JFK 16:58
    ♥ Do have faith in what you're doing.