

使用gvm管理多golang版本,但我想使用统一的GOTPAH
source link: https://segmentfault.com/a/1190000019146005?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

使用gvm管理golang版本遇到一个问题,就是我在.zshrc中设置了GOPATH,但是使用gvm切换后GOPATH又被gvm重新设置了,默认是$GVM_ROOT/pkgsets/go1.12.5/global。而我希望切换不同的GOROOT而GOPATH不变,因为我的项目代码都在原来的GOPATH中。
多版本共用一个GOPATH是没有冲突的,1.9的包会下载位置是$GOPATH/src,1.12的包下载位置是$GOPATH/mod。设置export GO111MODULE=on,1.12的项目用了gomod是不依赖GOPTAH的,新老项目放在公司路径下都能正常编译。
下面让我们解决这个问题。
最简单粗暴的方法就是gvm use 1.x之后,source .zshrc一下将$GOPATH设置为原来的。但是这显的很蠢。
第二种方法是gvm提供了修改环境变量的命令,gvm pkgenv,可以修改当前版本go相关的环境变量,注意这个命令只能改当前版本的,比如我现在是1.12,我要改全,还要go use 1.9再改一遍。另外改好了还要使用 go use 1.x --default
将default也改了。看了一下源码,环境变量都在$GVM_ROOT|environments文件夹里,进去把GOPATH批量替换了就行了,记得先备份一份。
第三种方法就是修改gvm use命令,gvm是shell编写的,安装好后各种命令都在$GVM_ROOT/scripts下,use命令对应的文件是$GVM_ROOT/scripts/env,在函数后面加一行export GOPATH=~/gopath。也可以自己写个包裹函数:
export ZGOPATH=~/gopath function gouse() { gvm use $1 export GOPATH=$ZGOPATH }
开始用的第二种方法,后面还是觉得第三种方法最省事,记录一下自己折腾操蛋的GOPATH的过程。go1.11有了go mod之后,心想终于可以抛弃GOPATH了,实际是必须要一个巫妖王(GOPATH),包和项目集中存放挺好。
Recommend
-
263
Spring Boot中使用LDAP来统一管理用户信息
-
38
我们都知道在一些Golang写的程序中,默认会有 version 或 -v 相关的参数来输出软件版本信息,这些版本信息里可能包含软件版本,git中的commit记录,构建时间、构建环境等信息,那么这些信息都是如何在Golang程...
-
13
Windows 下 golang 多版本管理 当前 golang 各个版本还是有些许不兼容,最近遇到 go-micro 框架只能运行在 go 1.13 ~ 1.14 版本,而我Windows 下安装的又是
-
9
注意,以下教程请确认MAVEN版本 >= 3.5.0,尤其使用IDEA自带maven的同学务必确认。 IDEA 2019.02版本与部分新版本maven(>=3.6.2)不兼容,请更新IDEA到最新版。 1 修改父Pom的版本。如下:
-
6
gradle中统一配置版本的小技巧。 – Android开发中文站你的位置:Android开发中文站 > Android开发 >
-
7
如果你是一个 Golang 的用户,那么你大概率会遇到管理和维护 Golang 版本的诉求,如果你恰好同时需要开发调试两个不同版本的项目,在不考虑强制跳版本的情况下,你或许就需要使用“Golang 版本管理工具”来帮助你减轻负担了。 本篇文章将介绍最近几个月,...
-
11
使用 CMake 统一管理并编译 C++/Python/R 算法包在数据分析领域,Python 和 R 都是比较常用的语言。这两种语言在使用上有很多的相似处,也有很多的不同。 一方面,这两个语言对于代码的执行效率都远远不如静态语言(如C++),尤其是循环的效率、矩阵运...
-
10
一直用golang写业务代码,最近改动升级项把common module的version升级的v2,结果尴尬了,于是查了下文档,随手记录下v2.x及以后得版本的使用方法。 golang中module的版本管理分路径和版本号两部分,路径是go.mod中开始module
-
3
使用gvm管理多版本golang ...
-
5
如何统一前端项目的 Node 版本和包管理器?更新日期: 2022-06-29阅读: 13标签: node
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK