David Southwell wrote:
Basically I do not know how to manage the bsdpan "ports".
On portupgrade -a I get long lists like the one below.
How are items "held"
How do I decide whether ort not to hold them.
Some advice would be appreciated.
I have searched for some guidance on the freebsd web site but not found any.

---> Skipping 'bsdpan-B-Debug-1.10' because it is held by user (specify -f to force) ---> Skipping 'bsdpan-Exporter-5.62' because it is held by user (specify -f to force) ---> Skipping 'bsdpan-constant-1.15' because it is held by user (specify -f to force)

[...]

Well, for starters, you have no choice but to 'hold' a bsdpan package.
The terminology comes from portupgrade, but the same thing applies to
whatever FreeBSD package management system you care to use.

In portupgrade, a 'held' package is one that is listed in the HOLD_PKGS
array in /usr/local/etc/pkgtools.conf. This simply indicates packages that
portupgrade should not attempt to upgrade for whatever reason.

The default setting is:

 HOLD_PKGS = [
   'bsdpan-*',
 ]

ie. any 'bsdpan' package installed via 'perl -MCPAN -e' or by manually compiling the module source. These bsdpan packages are just normal FreeBSD packages in every respect but one: they have no package origin
-- that is, there is no directory in the ports tree for a bsdpan package.
This means that the usual ports system for determining whether a package
is out of date -- comparing either directly or indirectly against the
version number from the port's Makefile -- is impossible to apply and
so ports management software cannot upgrade bsdpan packages.

As a general rule, if there is a ported version of a perl module then
install that, rather than installing the same thing directly from CPAN.
It makes ports management easier and keeping stuff up to date a lot more
effective.  Most of the packages you list are available in the ports
tree.

You also have about 15 ordinary p5 ports listed as 'held' -- I'm not sure
why that should be unless you have deliberately chosen to do that.  Maybe
because they have dependencies on bsdpan packages?  Anyhow, you can probably
sort things out by replacing your bsdpan packages with the ports equivalents
like so:

   portupgrade -o www/p5-libwww  -f bsdpan-libwww-perl-5.813

(That's actually a slight oddity: usually a perl package Foo::Bar::Baz will
appear in ports as mumble/p5-Foo-Bar-Baz)

        Cheers,

        Matthew

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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to