I am trying to find out if I am wasting my time trying to build Incus from source on Opensuse. Is there a reason there isn’t an approved way to do this yet? Am I wasting my time, because it will never work, even if I manage to get it compiled? I got make deps to run without any errors but make still doesn’t work. I’m just desperate to get this on Opensuse because I used LXD all the time when it could run other distros than Ubuntu. Any help is appreciated!
Show your error message(s)?
I took the instructions for Debian/Ubuntu from How to install Incus - Incus documentation and just replaced any package name which didn’t exist directly under OpenSUSE.
That got me:
zypper install acl attr autoconf automake dnsmasq git go libacl-devel libcap-devel liblxc1 liblxc-devel sqlite3-devel libtool libudev-devel liblz4-devel libuv-devel make pkg-config rsync squashfs tar tcl xz ebtables
Then did the git clone https://github.com/lxc/incus
, followed by make deps
, putting the env variables in place and finally make
. This resulted in the expected incus
and incusd
binaries.
suse:~/incus # ~/go/bin/incusd --verbose
INFO [2024-04-15T14:11:08Z] Starting up mode=normal path=/var/lib/incus version=6.0.0
ERROR [2024-04-15T14:11:08Z] Unable to parse system idmap err="No map found for user"
INFO [2024-04-15T14:11:08Z] Kernel features:
INFO [2024-04-15T14:11:08Z] - closing multiple file descriptors efficiently: yes
INFO [2024-04-15T14:11:08Z] - netnsid-based network retrieval: yes
INFO [2024-04-15T14:11:08Z] - pidfds: yes
INFO [2024-04-15T14:11:08Z] - pidfds for threads: no
INFO [2024-04-15T14:11:08Z] - core scheduling: no
INFO [2024-04-15T14:11:08Z] - uevent injection: yes
INFO [2024-04-15T14:11:08Z] - seccomp listener: yes
INFO [2024-04-15T14:11:08Z] - seccomp listener continue syscalls: yes
INFO [2024-04-15T14:11:08Z] - seccomp listener add file descriptors: yes
INFO [2024-04-15T14:11:08Z] - attach to namespaces via pidfds: yes
INFO [2024-04-15T14:11:08Z] - safe native terminal allocation: yes
INFO [2024-04-15T14:11:08Z] - unprivileged binfmt_misc: yes
INFO [2024-04-15T14:11:08Z] - unprivileged file capabilities: yes
INFO [2024-04-15T14:11:08Z] - cgroup layout: cgroup2
WARNING[2024-04-15T14:11:08Z] - Couldn't find the CGroup memory swap accounting, swap limits will be ignored
INFO [2024-04-15T14:11:08Z] - idmapped mounts kernel support: yes
INFO [2024-04-15T14:11:08Z] Instance type operational driver=lxc features="map[]" type=container
WARNING[2024-04-15T14:11:08Z] Instance type not operational driver=qemu err="QEMU command not available for CPU architecture" type=virtual-machine
INFO [2024-04-15T14:11:08Z] Initializing local database
INFO [2024-04-15T14:11:08Z] Set client certificate to server certificate fingerprint=67623a6557f077d9206d36c571f2f60924e3d486321cbba14570eff30620d7b8
INFO [2024-04-15T14:11:08Z] Starting database node id=1 local=1 role=voter
INFO [2024-04-15T14:11:08Z] Loading daemon configuration
INFO [2024-04-15T14:11:08Z] Binding socket socket=/var/lib/incus/guestapi/sock type="devIncus socket"
INFO [2024-04-15T14:11:08Z] Binding socket socket=/var/lib/incus/unix.socket type="REST API Unix socket"
INFO [2024-04-15T14:11:08Z] Initializing global database
INFO [2024-04-15T14:11:08Z] Connecting to global database
INFO [2024-04-15T14:11:08Z] Connected to global database
INFO [2024-04-15T14:11:08Z] Initialized global database
WARNING[2024-04-15T14:11:08Z] Firewall failed to detect any compatible driver, falling back to "xtables" (but some features may not work as expected due to: Backend command "iptables" missing)
INFO [2024-04-15T14:11:08Z] Firewall loaded driver driver=xtables
INFO [2024-04-15T14:11:08Z] Initializing storage pools
INFO [2024-04-15T14:11:08Z] Initializing daemon storage mounts
INFO [2024-04-15T14:11:08Z] Initializing networks
INFO [2024-04-15T14:11:08Z] All networks initialized
INFO [2024-04-15T14:11:08Z] Cleaning up leftover image files
INFO [2024-04-15T14:11:08Z] Done cleaning up leftover image files
INFO [2024-04-15T14:11:08Z] Starting device monitor
INFO [2024-04-15T14:11:08Z] Initialized filesystem monitor driver=fanotify path=/dev
INFO [2024-04-15T14:11:08Z] Started seccomp handler path=/run/incus/seccomp.socket
INFO [2024-04-15T14:11:08Z] Pruning expired images
INFO [2024-04-15T14:11:08Z] Done pruning expired images
INFO [2024-04-15T14:11:08Z] Pruning expired backups
INFO [2024-04-15T14:11:08Z] Done pruning expired backups
INFO [2024-04-15T14:11:08Z] Updating instance types
INFO [2024-04-15T14:11:08Z] Daemon started
INFO [2024-04-15T14:11:08Z] Pruning resolved warnings
INFO [2024-04-15T14:11:09Z] Expiring log files
INFO [2024-04-15T14:11:09Z] Updating images
INFO [2024-04-15T14:11:09Z] Done pruning resolved warnings
INFO [2024-04-15T14:11:09Z] Done updating images
INFO [2024-04-15T14:11:09Z] Done expiring log files
INFO [2024-04-15T14:11:09Z] Done updating instance types
I will as soon as I find out if I am wasting my time even doing this…
I’m not new to compiling from source, but I have never tried it without something that doesn’t already have a src for the distro so to speak
Show home:cmspam:branches:home:MaxxedSUSE - openSUSE Build Service seems to be usually kept up to date too with a 6.0 build having been pushed to it (though maybe not built yet).
ok almost there. Got a bit further with your instructions than I did before.
Errors:…/…/go/pkg/mod/go.opentelemetry.io/otel@v1.25.0/attribute/set.go:7:2: package cmp is not in GOROOT (/usr/src/cmp)
…/…/go/pkg/mod/github.com/zitadel/logging@v0.6.0/attributes.go:7:2: package log/slog is not in GOROOT (/usr/src/log/slog)
shared/util/boolean.go:4:2: package slices is not in GOROOT (/usr/src/slices)
make: *** [Makefile:37: build] Error 1
Can you show go version
?
$ go version
go version go1.18 gccgo (SUSE Linux) 13.2.1 20240206 [revision 67ac78caf31f7cb3202177e6428a46d829b70f23] linux/amd64
You need Go 1.21 at minimum, which is what I got here on current OpenSUSE Tumbleweed when installing the go
package.
you’re a genius stgraber! got it compiled. Had a wrong version of gcc-go or something.