场景:
问题:
我正在尝试使用synth构建vips(图形工具)。 vips的依赖之一是LLVM。出于某种原因,LLVM(llvm40)不是从官方的季度回购中提取的,而其他包装没有配置。
我不介意拥有一个新的llvm40版本,但llvm40的版本在编译了大约一个小时之后总是崩溃。
因此一直坚持这个问题,我真的希望能够强制使用合成器来使用官方回购中的版本。
没有像任何地方那样的选项,但也许sommeone遇到了类似的问题,并且知道解决方案或解决方法。
答案 0 :(得分:0)
要从源代码编译,我建议使用portmaster
例如,这是我在一个空的jail中从端口graphics/vips安装的步骤(默认选项)
首先,安装/更新端口:
# portsnatp fetch extract
接下来,安装portmaster
:
# cd /usr/ports/ports-mgmt/portmaster
# make install clean
如果您已经拥有端口,可能需要在使用?
安装软件包之前更新它们# portsnap fetch update
安装vips
:
# cd /usr/ports
# portmaster graphics/vips
它将提示许多选项,包括与LLVM相关的选项,但最后,它应该编译端口,例如,这是我编译的版本:
root@xxx:/usr/ports # vips --vips-version
libvips 8.4.5-Sat Oct 28 09:19:20 UTC 2017
如果以后您想要更新所有端口并避免多次按 Y (是),您可以执行以下操作:
# yes | portmaster -da
这只会安装vips
,但会在您的系统上放置所有依赖项(llvm-*
等),所以稍后您可能只需使用自定义修补程序/端口来包含自定义依赖项,可能{ {1}}(我不知道究竟是什么),但至少希望这有助于您成功编译synth
。
答案 1 :(得分:0)
我为发布我的问题的解决方案而道歉,但我现在已经有了合成器来构建llvm40。
第1步:首先构建gcc6。不知何故,gcc6与LLVM一起构建,占用了大量的交换空间。
步骤2:构建llvm40但不使用调试器。所以运行make config并禁用llbd
之后不再发生交换空间问题。