同一台机器上构建环境隔离
文章目录
介绍
打包机如果可以同时打包不同的项目,且这些项目有不同的环境依赖时,就会有非常多的麻烦。
- Java 之类的存在环境变量依赖,必须显式地在 PATH 环境变量中指定 Java 目录。
- Android SDK 也出现了不同的版本携带的 tools 不同。
环境
- Windows 7
- Unity 5.3.8f2
- Unity 5.6.6f2
- Unity 2017.4.35f1
- Unity 2018.4.0f1
- Android SDK
- Android Studio 2.x
- Android Studio 3.x
问题
其实解决问题最重要的是要明确问题,将所有的问题都列出来并且分类,以便确定解决方案:
- 依赖版本,即同一个软件需要同时存在不同版本。
- 环境变量,由上一个问题引发的环境变量也会不同。
- 人工操作,有时需要有多个人同时操作打包机。
解决方案
在已知环境与问题后,可以轻松地解决,只需要使用操作系统提供的多用户功能。
依赖版本
大部分软件在安装配置时都是使用的用户配置(将配置放在用户目录内或用户对应的注册表内)。
因此在安装 Unity、Android SDK、Android Studio 等等软件时,都可以安装到用户所在的目录,就像 Chrome 一样。
环境变量
环境变量也可以只修改用户环境变量,而不要动系统变量。
多用户登录
Windows 默认只允许一个用户远程登录,同时有多个用户登录时只会保留一个活跃的会话,可以使用下面的软件破解这个限制,让不同的用户可以同时远程登录。
这个软件用起来真是非常简单,只需要运行就可以,不需要配置。
其他方案
其实用虚拟化也是一个不错的选择,即使用虚拟机安装不同的操作系统,或是轻量级的虚拟工具 Docker。
只是虚拟化的方案性能损失较为严重,而且一般的虚拟机 IO 性能较差。而打包非常依赖 IO 性能,涉及到大量文件的读写,因此暂时排除此方案。
参考资料
文章作者 狂飙
初次发布 2020-06-21 23:47:50 +0800
永久链接 https://networm.me/2020/06/21/build-environment-isolation/