Slackware 14.2中的runc安装错误

时间:2017-08-31 04:31:48

标签: docker go slackware runc

我正在尝试通过SBoTools在Slackware 14.2中安装Docker,但是我收到了runc安装的错误消息。

  

对`seccomp_rule_add_exact_array'的未定义引用   collect2:错误:ld返回1退出状态

     

make:*** [all]错误2

     

Makefile:30:目标'all'失败的食谱

     

失败:runc:runc.SlackBuild返回非零

我尝试从源代码构建runc,但遇到了同样的错误。我不是go-lang的专家,也不知道问题是否存在。

谢谢,

更多详情:

在安装时,当它发出命令时会发生问题:

go build -i -ldflags "-X main.gitCommit=54296cf40ad8143b62dbcaa1d90e520a2136ddfe -X main.version=1.0.0-rc2" -tags "seccomp" -o runc .

编辑#2 - 问题解决了。

好吧,问题出在slackbuilds的runc包的Makefile中。 有两行将使用命令“go build”,并且两者都有一个名为“-ldflags”的标志......要解决问题,只需使用“-gccgoflags”更新此标志即可。 Obs:如果你正在尝试安装Docker,那么容器也会遇到这个问题。

希望这可以帮助别人,我会在Slackbuilds中报告这个包的主要工具:)

3 个答案:

答案 0 :(得分:0)

不,这与Go完全无关。在编译(或者更确切地说是链接)C代码时发生了这个错误。乍一看,问题是您的libseccomp已过期。缺少的符号在该库的2.0和2.1之间添加。

答案 1 :(得分:0)

构建时没有正确设置PATH变量。从/ usr / bin获取go可执行文件;该可执行文件对应于gccgo,而不是google-golang包中的那个,这是要使用的那个。

答案 2 :(得分:0)

问题不在于-ldflags,问题是您在安装google-go-lang后没有设置PATH。 为此,您可以从安装了go的根提示符退出并重新登录,或者只是来源/etc/profile.d/go.sh

source /etc/profile.d/go.sh

然后继续安装runc以及您刚刚提供go.sh的提示中的其他软件包。 见:slackware:howtos:docker