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>