pumpitupdev / pumptools

A collection of tools to run Pump It Up games.
The Unlicense
22 stars 7 forks source link

libc.so.6 - GLIBC_2.27 not found - Required by libgssapi_krb5 (Bug?) #15

Closed voidderef closed 3 years ago

voidderef commented 3 years ago

In GitLab by @s34n on Jul 17, 2020, 07:54

Summary

When trying to load NX2. Note: Zero works and plays fine with no problems.

Expected behavior

NX2 Game should have loaded up.

Current behavior

When using the hook manuals, I noticed that on my system (ubuntu 18.04) it wouldnt load the program due to a new requirement for libcurl, which I didnt see in the documentation. I googled and hopefully installed the right package (libcurl3-gnutls:i386) Please confirm!. This error went away and then I was given: libc.so.6 - GLIBC_2.27 not found - Required by libgssapi_krb5... Cannot proceed beyond this. See attached.

Detailed Description

See screenshots attached.

Steps to reproduce

  1. Install lubuntu 18.04 and copy files for NX2 over. Extract game. Extract lib zips.
  2. Installed: gcc-multilib, libx11-6:1386, libusb-0.1-4:1386, zlib1g:1386, libasound2:1386
  3. Install Nvidia drivers from Additional Drivers
  4. Restart system
  5. Try and run NX2 20200716_072738

20200716_072941

Further things tested

I was a bit confused with the documentation. It states: **"As for method 1, when using Ubuntu, the dependencies can be found in the following packages:

From this I understood it as: install "gcc-multilib"... This makes Zero work with no problems. But NX2 has this error.

and NOT libc-bin, or libc-bin:1386, or gcc-multilib:1386

If I try and install libc-bin:1386, it says "You are about to do something potentially harmful", so I bailed on that

Context (Environment)

Pumptools version(s) affected

Game(s) and version(s) affected

Log output

See screesnshots

Command line arguments

Running 'sudo apt-get install libc6' gives: "libc6 is already the newest 2.27-3ubuntul.2" Running 'ldd --version' gives "GLIBC 2.27-3ubuntu1 2.27"

APIs used

didnt get that far

OS version

lubuntu 18.04

Hardware specs

MK9v1

20200716_072738

20200716_072941

20200716_073004 20200716_073034

voidderef commented 3 years ago

In GitLab by @icex2 on Jul 17, 2020, 18:55

Thanks for the detailed report. Quite a lot of info to digest, let's break things down a bit:

  1. Apparently, you are using the x86 (32-bit) flavor of Ubuntu 18.04. Are there any particular reasons for that? I haven't used a pure 32-bit version of Linux to run them so far.
  2. libgssapi-krb5: "Kerberos is a system for authenticating users and services on a network.". Why you apparently need that, I don't know. Can you run lddtree in piueb instead of ldd which prints the dependencies you are showing me in the screenshots?
  3. Missing documentation in pumptools: I just checked pumpos and you might need libcurl4-gnutls-dev:i386 and not version 3.

You might want to give 3) a try first and check if the general issue goes away, then try 2).

voidderef commented 3 years ago

In GitLab by @s34n on Jul 18, 2020, 14:59

  1. I'm using the following image: lubuntu-18.04-desktop-amd64 ... It's a 64bit OS. Did I mess this install up somehow? See attached!

20200718_074016

  1. I ran lddtree on piueb, but it didnt really offer much. 20200718_075504

I ran lddtree on piu, and it gave a larger output. See attached lddtree_piu.txt

  1. I removed version 3 and installed libcurl4-gnutls-dev:i386. This worked for the libcurl requirement. Thank you

Still getting that GLIBC_2.27 error though 20200718_075008


On a 64bit OS, just to be 100% sure, which do I install? I think I have it marked correctly

gcc-multilib - this only

gcc-multilib:1386 - not this

libc-bin - not this

libc-bin:1386 - not this

voidderef commented 3 years ago

In GitLab by @s34n on Jul 18, 2020, 17:34

When I looked up libcurl3-gnutls - https://packages.debian.org/stretch/libcurl3-gnutls

It says: dep: libgssapi-krb5-2 (>= 1.14+dfsg) MIT Kerberos runtime libraries - krb5 GSS-API Mechanism

It is possible this messed things up?

voidderef commented 3 years ago

In GitLab by @icex2 on Jul 18, 2020, 22:43

1) You are right, your OS should be fine regarding that. False conclusion based on the library path I have seen in your screenshots.

2) Running that on piueb won't work since that's a shell script. You have to open it with a texteditor and change the line local ldd_output="$(ldd $exec_path >&1)" to local ldd_output="$(lddtree -a $exec_path >&1)".

