All I'm trying to do is run a simple find command using ack
$ ack stuff
and get the following message
/lib/libc.so.7: version FBSD_1.4 required by /usr/local/lib/perl5/5.24/mach/CORE/libperl.so.5.24 not found
Any ideas what is causing this, nothing on the system has been changed?
1 Answer
It looks like the perl5 package requires a newer version of the C library than the one your system is using. This is extremely unlikely to happen if
- Your system is up to date (no pending package updates)
- You're only using official FreeBSD package repositories, no third-party ones
- You don't have any custom third-party software installers on your system that might've chucked a copy of perl into
/usr/lib/perl5 - You installed
perl5andack-grepthrough the official ports reopository
How did you install ack-grep and perl? If you didn't install perl5 or ack-grep from the FreeBSD package repositories (ports), that's probably your issue.
You could try recompiling perl5 from source code against your operating system. The ./configure script and the linker would figure out how to use your existing C library in /lib to link cleanly against it without errors (assuming the compile succeeded). Or try uninstalling or reinstalling perl5.
Also test a few other programs on your system and make sure they're not all experiencing the same problem! If it's a system wide issue with all non-builtin commands (like vi, bash, zsh, nano, pkg, etc.) -- if it's happening with many or most programs, your C library may have been overwritten or corrupted on-disk (either by a virus, by accident, or software/hardware bug/failure). If that's the case, you may have to copy a working libc from another FreeBSD system onto this system (out of band) to fix the damage, because a broken libc will really hamstring your ability to do anything useful with the computer in the way of repairs.