I’m trying to install a new version of lxc in an older debian system (9.13) on an armhf device which can’t be upgraded (Asus Tinkerboard), and the repo lxc is not compatible with current templates.
I have pulled the stable-4.0 branch from here: GitHub - lxc/lxc: LXC - Linux Containers
and do the standard ./autogen.sh
, ./configure
, make
, make install
.
Afterward though, lxc-create
and other commands report as version 2.0.7, and fail because of the issue reported here: symbol lookup error: lxc-create: undefined symbol: strlcpy · Issue #3960 · lxc/lxc · GitHub
This is not me being confused about $PATH
; the distro version has been uninstalled.
My question here is about an oddity with the install described in this comment: symbol lookup error: lxc-create: undefined symbol: strlcpy · Issue #3960 · lxc/lxc · GitHub
I was using the master and stable-40 branch. Because the version reports wrong, I thought perhaps I had pulled the repo wrong, so I’ve gone through this again. Here’s the funny bit: After make install,
/usr/local/bin/lxc-create
reports as 2.0.7 and throws the undefined symbol error. So doeslxc/src/lxc/.libs/lxc-create
(which is what make installed). However,lxc/src/lxc/lxc-create
(the shell script one level up) reports 4.0.10. But there’s more:lxc/src/lxc/.libs/lt-lxc-create
(something which is not installed by make) reports 4.0.10 and !! works whenlxc-create
in the same directory does not. So right now it appears I’ve gotten my wish (it installed a fedora 35 image), hopefully I can sort it out (since other commands likelxc-start
also report2.0.7
and do not have anlt-
version).
Obviously this is not right: The tools being built report a different version than what is in the toplevel Makefile (4.0.10) and there is no confusion here: It is easy to confirm the executables in /usr/local
are the ones installed from lxc/src/lxc/.libs
, which is where the lt-lxc-create
binary is that reports the correct version and works (or so far so good).
What’s up with this? Does anyone know why this happens?
In the end it seems I may be out of luck no matter what: I copied the scripts which correlate to the lxc commands (in lxc/src/lxc
), and which return the correct version, to a directory at the top of $PATH
and tried to use a container:
> lxc-start -n fedora35 -l DEBUG -F
lxc-start: foobar: utils.c: lxc_can_use_pidfd: 1772 Kernel does not support pidfds
A work-around for this is really a separate question…