go多版本问题

以下都是在 mac (其他系统原理都是一样的)下的描述:

安装 go 的 sdk 后,一般 go 的文件夹会放在/usr/local/go 目录中,后面需要升级或安装特定版本时只需要下载安装包然后覆盖即可;

最近遇到的问题:dockerfile 中构建镜像的 go 版本低于项目使用的 go 版本而无法打包;

解决方式,将/usr/local/go 目录中都 go 文件夹改名为 go+版本号,例如“go_1.22.4” 目的是为了为以后更改版本更方便,然后再装新的版本,就又会在/usr/local/go 中创建新的 go 目录;需要升级时再把“go_1.22.4”改回 go 另外一个重命名即可。

原理:本质上编译器在查找 go 的 sdk 是,会有一个类似 Windows 上系统 path (系统环境变量)的地方,指定了 go sdk 的位置,只要能找到对应的文件就能执行相应的 sdk;

换个思路是不是只要将系统环境变量指定 go sdk 的路径创建一个软连接到包含 go sdk 的文件夹就可以了,也就是可以快速的切换版本;

优化方法,写一个脚本。可以通过简单的命令让系统环境变量,灵活的指定不同的 go sdk 目录就可以切换 go 的版本。当然有一些控制版本的工具,可以实现奈何国内的网络拉镜像实在是太慢了,有时候魔法也不好使。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容