LINUX.ORG.RU

удали снап для начала

firkax ★★★★★
()
Ответ на: комментарий от AEP

Камень, через который я пока не перепрыгнул:

configure: error: Package requirements (sqlite3 >= 3.22.0) were not met:

No package 'sqlite3' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables SQLITE_CFLAGS
and SQLITE_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
make: *** [Makefile:59: deps] Error 1

При этом установлено sqlite3 версии 3.27.2-3+deb10u1

Какие мне там задать SQLITE_CFLAGS и SQLITE_LIBS?

Сразу упомяну, что find нашёл такие каталоги/файлы:

/usr/lib/python2.7/sqlite3
/usr/lib/python3.7/sqlite3
/usr/bin/sqlite3
/usr/share/doc/sqlite3
/usr/share/bash-completion/completions/sqlite3
/usr/share/man/man1/sqlite3.1.gz
/home/pi/lxd/lxd/db/node/sqlite.go
/home/pi/go/deps/dqlite/test/lib/sqlite.h
/home/pi/go/deps/dqlite/test/lib/sqlite.c

eugrus ★★★★★
() автор топика
Последнее исправление: eugrus (всего исправлений: 2)
Ответ на: комментарий от gag

Благодарю! make deps прошёл.

Не знаю, что теперь не так в make:

github.com/lxc/lxd/test/devlxd-client
github.com/lxc/lxd/test/macaroon-identity
github.com/lxc/lxd/test/syscall/sysinfo
make: *** [Makefile:33: build] Error 2
eugrus ★★★★★
() автор топика
Ответ на: комментарий от gag

Всё не находит libudev заголовков:

~/lxd $ make -j1 V=1
CC="cc" CGO_LDFLAGS_ALLOW="(-Wl,-wrap,pthread_create)|(-Wl,-z,now)" go install -v -tags "libsqlite3"  ./...
github.com/lxc/lxd/shared/idmap
# github.com/lxc/lxd/shared/idmap
shared/idmap/shift_linux.go:45:10: fatal error: sys/acl.h: No such file or directory
 #include <sys/acl.h>
          ^~~~~~~~~~~
