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

Re: how to get past apt-get errors? is there a manual workaround?



On Wed, Mar 11, 2009 at 03:26:39PM -0600, will trillich <will@serensoft.com> was heard to say:
> Hi debianites -- a question for DPKG and APT experts:
> 
> We're stuck with apt-get and haven't found a way past it yet -- any
> ideas would be welcome:
> 
> Our postgresql-client-7.4 is missing its libpq.so.3 file, which means
> that pg_controldata can't do its thing, so that anything related to
> that debian package breaks/kills the whole apt process... meaning that
> apt-get is broken! (Perhaps we had a blip during the ice storm last
> month and this file wound up a casualty.)

  Your problem has to do with postgresql, not apt.  I would guess that
maybe apt was trying to remove the old postgresql, and it got as far
as removing libpq.so.3 but didn't manage to remove postgresql for some
reason (maybe exactly the same reason it can't remove it now).  I think
it should remove postgresql before the libraries it requires ... but I
have seen it make poor (less robust) decisions about how to actually
execute an install in the past.

> Starting PostgreSQL 7.4 database server:
> main/usr/lib/postgresql/7.4/bin/pg_controldata: error while loading
> shared libraries: libpq.so.3: cannot open shared object file: No such
> file or directory
> Error: Could not parse locale out of pg_controldata output
>  failed!

  Ouch.  What version of Debian are you running?  The oldest version of
libpq I can find in the archive is libpq4 (from etch), and lenny only
has libpq5!  I was going to suggest downloading libpq3 and installing
it manually, but you can't do that if you don't have it.  I might also
try editing /var/lib/dpkg/info/postgresql-7.4.prerm and commenting out
the block where it checks for the old pid file.  That's assuming, of
course, that you're really sure that there are no running servers (I
assume that the script has a good reason for trying to stop the server)

  Daniel


Reply to: