Date: Tue, 25 Apr 2006 09:42:44 +0930 From: Ian Moore <no-spam@swiftdsl.com.au> To: freebsd-questions@freebsd.org Subject: Re: A portupgrade question Message-ID: <200604250944.21866.no-spam@swiftdsl.com.au> In-Reply-To: <444CDFFF.5020401@infracaninophile.co.uk> References: <200604242043.25020.no-spam@swiftdsl.com.au> <444CDFFF.5020401@infracaninophile.co.uk>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --] 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 #2 --] -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (FreeBSD) iD8DBQBETWnbPUlnmbKkJ6ARAuBOAJ937XJ0wEKWbcHHAnE174kZtK6YsQCfa3JN qsljf9j97tQ6SY0YVlyYW/U= =bz10 -----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200604250944.21866.no-spam>
