Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 24 Apr 2006 15:26:07 +0100
From:      Matthew Seaman <m.seaman@infracaninophile.co.uk>
To:        Ian Moore <no-spam@swiftdsl.com.au>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: A portupgrade question
Message-ID:  <444CDFFF.5020401@infracaninophile.co.uk>
In-Reply-To: <200604242043.25020.no-spam@swiftdsl.com.au>
References:  <200604242043.25020.no-spam@swiftdsl.com.au>

next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enig552CC1EF3799985565A580EC
Content-Type: text/plain; charset=ISO-8859-15
Content-Transfer-Encoding: quoted-printable

Ian Moore wrote:
> Hi, I've got a question about portupgrade and something that's happened=
 with=20
> it a couple of times now. The last 2 times libgda has been upgraded, I'=
ve run=20
> portupgrade -a to upgrade a bunch of ports, including libgda.
>=20
> The libgda upgrade has caused a re-install of  mysql-client-4, but when=
=20
> portupgrade has tried to install mysql-client, it's failed because=20
> mysql-client is already installed.
>=20
> The workaround for this is simple enough, delete mysql-client and then =
run=20
> portupgrade again, but I'm wondering why this situation occurs - portup=
grade=20
> should see that mysql-client is already installed and not try to instal=
l it=20
> again (or if it needs upgrading, it should deinstall the old version an=
d=20
> build & install the new version).
>=20
> /etc/ports/UPDATING doesn't seem to help, there's no mention of either =
port in=20
> it.=20

The reason the ports system can't detect that you've already got mysql-cl=
ient
software installed is because you haven't got libmysqlclient.so in your l=
oader
cache.  Try this command -- you should get similar output:

lack-of-gravitas:~:% ldconfig -r | grep mysqlclient
        441:-lmysqlclient_r.14 =3D> /usr/local/lib/mysql/libmysqlclient_r=
=2Eso.14
        442:-lmysqlclient.14 =3D> /usr/local/lib/mysql/libmysqlclient.so.=
14

ldconfig(8) needs to be told to scan /usr/local/lib/mysql for shared libr=
aries,
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=20
Information for ldconfig_compat-1.0_7:

Files:
//etc/rc.d/ldconfig_compat

although you can also add /usr/local/lib/mysql to the set of stuff scanne=
d 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.=20

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 shou=
ld
resist the suggestion to do that, or put up with various MySQL (and certa=
in
other port) related things not working in the way you might expect.

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

	Cheers,

	Matthew

--=20
Dr Matthew J Seaman MA, D.Phil.                       Flat 3
                                                      7 Priory Courtyard
PGP: http://www.infracaninophile.co.uk/pgpkey         Ramsgate
                                                      Kent, CT11 9PW, UK


--------------enig552CC1EF3799985565A580EC
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (FreeBSD)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFETOAE8Mjk52CukIwRA2YOAJ0fz8z4de937oodFINT9Avs/RBjSQCfa0bm
wsvp0hiVqwsDjLqcJGfHLiU=
=rIZd
-----END PGP SIGNATURE-----

--------------enig552CC1EF3799985565A580EC--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?444CDFFF.5020401>