[SOLVED] rsync not working: missing libcrypto.so.11

Started by razamatan, May 29, 2024, 05:35:21 AM

Previous topic - Next topic
May 29, 2024, 05:35:21 AM Last Edit: May 29, 2024, 09:04:21 AM by razamatan
OPNsense 24.1.7_4-amd64
FreeBSD 13.2-RELEASE-p11
OpenSSL 3.0.13

rsync used to run fine, but now it fails with the following message:

ld-elf.so.1: Shared object "libcrypto.so.11" not found, required by "rsync"

i tried using the /etc/libmap.conf approach to fix it, but it doesn't work:


% cat /etc/libmap.conf
includedir /usr/local/etc/libmap.d
% cat /usr/local/etc/libmap.d/libcrypto.conf
libcrypto.so.11 libcrypto.so
% ls /usr/lib/libcrypto.so*
/usr/lib/libcrypto.so
%
% rsync
ld-elf.so.1: /usr/local/lib/libcrypto.so: version OPENSSL_1_1_0 required by /usr/local/bin/rsync not found


i've been doing updates and not doing fresh installs for the past few years.

On 24.1.x installing

# pkg install rsync
# ldd /usr/local/bin/rsync | grep crypto
   libcrypto.so.12 => /usr/local/lib/libcrypto.so.12 (0x1cf8a8efa000)

So yes, libcrypto.so.11 doesn't exist, but it means your binary is out of sync.

# pkg install -f rsync


Cheers,
Franco

ah!

is there an easy way to list packages that i've installed on my own (or those that are older than some date)?  i don't see rsync in the packages list in the gui, so i doubt that it was ever upgraded.

My guess is you built this via the ports tree some time ago, but then again rsync has been in the packages for a many years and it would have upgraded automatically unless maybe you built rsync from its source tree directly.


Cheers,
Franco

my setup is so old, i don't quite remember.  after i `pkg -f install`ed it, it's showing up in my packages list in the gui.  weird.

is there a way to see the diff between packages being shown in the gui packages list and what's actually installed?

ok, i manually diff'd `pkg info` output vs what's listed in the gui packages list.  mostly, there are missing things from the pkg info output side.  but the gui list is missing ntp and expiretable.

ntp and expiretable doesn't show in the gui packages list even after force installing them.  they were up to date though.

The GUI lists the same as as pkg-info, but this only works for *registered* packages. So either manually installing a binary from a source repo or losing the package database due to corruption can end up with what you are seeing.

There is no way to list binaries installed not known to the package system. I mean there would be ways to script this but the amount of work vs. the point in having it is difficult to reason... :)

Maybe as a piece of info for you or others. You can list list packages able to be installed from the binary repository as such:

# pkg search rsync
librsync-2.3.4                 Library for delta compression of streams
rsync-3.3.0                    Network file distribution/synchronization utility

Or list all the remote packages available:

# pkg rquery "%n %dv %c"


Cheers,
Franco

is there a way to rebuild my package db in case it was corrupted?  it has me worried that ntp and expiretable still don't show in the gui.

Only by reinstalling all installed packages. The information cannot be re-gathered from the system state.

Generally most of it can be recovered as described here, but that only works for the core system and not manually added packages.

https://forum.opnsense.org/index.php?topic=40597.0


Cheers,
Franco

i tried to force install and force upgrade both ntp and expiretable, but they still don't show up in the gui package list (but show up in `pkg info` in the cli).

how can i go back to a consistent state assuming corruption is in play?

I don't know why they wouldn't show up when:

# pkg info ntp

For example this yields the expected result of pkg telling you about the installed ntp package instead of throwing an error.


Cheers,
Franco

the do show up when using `pkg info` in cli.  they just don't show up in the opnsense gui > system > firmware > packages list.