当前位置: 首页 > 网络应用技术

如何在计算机上安装和使用多个版本?

时间:2023-03-08 15:31:46 网络应用技术

  实际开发中将暴露不同的开源项目,这些项目可能由不同的团队开发,并且所使用的GO版本不同。

  以我为例,我最近研究了Kubevirt(一个可以在K8S下管理虚拟机的开源项目)。为了达到自己的需求,需要进行次要发展。

  通过Go.mod,Kubevirt是使用GO 1.13开发的,同时,为了使用Kubevirt的虚拟函数中的LVM存储方法,我们引入了Ali开发的LVM-CSI插件。同样,此插件已经具有Beenthe实施功能与我们的期望有所不同,因此必须进行次要开发。查看GO.mod发现LVM-CSI是在较旧版本下开发的,即GO 1.12。

  同时,我很久以前就已经在机器上安装了GO 1.14版本,并且已经开发了。

  问题出现了,如何同时在我的机器上制作这么多版本的Golang,并且不会相互冲突?

  如果不同版本的冲突,只需将它们安装在不同的目录中即可。

  首先下载安装程序包的两个版本

  然后将其解压缩到其他目录

  在同一台计算机中安装多个版本的Golang,您需要注意

  当您在环境中有多个GO时,当您使用命令时,系统如何知道要使用哪个版本?

  系统不知道,因此您需要为不同版本的GO提供不同的名称

  这样,它就不会感到困惑

  在不同的进入入口的情况下,相应的环境变量也需要变量。例如,Goroot,它不会在使用哪个版本的GO时自动切换。请参阅下面输出的值。

  因此,这种切换不同的环境变量可以自己完成

  也要注意

  知道这些要点后,您可以自己实施切换方案。

  我认为解决方案是您可以编写一个修改环境变量的脚本

  下次使用GO 1.12时,您可以使用以下命令来修改环境变量

  GO 1.13也是一样的,不敢重复它。

  实施的效果如下

  在这一点上,您应该感觉到它。每次切换时,都必须手动来源,仍然有些麻烦。

  实际上,我也有更好的方法。这种解决方案无法更改Go入口的名称,甚至没有必要来源。

  只需执行以下两个条件命令(每个版本中有两个,两个版本是四个)

  如果您来执行G12时,您将自动修改GO12的环境变量,而GO13将自动修改GO13的环境变量,而不会影响默认GO行为。

  当然,我只更改了Goroot的环境变量。如果不同的GO版本中有不同的位置,则可以继续向GO12或GO13添加相应的外壳代码。