Re: A portupgrade question
- From: Ian Moore <no-spam@xxxxxxxxxxxxxxx>
- Date: Tue, 25 Apr 2006 09:42:44 +0930
On Monday 24 April 2006 23:56, Matthew Seaman wrote:
Ian Moore wrote:
Hi, I've got a question about portupgrade and something that's happened
with it a couple of times now. The last 2 times libgda has been upgraded,
I've run portupgrade -a to upgrade a bunch of ports, including libgda.
The libgda upgrade has caused a re-install of mysql-client-4, but when
portupgrade has tried to install mysql-client, it's failed because
mysql-client is already installed.
The workaround for this is simple enough, delete mysql-client and then
run portupgrade again, but I'm wondering why this situation occurs -
portupgrade should see that mysql-client is already installed and not try
to install it again (or if it needs upgrading, it should deinstall the
old version and build & install the new version).
/etc/ports/UPDATING doesn't seem to help, there's no mention of either
port in it.
The reason the ports system can't detect that you've already got
mysql-client software installed is because you haven't got
libmysqlclient.so in your loader cache. Try this command -- you should get
similar output:
lack-of-gravitas:~:% ldconfig -r | grep mysqlclient
441:-lmysqlclient_r.14 =>
/usr/local/lib/mysql/libmysqlclient_r.so.14 442:-lmysqlclient.14 =>
/usr/local/lib/mysql/libmysqlclient.so.14
Nope, I get no output at all!
ldconfig(8) needs to be told to scan /usr/local/lib/mysql for shared
libraries, as that's not one of the default directories. This is generally
handled through the ldconfig_compat port which installs precisely one file:
sisyphus:~:% pkg_info -L ldconfig_compat-1.0_7
Information for ldconfig_compat-1.0_7:
Files:
//etc/rc.d/ldconfig_compat
Yes, that's what my system shows.
although you can also add /usr/local/lib/mysql to the set of stuff scanned
by ldconfig by modifying variables in /etc/rc.conf (but that's the old and
unfashionable way of doing this...). Re-installing that port and running
/etc/rc.d/ldconfig_compat start
should sort out the problem you're seeing.
Yes, that sorted things out - libgda installed without trying to re-install
mysql40-client this time.
Note that mergemaster(1) will ask you to delete that file because it's in
/etc/rc.d and it's not one of the one installed by the system. You should
resist the suggestion to do that, or put up with various MySQL (and certain
other port) related things not working in the way you might expect.
I'll remember that one.
Note too: this is system version number dependant -- recent 6.1-STABLE or
above will have the ldconfig_compat script installed in /usr/local/etc/rc.d
So to sum up, it's a problem with the way the ports system detects wether the
mysql-client port is installed that caused the problem (I thought it just
used the ports database), and/or it's a problem with the mysql-client port
not registering libmysqlclient.so ?
Thanks for your help in sorting that out, I knew it was something more than
just not using the recursion switches with portupgrade.
Cheers,
--
Ian
gpg key: http://home.swiftdsl.com.au/~imoore/no-spam.asc
Attachment:
pgpuI1H1p2IqH.pgp
Description: PGP signature
- Follow-Ups:
- Re: A portupgrade question
- From: Daniel Bye
- Re: A portupgrade question
- References:
- A portupgrade question
- From: Ian Moore
- Re: A portupgrade question
- From: Matthew Seaman
- A portupgrade question
- Prev by Date: Re: Obsolete packages
- Next by Date: Firefox::::: ugh.
- Previous by thread: Re: A portupgrade question
- Next by thread: Re: A portupgrade question
- Index(es):
Relevant Pages
|