On 21/06/2012 21:41, Christopher J. Ruwe wrote: > In portage, there is a knob package_provided meaning that the package > referenced as being provided is installed externally and that portage > does not need to resolve said dependancy, as it is already there. > > I do not know of a similar FreeBSD-construct, but have really wished for > something alike to stop the pulling in of the teTeX-tree.
Ports sort of does this automatically. Some of the time. It depends on how the port is written. If you've got a dependency line like: RUN_DEPENDS= fc-cache:${PORTSDIR}/x11-fonts/fontconfig or LIB_DEPENDS= expat:${PORTSDIR}/textproc/expat2 then in the first instance the ports will check for the existence of fc-cache as an executable on $PATH, and in the second instance for libexpat.so as a shared library known to ld.so(1). There's nothing to say that either of those files should have been installed from the ports, and you can install quite happily against a non-ports-installed dependency. Ports management software like portmaster(8) or portupgrade(8) can get confused by this and may try and install the dependency from ports in some circumstances. However, if you've got a dependency that looks like so: BUILD_DEPENDS= p5-BerkeleyDB>0:${PORTSDIR}/databases/p5-BerkeleyDB ie. with > or >= and a version number, then the ports checks for the installation of a package of at least the specified version. So in this case, the ports has to be used to fulfil the dependency. (Perl module dependencies are pretty much always done in this form nowadays in order to avoid having to use ${SITE_PERL} in dependency lines.) Cheers, Matthew -- Dr Matthew J Seaman MA, D.Phil. PGP: http://www.infracaninophile.co.uk/pgpkey
signature.asc
Description: OpenPGP digital signature