开发环境沙箱

时间:2015-04-18 19:43:47

标签: c++ c virtual-machine lxc linux-containers

在Linux中开发时,将开发环境与系统隔离的标准方法是什么?例如,当我处理系统已经使用的应用程序或包时。我知道我可以使用虚拟机。 Linux容器也可以使用吗?如何在虚拟化和容器之前执行此隔离?是'chroot'这个工具?我正在进行C和C ++开发。

3 个答案:

答案 0 :(得分:1)

没有真正的整体标准,但根据技术堆栈,有或多或少的标准方法。例如,virtualenv在python中几乎无处不在。 Node至少有两个流行的选项。

许多人使用虚拟机,特别是与流浪者(或码头工人和码头工具组成更轻量级解决方案)等工具结合使用。

我的理解是c和c ++在他们需要的工具方面非常轻量级。见Is there any virtualenv like tool for c++ out there?。但是如果你包括os级依赖项,比如DB驱动程序等,你可能需要处理不同项目的不同环境。

查看vagrant以及一些虚拟机技术或docker plus docker-compose。

答案 1 :(得分:1)

Red Hat通过其Developer Toolset(DTS)提供更新的GCC版本(例如5.2)。这些较新的GCC版本与系统工具链一起运行,因此您不会将其安装在文件系统的另一部分中。这可能足以满足您的要求,但如果您还想要容器隔离,还可以通过Red Hat容器开发工具包(Docker image version of the DTS)使用CDK。< / p>

答案 2 :(得分:0)

Linux容器与Linux上的标准隔离环境尽可能接近,无论是出于开发还是其他目的。您可以根据自己喜欢的发行版找到大量的开发图像,例如these GCC Docker imagescreate one yourself,并包含您需要的所有构建工具和依赖项。

Vagrant是另一个有用的工具,有助于管理构建环境,但如果您使用多个平台的VM,它最有用。如果您只打算使用Linux容器,则可能不需要Vagrant。