ошибка установки runc в Slackware 14.2

Я пытаюсь установить Docker в Slackware 14.2 через SBoTools, но получаю сообщение об ошибке установки runc.

неопределенная ссылка на `seccomp_rule_add_exact_array' collect2: ошибка: ld вернул 1 статус выхода

сделать: *** [все] Ошибка 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 - Проблема решена.

Хорошо, проблема была в Makefile пакета runc из slackbuilds. Есть две строки, где будет использоваться команда «go build», и в обеих есть флаг с именем «-ldflags»… Чтобы решить проблему, просто обновите этот флаг с помощью «-gccgoflags», и это должно сработать. Замечания: Если вы пытаетесь установить Docker, у вас также будет эта проблема с containerd.

Надеюсь, кому-то это поможет, и я сообщу об этом ответственному за пакет в Slackbuilds :)


person Fernando    schedule 31.08.2017    source источник


Ответы (3)


Вы неправильно установили переменную PATH при сборке. Исполняемый файл go загружается из /usr/bin; этот исполняемый файл соответствует gccgo, а не тому, который находится в пакете google-golang, который следует использовать.

person SDS    schedule 05.09.2017

Проблема не в -ldflags, проблема в том, что вы не указали PATH после установки google-go-lang. Для этого вы можете выйти из корневой подсказки, которую вы установили go, и снова войти в систему или просто использовать исходный код /etc/profile.d/go.sh:

source /etc/profile.d/go.sh

а затем продолжите установку runc и других пакетов из приглашения, которое вы только что получили go.sh. см.:slackware:howtos:docker

person cs0uth    schedule 13.06.2018

Нет, это вообще не имеет отношения к Go. Эта ошибка возникает при компиляции (или, скорее, связывании) кода C. На первый взгляд кажется, что проблема в том, что ваш libseccomp устарел. Отсутствующий символ был добавлен между версиями 2.0 и 2.1 этой библиотеки.

person hobbs    schedule 31.08.2017
comment
Не знаю, в этом ли проблема, потому что я использую последнюю версию libseccom: libseccomp (libseccomp-2.3.2-x86_64-1_SBo) уже установлен. Когда я попытался использовать go install в исходном коде runc, я получил другое сообщение об ошибке: gocode/src/github.com/docker/docker/pkg/term/tc.go:10:2: исходные файлы C не разрешены, если не используя cgo: gccgo_c.c - person Fernando; 31.08.2017