voidint/g

Win11 GOROOT 环境变量无效

imlinhanchao opened this issue · 8 comments

Describe the bug/缺陷描述
按照 readme 方式手动安装:

$env:GOROOT="C:\env\g\go"
$env:Path=-join("C:\env\g\bin;", "$env:GOROOT\bin;", "$env:Path")

执行 g install 1.20.8 最终生成的 go link 在 $HOME\.g\go 而非 C:\env\g\go

To Reproduce/缺陷复现步骤
同问题描述

Expected behavior/期望行为
生成 link 在 C:\env\g\go

Screenshots/实际运行结果截图
image

Environments (please complete the following information)/运行环境:

  • OS:Windows 11 22H2

  • g --version

    g version 1.5.2
    build: 2023-09-05T21:47:28+08:00
    branch: release/1.5.2
    commit: dd615e5d

你想要切换家目录吧?那应该是使用G_HOME来控制。

不是,是要修改go的链接目录

默认的g家目录是在$HOME\.g,而你希望换成C:\env\g,是这样吧?

不是,是默认的执行 install 或 use ,go 对应版本会 link 到 $HOME\.g\go,而我希望 link 到 C:\env\g\go

这就是自定义g家目录的需求。你想要把软连接切换到其他目录,就得切换家目录(所有g相关的文件都在家目录下),可以看看FAQ中的第三点。首先设置G_EXPERIMENTAL=true,其次设置G_HOME=C:\env\g

这就是自定义g家目录的需求。你想要把软连接切换到其他目录,就得切换家目录(所有g相关的文件都在家目录下),可以看看FAQ中的第三点。首先设置G_EXPERIMENTAL=true,其次设置G_HOME=C:\env\g

这个后面有试过,也无效,感觉是获取不到环境变量。

不会无效,这功能不复杂,主要通过环境变量控制,大概率是你环境中设置的环境变量没设置对或者设置了没生效,或者比如你用了wsl,那么Windows和Linux下就是两套环境变量,等等的原因。我建议排查下环境变量,确保当前shell下都起效了。

ok,修改为指令为 $env:G_EXPERIMENTAL="true" 可以切换了,我之前是写的 $env:G_EXPERIMENTAL=true