在Linux中开发时,将开发环境与系统隔离的标准方法是什么?例如,当我在系统已经使用的应用程序或包上工作时。我知道我可以使用虚拟机。Linux容器也可以使用吗?在虚拟化和容器之前,这种隔离是如何执行的?'chroot‘就是这个工具吗?我正在做C和C++开发。
发布于 2015-04-19 03:57:33
没有真正的整体标准,但根据技术堆栈的不同,或多或少有一些标准方法。例如,virtualenv在python中几乎无处不在。Node至少有两个流行的选项。
许多人使用虚拟机,特别是与vagrant (或docker和docker-compose用于更轻量级的解决方案)之类的工具一起使用。
我的理解是,就所需的工具而言,c和c++是相当轻量级的。参见Is there any virtualenv like tool for c++ out there?。但是,如果您包含操作系统级别的依赖项,如DB驱动程序等,那么您可能需要一些东西来处理不同项目的不同环境。
使用一些虚拟机技术或者docker + docker-compose来研究一下流浪汉。
发布于 2015-11-25 06:50:00
红帽通过其Developer Toolset (DTS)提供较新的GCC版本(例如5.2)。这些较新的GCC版本与系统工具链一起运行,所以当它安装在文件系统的另一部分时,您不会把事情搞砸。
发布于 2015-11-25 23:26:43
Linux容器尽可能接近Linux上的标准隔离环境,无论是为了开发还是其他目的。您可以找到大量的开发映像,例如基于您喜欢的发行版的these GCC Docker images或create one yourself,并包含所需的所有构建工具和依赖项。
Vagrant是另一个有助于管理构建环境的有用工具,但如果您在多个平台上使用VM,则它最有用。如果您只打算使用Linux容器,那么您可能不需要Vagrant。
https://stackoverflow.com/questions/29721974
复制相似问题