【问题标题】:runc installation error in Slackware 14.2Slackware 14.2 中的 runc 安装错误
【发布时间】:2017-08-31 04:31:47
【问题描述】:

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

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

make: *** [all] 错误 2

Makefile:30:目标“全部”的配方失败

失败: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,你也会遇到 containerd 的问题。

希望这可以帮助某人,我会向 Slackbuilds 中的软件包维护者报告此问题:)

【问题讨论】:

    标签: docker go slackware runc


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      问题不是-ldflags,问题是你安装google-go-lang后没有设置PATH。 为此,您可以从安装了go 的root 提示中注销并重新登录,或者只是源/etc/profile.d/go.sh

      source /etc/profile.d/go.sh

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • 不知道这是否是问题,因为我使用的是最新版本的 libseccom:已经安装了 libseccomp (libseccomp-2.3.2-x86_64-1_SBo)。当我尝试在 runc 源代码中使用“go install”时,我收到一条不同的错误消息:gocode/src/github.com/docker/docker/pkg/term/tc.go:10:2: C source files not allowed不使用 cgo 时:gccgo_c.c
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-12-11
        • 1970-01-01
        • 2017-08-02
        • 2021-12-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多