在Linux中开发时,将开发环境与系统隔离的标准方法是什么?例如,当我处理系统已经使用的应用程序或包时。我知道我可以使用虚拟机。 Linux容器也可以使用吗?如何在虚拟化和容器之前执行此隔离?是'chroot'这个工具?我正在进行C和C ++开发。
答案 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 images或create one yourself,并包含您需要的所有构建工具和依赖项。
Vagrant是另一个有用的工具,有助于管理构建环境,但如果您使用多个平台的VM,它最有用。如果您只打算使用Linux容器,则可能不需要Vagrant。