Re: A portupgrade question



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



Relevant Pages

  • Re: Portinstall question
    ... I was just wondering why you would want to use portinstall to ... install new software, rather than: ... portinstall is just portupgrade by another name. ... an already installed port. ...
    (freebsd-questions)
  • Re: portupdate xorg-server
    ... Any port upgrading tool belongs in a port, ... Never did I claim portupgrade fails where a normal make install would succeed. ...
    (freebsd-questions)
  • Re: First cvsup in sometime, and now Im hosed
    ... > leaving me without, well, portupgrade. ... newer/more-secure version of OpenSSL and installed the port ... install was from a 4.9-REL CD and I keep the updates coming ...
    (freebsd-questions)
  • Re: Portinstall question
    ... >> install method, there isn't any guesswork as to what name to ... > portinstall is just portupgrade by another name. ... an already installed port. ...
    (freebsd-questions)
  • A portupgrade question
    ... portupgrade -a to upgrade a bunch of ports, ... portupgrade has tried to install mysql-client, ... should see that mysql-client is already installed and not try to install it ...
    (freebsd-questions)