Gentoo:如何在保留以前的简历数据的同时生成一个包?

Gentoo:如何在保留以前的简历数据的同时生成一个包?

假设在 Gentoo Linux 中,我正在生成许多启用并行生成的软件包,其中一个失败了,因为编译其源代码需要大量 RAM,因此编译器遇到内存不足并被砍掉;发生这种情况可能是因为有问题的包并不是唯一正在构建的包,所以如果我单独出现该包,它可能会毫无问题地构建。因此,我只想出现那个包,然后在完成后恢复之前出现的其余部分。我该怎么做?

我在网上看到了一些解决方案,例如将列表保存resume到文件中,然后将其加载到emerge中,但这些解决方案似乎并不是最好的(该解决方案似乎不支持并行新兴)。理想情况下,最好的解决方案应该允许emerge --resume在单独安装有问题的软件包后继续执行之前的emerge。

答案1

emerge ...
# fail
ebuild <PORTDIR>/<package_that_failed>.ebuild merge
emerge --resume

未经测试,但应该可以工作

答案2

这取决于您如何指定您正在出现的软件包列表。如果它是通过指定一个包或一组引入大量依赖项来完成的,那么您将构建有问题的打包,然后再次运行相同的命令。在这种情况下,emerge 将不会安装已经合并的软件包。

但是,如果您正在做不太可能的事情并在命令行中手动指定包列表,则必须手动从列表中删除已合并的包。因为据我所知,没有任何参数可以排除已经合并的内容。

也许可以使用 gentoolkit 或 portage-tools 中的其他一些辅助应用程序来实现一些魔法,但不幸的是我对这些不太熟悉。

相关内容