compilation terminated.
github.com/lxc/go-lxc
# pkg-config --cflags  -- lxc
Package lxc was not found in the pkg-config search path.
Perhaps you should add the directory containing `lxc.pc'
to the PKG_CONFIG_PATH environment variable
No package 'lxc' found
pkg-config: exit status 1
github.com/jochenvg/go-udev
# github.com/jochenvg/go-udev
../go/pkg/mod/github.com/jochenvg/go-udev@v0.0.0-20171110120927-d6b62d56d37b/device.go:7:12: fatal error: libudev.h: No such file or directory
   #include <libudev.h>
            ^~~~~~~~~~~
compilation terminated.
eugrus ★★★★★
() автор топика
Ответ на: комментарий от gag

Большое спасибо!

Нужно было ещё поставить lxc-dev и теперь LXD built successfully!

При запуске такая сложность:

pi@raspberrypi:~ $ sudo lxd
lxd: error while loading shared libraries: libdqlite.so.0: cannot open shared object file: No such file or directory
pi@raspberrypi:~ $ sudo find / -name libdqlite.so.0
/deps/dqlite/.libs/libdqlite.so.0

С опозданием нашёл https://linuxcontainers.org/lxd/docs/latest/installing/ отвечавшую на мои предыдущие глупые вопросы,

добавил в .bashrc

export PATH="${PATH}:$(go env GOPATH)/bin"
export LD_LIBRARY_PATH="$(go env GOPATH)/deps/dqlite/.libs/:$(go env GOPATH)/deps/raft/.libs/:${LD_LIBRARY_PATH}"

Скопировал этот .bashrc в /root

Но libdqlite.so.0 lxd так и не видит.

На всякий случай вот мой .bashrc целиком: https://pastebin.com/9NsgCDGb

eugrus ★★★★★
() автор топика
Ответ на: комментарий от eugrus

dqlite надо не просто скомпилировать, а поставить в /usr/local. Ты, случайно, не забыл там выполнить sudo make install?

AEP ★★★★★
()
Ответ на: комментарий от AEP

У него нету make install: я вручную рассовал собранное в /bin и /deps

Соответственно, бинарная библиотека dqlite у меня сейчас имеет расположение /deps/dqlite/.libs/libdqlite.so.0, что и прописано в LD_LIBRARY_PATH через .bashrc

eugrus ★★★★★
() автор топика
Ответ на: комментарий от eugrus

Ну и кстати, dqlite в ubuntu уже есть (начиная с 21.10), ничего собирать не надо. Просто ставишь libdqlite0 и libdqlite-dev.

AEP ★★★★★
()
Ответ на: комментарий от steeels

Спасибо! Посмотрел, сделал sudo cp /deps/dqlite/.libs/* /usr/lib и продвинулся к следующей проблеме:

ERROR  [2022-09-13T16:42:59+01:00] Failed to start the daemon                    err="Architecture isn't supported: armv6l"
WARNING[2022-09-13T16:42:59+01:00] Instance type not operational                 driver=qemu err="KVM support is missing (no /dev/kvm)" type=virtual-machine
Error: Architecture isn't supported: armv6l

В контексте отсутствующего KVM видимо нужно пересобрать ядро, но поможет ли это, если он говорит Architecture isn't supported: armv6l?

eugrus ★★★★★
() автор топика
Ответ на: комментарий от eugrus
pi@raspberrypi:~ $ sudo lxd
lxd: error while loading shared libraries: libdqlite.so.0: cannot open shared object file: No such file or directory

По найденной ссылке про инсталляцию написано запускать по-другому.

gag ★★★★★
()
Последнее исправление: gag (всего исправлений: 1)
Ответ на: комментарий от eugrus

… using LXD if you want to containerize different environments or run virtual machines

Очевидно, надо как-то запускать с отключённым менеджером виртуалок. Использовать только контейнеры. (Или собирать по-другому.)

gag ★★★★★
()
Ответ на: комментарий от gag

Скорее всего предупреждение про KVM не критично https://github.com/lxc/lxd/issues/10905

и не связано с остальной частью:

ERROR  [2022-09-13T16:42:59+01:00] Failed to start the daemon                    err="Architecture isn't supported: armv6l"
Error: Architecture isn't supported: armv6l
eugrus ★★★★★
() автор топика
Ответ на: комментарий от eugrus

А тебе точно нужно именно lxd, или lxc хватит?

AEP ★★★★★
()
Ответ на: комментарий от eugrus

Увы - список архитектур в LXD действительно захардкожен, и armv6l туда не входит. См. https://github.com/lxc/lxd/blob/4a9d85de837fed097736082f8a1806812ec8c941/shared/osarch/architectures.go

Но добавление всяких вариантов MIPS не затронуло другие файлы, так что можно попробовать добавить armv6l по аналогии: https://github.com/lxc/lxd/commit/e30163e0e6811abadcb6e5d05648eca50204384c

AEP ★★★★★
()
Последнее исправление: AEP (всего исправлений: 1)
Ответ на: комментарий от AEP

Разработчик отвечал, что не видит препятствий тому, чтобы собиралось на armel: https://discuss.linuxcontainers.org/t/lxd-on-32-bit-raspberry-pi-1-b/15100/5

В какой вид мне тогда привести architectures.go чтобы обойти или пройти тест на архитектуру?

eugrus ★★★★★
() автор топика
Ответ на: комментарий от eugrus

Тебе уже сделали патч: https://paste.debian.net/plain/1253800

Сохраняешь как файл в ~/Downloads/, а в дереве исходников lxd выполняешь такую команду:

patch -Np1 -i ~/Downloads/1253800
AEP ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.