Re: Stuff Not Working after Upgrade - Missing Dependency

From: Steve Rikli <sr_at_genyosha.net>
Date: Tue, 18 Feb 2025 01:54:01 UTC
On Mon, Feb 17, 2025 at 08:28:59PM -0500, Vincent Sabio wrote:
> On Mon, 17 Feb 2025 23:42:43 +0000, Frank Leonhardt wrote:
> > On 17/02/2025 23:07, Vincent Sabio wrote:
> 
> >> I just upgraded my server from 12.0-REL to 14.1-REL (yeah, I know) 
> >> (I'm still running CentOS, too), and now PHP refuses to run. Typing 
> >> php at the command line gives me:
> >> 
> >>    ld-elf.so.1: Shared object "libdl.so.1" not found, required by 
> >> "libxml2.so.2"
> > 
> > This list is as good as any.
> > 
> > I had hell when I went from 12 to 14 (via 13) on a workshop machine 
> > (my gateway), so I just don't do it on anything "production". I spent 
> > six months on and off, fiddling with it to try and see if there was 
> > some cure by hand-fixing dependencies. At the weekend I gave up, 
> > flattened it and installed everything from scratch.
> 
> I'm dreading having to go that route; it's a highly customized config, including several RAIDs
> 
> Is it possible to get a copy of libdl.so.1 and install it in /usr/local/lib/ ?
> 
> I'd hate to have to roll a fresh OS over the disk just to acquire a missing file....

I've had to do something like that in the past to pull a machine back
in from the weeds, e.g. copy a missing library from backups and temporarily
copy it back onto the sysdisk so I had enough working tools to do a proper
upgrade routine.

So in theory, yes. If your next move is some kind of re-install, it likely
won't hurt to try it, at least. Some advice:

- do this while booted from rescue media if you possibly can, or at least
  while in single-user

- make small moves, i.e. change just one thing at a time, then check if
  anything has been fixed or something new has broken

- save a copy of anything you have to modify or move aside, JIC

- fyi libdl.so.1 is typically found in /usr/lib/ , along with libdl.a
  and the symlink for libdl.so -> libdl.so.1 .  You might also have
  a version of it in /usr/lib32/ if you installed 32-bit support.

Can you tell if libdl.so.1 is missing altogether? Or perhaps is from
the wrong release or something along those lines -- something to check,
since you were attempting a system upgrade.