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

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

  •  
  •   junwind · 7 小时 34 分钟前 · 2680 次点击

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

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

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

    一般用最新版 go 就行,除非你依赖了一些奇奇怪怪的库
    NessajCN
        17
    NessajCN  
       6 小时 38 分钟前
    sudo pacman -S go 呗, 还要咋样

    你在墙内就再加两句
    go env -w GO111MODULE=on
    go env -w GOPROXY=https://goproxy.cn,direct
    THESDZ
        18
    THESDZ  
       6 小时 38 分钟前
    wentx
        19
    wentx  
       6 小时 28 分钟前
    brew install go

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

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

    最简单的就是打开 GoLand ,直接用
    ota
        36
    ota  
       3 小时 22 分钟前
    conda
    vincentWdp
        37
    vincentWdp  
       3 小时 10 分钟前
    FrankAdler
        38
    FrankAdler  
       2 小时 25 分钟前
    1. 官方下载 go 安装包,解压到喜欢的路径,然后把 bin 目录加入到 PATH 里,保证能不加路径直接执行`go`,

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

    多版本并存也不需要 gvm ,直接 go install +go download ,参考 https://go.dev/doc/manage-install
    me1onsoda
        41
    me1onsoda  
       25 分钟前
    现在不是 go mod 吗
    wjx0912
        42
    wjx0912  
       14 分钟前
    mac: brew install go
    windows: winget install --id GoLang.Go
    linux: apt install golang-go
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5334 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 09:34 · PVG 17:34 · LAX 01:34 · JFK 04:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.