You are not logged in.
I'm trying to use an executable under Daedalus that needs the missing library libhcrypto.so.4.
Does anyone know if any package provides that? I'm seeing things about a "libhcrypto4" package in Bookworm but that doesn't appear to be available. Currently I have the daedalus, daedalus-security, and daedalus-updates repos enabled.
Thanks in advance!
Tom
Offline
On a related topic, I've installed binutils to get the ld command, but ls doesn't work on anything I try. It always fails with an error like this:
ld: cannot use executable file '<filename>' as input to a link
I've read some things about that though I can't make any sense out of it. I've seen suggestions to use "-r" but that doesn't help.
Any clue on that would be appreciated as well.
Thanks!
Tom
Offline
Use apt-file to find out which package libhcrypto4 is in, and install it.
ld doesn't do what you think it does; it's for linking object files into an executable as part of the process of compiling source code into executable form. You can't use it to specify libraries at runtime; that's part of the OS dynamic library system and it won't help you if you don't actually have the required library installed.
Offline
P.S. apt-file didn't find anything on my system. That probably means the required package isn't in Daedalus. However, it does show up in google in various rpm repos. Maybe what you want is to install `alien` and use it to install the needed rpm? I'm not 100% sure this is the best approach, though, because this could mess with your system in a way that's hard to undo should you change your mind afterwards.
Offline
If it were up to me, I'd just compile the sources for libhcrypto4 myself (or download the binary from somewhere) and use LD_LIBRARY_PATH to get it to load at runtime.
Offline
@quickfur . . . Three posts in less than 5 minutes. Really? WHY when you could have edited your first post?
/me scratches head . . .
Online
Sorry was too lazy to do it. Will do that next time. My bad!
Offline
Thanks for the reply! I'll have to figure out how to best handle this one.
What I was hoping to use ld for was to see if there are any other missing libraries in the executable. That's something I'd always done in the past. Is that no longer possible?
Thanks!
Tom
Offline
This libhcrypto.so.4 has something to do with Heimdahl stuff. Maybe that's a hint ...
Offline
This is odd. So I was able to find that package for Debian Bookworm here:
https://packages.debian.org/bookworm/libmcrypt4
I installed the deb file libmcrypt4_2.5.8-7_amd64.deb. It's clearly installed:
dpkg-query -L libmcrypt4
/.
/usr
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/libmcrypt.so.4.4.8
/usr/share
/usr/share/doc
/usr/share/doc/libmcrypt4
/usr/share/doc/libmcrypt4/changelog.Debian.gz
/usr/share/doc/libmcrypt4/changelog.gz
/usr/share/doc/libmcrypt4/copyright
/usr/lib/x86_64-linux-gnu/libmcrypt.so.4
Yet my executable still says it's missing:
error while loading shared libraries: libhcrypto.so.4: cannot open shared object file: No such file or directory
What do you suppose that's all about?
Thanks!
Tom
Offline
libmcrypt is not libhcrypto!
Offline
OMG you're totally correct. That came up in a google search for "libhcrypto4 bookworm" and I didn't notice that difference. Thanks. Just uninstalled that.
Tom
Offline
This libhcrypto.so.4 has something to do with Heimdahl stuff. Maybe that's a hint ...
Yea I noticed that. There were some heimdal related packages also required by the same executable. So far I haven't been able to figure out if any others might provide that library.
Tom
Offline
OK. It turned out that that there was a newer version of that installed (libhcrypto.so.5.0.0). Creating a link to that named libhcrypto.so.4, plus a few other similar ones got the executable running. Seems like a somewhat ugly hack, but did in fact seem to work.
Thanks!
Tom
Offline
That sounds dangerous. If the executable is linked against version 4 of the .so, substituting version 5 may introduce subtle errors or crashes due to ABI incompatibilities. If at all possible I'd recommend getting a new version of the executable that's linked against version 5 of the library, or compile it yourself against the right -dev package.
Offline
Yea...agreed. I'll likely try to compile it from source using the newer libraries.
EDIT: One important thing to note about this post: No clue what I was thinking, but when I was referring the "ld" command I totally intended to be using "ldd". No wonder I got so confused on that.
Thanks!
Tom
Last edited by tlathm (2024-04-11 16:03:57)
Offline