3) Instead of photos cutting off a lot of information from the shell, can you grab the piueb.log file and upload it here?

voidderef commented 3 years ago

In GitLab by @icex2 on Jul 18, 2020, 22:44

Seems to be a required dependency then. Doesn't look like anything is broken on that end. However, you need version 4 of libcurl anyway. I don't see a reason to continuing tracing that.

voidderef commented 3 years ago

In GitLab by @s34n on Jul 19, 2020, 01:07

Here is the log file! Hopefully its something simple! Thank you for helping! piueb-lddtree.log

voidderef commented 3 years ago

In GitLab by @icex2 on Jul 20, 2020, 24:00

According to the log file, you are using the lib-ld.zip package and not the lib-local.zip package. Is that correct?

Have you tried the lib-local.zip package already?

Furthermore, is there a particular reason why you are using lib-ld.zip instead of lib-local.zip?

voidderef commented 3 years ago

In GitLab by @s34n on Jul 20, 2020, 24:19

I extracted the contents of lib-ld to lib

Then I extracted the contents of lib-local over the top of lib

So it would be using lib-local for any files with the same name

voidderef commented 3 years ago

In GitLab by @icex2 on Jul 20, 2020, 24:20

That will not work because you are likely running libraries which have dependencies to different versions of the same lib, e.g. libc. Use either lib-ld or lib-local and do not mix them.

voidderef commented 3 years ago

In GitLab by @s34n on Jul 20, 2020, 18:11

I see!

The only file that had information on the lib zips was hook.md ... It talks about lib-local, but I didn't see any information on lib-ld. I mixed them both for Zero and NX without realising and they both worked fine. So that is my bad for nx2.

When extracting lib-ld, and not lib-local, I get the same error as the OP.

When extracting lib-local, and not lib-ld, I get a missing dependency: error while loading shared libraries: libfreetype.so.6: cannot open shared object file: No such file or directory.

I installed: libfreetype6:i386

Small note: When I removed libcurl3-gnutls:i386, it took my WIFI with it, so I just did a fresh install.

Now NX2 is working. No problems with the new enhanced USB support either! Amazing!

I have written a document for setting this all up from scratch. Would it be possible to submit it to the repo? I don't mind if things get changed around. It's a small small noob-friendly document for people who want to get things up and running quickly and dont care what distro or desktop environment they have. I wanted to get one written for VM too, but i never did figure out the graphic issue to get it up and running, so that one is a WIP

voidderef commented 3 years ago

In GitLab by @icex2 on Jul 20, 2020, 20:22

The only file that had information on the lib zips was hook.md ... It talks about lib-local, but I didn't see any information on lib-ld.

Well, pumptools should not depend on a specific set of data, though it is a good idea to distribute a common base making things easier to set up. However, because there have been multiple issues related to using either lib-local or lib-ld, improving the documentation about that is definitely a good idea.

I mixed them both for Zero and NX without realising and they both worked fine. So that is my bad for nx2.

You got lucky with Zero and NX because these games don't have many dependencies, yet. With NX2, piu pulls in a lot more dependencies and also requires very specific versions of a few of them (see lib-local). The libraries from lib-ld are pulled from a rather old version of Arch Linux now and are likely to clash with dependencies on your system used by some of the pump dependencies (yes, dependencies can have more dependencies, see lddtree).

When extracting lib-local, and not lib-ld, I get a missing dependency: error while loading shared libraries: libfreetype.so.6: cannot open shared object file: No such file or directory.

I installed: libfreetype6:i386

Yep, that's the right way to solve the above issue.

Now NX2 is working. No problems with the new enhanced USB support either! Amazing!

Great to hear we got that worked out.

I have written a document for setting this all up from scratch. Would it be possible to submit it to the repo? I don't mind if things get changed around. It's a small small noob-friendly document for people who want to get things up and running quickly and dont care what distro or desktop environment they have. I wanted to get one written for VM too, but i never did figure out the graphic issue to get it up and running, so that one is a WIP

Yeah, sure. That sounds like a very good contribution. By "from scratch", I assume you are talking about a full OS setup and configuration process and installing everything manually?

I suggest just open a PR with the document included in the root folder of the (nearly) empty pumptools repository so I can review it. Once we consider it good, I just cherry pick the final version and add it to pumptools for the next release. How does that sound?

voidderef commented 3 years ago

In GitLab by @icex2 on Mar 19, 2021, 16:50

I have extracted some key items from the conversation and updated the documentation accordingly. Closing this issue due to inactivity and considering this issue solved.