Date: Fri, 29 Oct 2004 15:10:14 +0100 From: Matthew Seaman <m.seaman@infracaninophile.co.uk> To: Petre Bandac <petre.bandac@rdsnet.ro> Cc: freebsd-questions@freebsd.org Subject: Re: ports conflict Message-ID: <20041029141014.GB47544@happy-idiot-talk.infracaninophile.co.uk> In-Reply-To: <20041029160219.5c1ac7ee@xxl.rdsbv.ro> References: <20041029134329.13b0f2d3@xxl.rdsbv.ro> <418222D9.6060409@locolomo.org> <20041029160219.5c1ac7ee@xxl.rdsbv.ro>
next in thread | previous in thread | raw e-mail | index | archive | help
--K8nIJk4ghYZn606h Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Oct 29, 2004 at 04:02:19PM +0300, Petre Bandac wrote: =20 > I get this error when portupgrading amavisd-new >=20 > xxl# pkg_info p5-Mysql-modules-1.2219 > [snip] > Required by: > amavisd-new-20040701 Yes. You've actually found quite a special case in the ports tree, where there are two different ports which are virtually interchangeable. The really cunning thing is that the ports system lets you do that -- when a port lists a dependency on another port, what it checks for at compile time is that a representative file or shlib is present on the system. It doesn't even look at the list of installed ports and try and compare against the pkg names. Thus taking amavisd-new as the example, if you compile it WITH_MYSQL, it has a RUN_DEPENDS as follows: RUN_DEPENDS+=3D ${SITE_PERL}/${PERL_ARCH}/Mysql.pm:${PORTSDIR}/databa= ses/p5-DBD-mysql After expanding all of those Make variables, that means the amavisd-new port checks for the existence of /usr/local/lib/perl5/site_perl/5.8.5/mach/Mysql.pm to fulfil that dependency. The second part of the RUN_DEPENDS line, after the colon, is a /suggestion/ of which port to install to fill the dependency if that is needed. Note that it lists databases/p5-DBD-mysql -- but that on your system, you're using databases/p5-Mysql-modules instead. You don't have to use that particular port. You don't even have to fulfil the dependency using software installed via the ports system. What you will find though is that you will need to use pkgdb(1) to fix up the records for each installed package, as the pkg_install step can't do that automatically. =20 > and also there is another interesting thing: >=20 > xxl# use.perl --help > Usage: > /usr/local/bin/use.perl port -> /usr/bin/perl is the perl5 port > /usr/local/bin/use.perl system -> /usr/bin/perl is the system perl >=20 > perl has the same path for the system and port version Yes. That's so you can always put: #!/usr/bin/perl at the top of any perl script and have it work. If you examine /usr/bin/perl more closely, you'll see that it is infact a symbolic link to whatever the real binary is: % ls -l /usr/bin/perl=20 lrwxr-xr-x 1 root wheel 19 Jul 30 14:18 /usr/bin/perl@ -> /usr/local= /bin/perl Part of what the 'use.perl' script does is setup that link to point to the right place. 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 --K8nIJk4ghYZn606h Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.6 (FreeBSD) iD8DBQFBgk9GiD657aJF7eIRAneJAKCUXLo+L+tIbPZDWQZYX27dADhWxACfQD6G 8F4yVIZqJLl4dr05tGObtws= =QZEe -----END PGP SIGNATURE----- --K8nIJk4ghYZn606h--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20041029141014.GB47544>