gdbgui icon indicating copy to clipboard operation
gdbgui copied to clipboard

running on server - cannot find Python libraries

Open fabeit opened this issue 6 years ago • 9 comments

Trying to run on a centOS cluster so I can debug remotely.

I get this error message"

[26450] Error loading Python lib '/tmp/_MEIP9PeGa/libpython3.6m.so.1.0': dlopen: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by /tmp/_MEIP9PeGa/libpython3.6m.so.1.0)

I tried flags -n -h -r. Is there a way to specify the path of shared libraries? I have the python module loaded.

Thanks

fabeit avatar Feb 28 '19 07:02 fabeit

Hi you can try this. https://unix.stackexchange.com/questions/168340/where-is-ld-library-path-how-do-i-set-the-ld-library-path-env-variable

cs01 avatar Feb 28 '19 14:02 cs01

thanks for the suggestion, I have tried the solutions in those answers. However I see that my LD_LIBRARY_PATH already includes the path to the Python folder. I'm not sure why gdbgui is looking into this folder '/tmp/_MEI0LdAYr/libpython3.6m.so.1.0'. Could this have something to do with the way you have compiled the binary?

fabeit avatar Mar 01 '19 00:03 fabeit

Looks like it needs /lib64 on LD_LIBRARY_PATH.

If you are running a binary from gdbgui.com, that binary was built from pyinstaller. pyinstaller is a 3rd party tool that gdbgui uses to build binaries from the python code.

It extracts a folder to a temporary directory (often to /tmp), then runs it from there. pyinstaller may not be working well on your system for some reason.

Another way to install and run gdbgui would be with pipx, or pip which does not use the /tmp directory in the same way as pyinstaller.

cs01 avatar Mar 01 '19 00:03 cs01

note: a similar issue was featured in the https://github.com/VSCodium/vscodium/issues/521 and solvable by creating the binaries in a container that uses an older OS (in this case ubuntu 14.04 was used, leading to both "old" and "new" OS being able to run the binary). @cs01 I haven't checked - how are the binaries created for gdbgui? If "on the dev machine" is the answer - could you do this on a container or VM?

GitMensch avatar Oct 14 '20 14:10 GitMensch

It used to be in a Docker container but was recently switched to use GitHub Actions. https://github.com/cs01/gdbgui/blob/master/.github/workflows/build_executable.yml

cs01 avatar Oct 16 '20 03:10 cs01

I see, the oldest OS GitHub currently features seems to be ubuntu-16.04 which may be still "to new" for some environments but at least (seems) to run with GLIBC 2.23 which is only a bit better.

According to https://github.com/actions/virtual-environments/pull/714 the correct way to use an Ubuntu 14.04 with GitHub actions is to create a docker action, maybe that's something that can be additionally included (would also allow to build+test with alpine and debian) and the result used for the release binary (or an additional release binary)?

GitMensch avatar Oct 16 '20 07:10 GitMensch

Yes that could be added to the github actions. If you want to set up an additional OS and docker build I would be open to a PR.

cs01 avatar Oct 16 '20 18:10 cs01

As i have exactly zero knowledge on GitHub actions and nearly zero on Docker I'm not the right person for that, but maybe someone else can get down to this ... someday.

It used to be in a Docker container ...

Do you have "something" on this topic (old build instructions, deleting commits, ...? Providing that is likely useful in creating this environment.

GitMensch avatar Oct 16 '20 18:10 GitMensch

Haha no worries. Here is the commit where the Docker code was removed, https://github.com/cs01/gdbgui/commit/c7ce34d25ae75669bafbd1e0c832b05e06069a1c. See the file docker/linux/Dockerfile and docker/linux/entrypoint.sh.

I am no Docker expert either though, so I'd probably just Duck Duck Go everything.

cs01 avatar Oct 16 '20 23:10 cs01