Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 26 Mar 2011 16:58:47 +0000
From:      "b. f." <bf1783@googlemail.com>
To:        "Ron (Lists)" <rg.lists@rzweb.com>
Cc:        freebsd-ports@FreeBSD.org
Subject:   Re: Updating multiple ports with portmaster
Message-ID:  <AANLkTi=ZLQJ80VNvBXrk5Dn2X6BExNHgfwSvtBWGBsQq@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
> I have a questions about the use of portmaster when upgrading multiple
>  ports and how to correctly use wildcards.
>
>  For example, I have this from pkg_version:
>
>  p5-Digest-SHA-5.50                  <   needs updating (port has 5.61)
>  p5-IO-Socket-SSL-1.38               <   needs updating (port has 1.39)
>  p5-IPC-Cmd-0.68                     <   needs updating (port has 0.70)
>  p5-Math-BigInt-1.99                 <   needs updating (port has 1.993)
>  p5-Module-Build-0.3607_1            <   needs updating (port has
>  0.3624)
>  p5-Module-CoreList-2.42             <   needs updating (port has 2.45)
>  p5-Module-Load-Conditional-0.38     <   needs updating (port has 0.44)
>  p5-Params-Check-0.26_1              <   needs updating (port has 0.28)
>  p5-Test-Harness-3.22                <   needs updating (port has 3.23)
>  p5-URI-1.56                         <   needs updating (port has 1.58)
>
>  When I was using portupgrade, I could type...
>
>  portupgrade p5-*
>
>  ...and it would upgrade only the ports that needed upgrading and
>  dependancies.  But if I try...
>
>  portmaster p5-*
>
>  ===>>> The following actions will be taken if you choose to proceed:
>         Re-install p5-Digest-SHA1-2.13
>         Re-install p5-IO-Compress-2.033
>         Re-install p5-Compress-Raw-Bzip2-2.033
>         Re-install p5-Compress-Raw-Zlib-2.033
>         Re-install p5-HTML-Tagset-3.20
>         Re-install p5-HTML-Parser-3.68
>         Upgrade p5-Digest-SHA-5.50 to p5-Digest-SHA-5.61
>         Re-install p5-Mail-SpamAssassin-3.3.1_3
>         Re-install p5-Archive-Tar-1.76
>         Re-install p5-IO-Zlib-1.10_1
>         Re-install p5-IO-String-1.08
>         Re-install p5-Package-Constants-0.02
>         Re-install p5-Encode-Detect-1.01
>         Re-install p5-ExtUtils-CBuilder-0.2802_1,1
>         Upgrade p5-IPC-Cmd-0.68 to p5-IPC-Cmd-0.70
>         Re-install p5-Locale-Maketext-Simple-0.21
>         Upgrade p5-Module-Load-Conditional-0.38 to
>  p5-Module-Load-Conditional-0.44
>         Upgrade p5-Module-CoreList-2.42 to p5-Module-CoreList-2.45
>         Re-install p5-Module-Load-0.18
>         Upgrade p5-Params-Check-0.26_1 to p5-Params-Check-0.28
>         Re-install p5-version-0.88
>         Upgrade p5-Module-Build-0.3607_1 to p5-Module-Build-0.3624
>         Install devel/p5-CPAN-Meta-YAML
>         Re-install p5-ExtUtils-Install-1.54
>         Re-install p5-ExtUtils-ParseXS-2.22.03
>         Install devel/p5-Module-Metadata
>         Install devel/p5-Perl-OSType
>         Upgrade p5-Test-Harness-3.22 to p5-Test-Harness-3.23
>         Re-install p5-Net-DNS-0.66_1
>         Re-install p5-Net-IP-1.25_2
>         Re-install p5-IO-Socket-INET6-2.65
>         Re-install p5-Socket6-0.23
>         Re-install p5-Digest-HMAC-1.02
>         Re-install p5-Mail-Tools-2.07
>         Re-install p5-TimeDate-1.20,1
>         Re-install p5-NetAddr-IP-4.038
>         Upgrade p5-IO-Socket-SSL-1.38 to p5-IO-Socket-SSL-1.39
>         Re-install p5-Net-SSLeay-1.36
>         Re-install p5-libwww-5.837
>         Upgrade p5-URI-1.56 to p5-URI-1.58
>         Re-install p5-YAML-Tiny-1.44
>         Re-install p5-Time-HiRes-1.9721,1
>         Re-install p5-Locale-gettext-1.05_3
>         Upgrade p5-Math-BigInt-1.99 to p5-Math-BigInt-1.993
>         Re-install p5-ExtUtils-MakeMaker-6.56
>         Re-install p5-MIME-Base64-3.13
>         Re-install p5-YAML-0.72
>         Re-install p5-Error-0.17016
>         Re-install p5-Net-DNS-Resolver-Programmable-0.003
>         Re-install p5-Mail-SPF-2.007
>
>  ...it wants to upgrade and reinstall every port that I have installed
>  that begins with p5-*
>
>  Is there a way to get portmaster to behave like portupgrade did and
>  only upgrade what needs to be upgraded?
>

This is documented in the portmaster(1) manpage.  You can use -a to
update all ports that need to be updated.  To update a subset of
those, you could  (1) use -i with -a or a glob (by the way, the *
isn't needed with portmaster -- see the portmaster(1) manpage), and
respond in the negative to prompts to update or re-install those you
wish to exclude; (2) use -x with -a or a glob, to exclude certain
ports; or (3) feed portmaster a list of globs that match only those
ports that you want to be updated.  In your case, for (3), if you only
wanted to update those p5-* ports that need to be updated, but not
other ports that need to be updated, you could use something like:

pkg_version -qos p5- -l '<' | xargs portmaster

Of course, since some new versions of p5-* ports may depend upon new
versions of other, non p5-* ports, updating only the p5-* ports isn't
guaranteed to work.

b.



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