[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Missing links of libraries (*.so) on Debian 11



Hi,

Nicolas George wrote:
> The .so symbolic are not for running programs, they are for building
> them. For running, you only need the .so.vers links.

Yes, but at build time, the actually used SONAME is recorded in the binary.
ldd will show library.so.SONAME as run-time library.


> If all the OP cares about is "make it work right now", then installing
> the libaudit-dev package MIGHT be sufficient.  If it doesn't work, then
> see below.

I doubt that. The -dev packages usually contain stuff which is needed
for building binaries from source code. .h files and possibly an .a file
for statical linking.

What is needed is the runtime package with the library SONAME version
which the binary expects. ldd is supposed to tell which this is.
(As you stated, Debian offers libaudit1 of source package "audit" with
libaudit.so.1 and libaudit.so.1.0.0. It does not look like there are
others.)


> Ideally, the OP should contact the maintainer(s) of the program in
> question, and try to get the program fixed so that it works properly.

Vincent Lefevre wrote:
> This tool is buggy since the .so symlink may point to any version
> of the library,

Before accusing the developer, one should make sure that the binary
is indeed linking to .so without SONAME.
This can be checked by

  ldd /...path.../...to.../binary-tool


> and the various versions are not compatible to
> each other. The symlink with the supported version number (only
> one integer) must be used.

If the SONAME of a library changes, its Debian maintainer has to decide
whether this shall be reflected by creating a new package. Ideally the old
version will be supported for a while in parallel.
See readline5, readline6, and current readline (which has SONAME 8, i
wonder what happened to 7).


Nicolas George wrote:
> Fixing this will require changing the source code of the broken program,
> and then rebuilding it.

To be exacting:
The bug would be in the build system, not in the source.


> If the broken program was written against a different API version of
> libaudit (something older, perhaps) then the changes might be nontrivial.

SONAME counting usually begins by 1. So i doubt that there is an older
version.
But let's see what ldd reports.


Have a nice day :)

Thomas


Reply to: