Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 Oct 2003 14:34:03 +0100
From:      Matthew Seaman <m.seaman@infracaninophile.co.uk>
To:        carmoda <freebsd.org@carmoda.com>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: errors with dependant packages while installing ports.
Message-ID:  <20031020133402.GA9712@happy-idiot-talk.infracaninophile.co.uk>
In-Reply-To: <3F946A80.3050208@carmoda.com>
References:  <3F946A80.3050208@carmoda.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--Qxx1br4bt0+wmkIi
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Mon, Oct 20, 2003 at 11:06:40PM +0000, carmoda wrote:

> I seem to get failures just about every time i try to install anything:
>=20
> in particular errors with dependant packages:
>=20
> "An older version of whatever/whatever is already installed..."
>=20
> now, on attempts to update any of these dependancy packages i break my=20
> system... so. do i just accept i cannot update or run certain things, or=
=20
> is there some trick t this i am missing...?
>=20
> please 'CC' me as i am on digest mode...

This is the main problem that portupgrade(1) solves: package
dependency ordering.  Generally what happens is that a port looks for,
say, a particular version of a shared library.  If you've got an older
version of the shared library installed, the test to find the
particular shared library will fail, and the ports system will try and
re-install the dependent package.  As you've discovered, trying to
install a package on top of an older version of itself generates
errors.

The trick is to update the dependencies first, and then the ports that
depend on them.  It's also a good rule of thumb to take all your
ports/packages from a consistent source: ie. always use the packages
directory for your particular release from the FTP servers, or always
install from a freshly cvsup(1)'d ports tree.  That isn't a hard and
fast rule, but it generally helps you to avoid this sort of version
mismatch thing if you stick to it as closely as you can.

Note that sometimes a port providing a particular shared library may
have any number of dependents, and they can be broken by your updating
the shared library.  The gettext port seems to be a prime offender in
this reguard, as witnessed by the regular floods of messages to this
list about 'libintl.so.N not found'.  portupgrade(1) gets around that
shared library problem by keeping a copy of old version of shlibs in
/usr/local/lib/compat/pkg and there will generally be a heads-up
e-mail to freebsd-ports@... when some particularly important port gets
updated.

	Cheers,

	Matthew

--=20
Dr Matthew J Seaman MA, D.Phil.                       26 The Paddocks
                                                      Savill Way
PGP: http://www.infracaninophile.co.uk/pgpkey         Marlow
Tel: +44 1628 476614                                  Bucks., SL7 1TH UK

--Qxx1br4bt0+wmkIi
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (FreeBSD)

iD8DBQE/k+RKdtESqEQa7a0RAl3PAJ9P+rAW982kB3dMHB5By1IyGrUJCgCggpzZ
uttSZxZqPHf0Y6Uuu9nSxLk=
=jTFT
-----END PGP SIGNATURE-----

--Qxx1br4bt0+wmkIi--



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