Portmaster questions (Was: Re: Using Portupgrade?)

Miroslav Lachman 000.fbsd at quip.cz
Mon Aug 4 09:36:37 UTC 2008

Alex Goncharov wrote:
> ,--- You/Jeremy (Sun, 3 Aug 2008 19:26:18 -0700) ----*
> | I'd start by ceasing use of portupgrade.  Try Doug Barton's portmaster,
> | which is in ports/ports-mgmt/portmaster.  It's an extensive shell
> | script, and does not require ruby. 
> Over the last couple of months, I've made a few shy attempts to switch
> from `portupgrade' to 'portmaster', but every time I try it, I find
> something that keeps me using the former.
> Don't remember everything of that sort but here are a couple of things
> I would like to ask portmaster users' opinion and advice about:
> 1. I see a significant difference in the time it takes to get the same
>    information using the two tools:
> ------------------------------   
> # time portversion -v | wc -l
>      473
> real    0m3.772s
> user    0m2.462s
> sys     0m1.114s
> # time portmaster -L | wc -l
>      488
> real    0m50.042s
> user    0m29.762s
> sys     0m15.470s
> ------------------------------   
>    I run `portversion' a lot, and this kind of performance difference
>    is one argument for sticking with `portupgrade'.

You do not have to run portversion or portmaster or any other 3rd party 
tool to check versions of installed ports. Use pkg_version which is 
included in base system and then you are independent of port management 
tools changes.
portversion is using INDEX, portmaster not.
pkg_version (by default) do not use INDEX, but have option to use it and 
then become clear winner (in speed):

portmaster -L
Usr: 11.431s  Krnl: 4.179s  Totl: 0:15.96s

portversion -v
Usr: 2.076s  Krnl: 0.615s  Totl: 0:02.75s

pkg_version -v
Usr: 9.803s  Krnl: 3.183s  Totl: 0:13.23s

## using INDEX, see man pkg_version for details ##
pkg_version -vI	
Usr: 0.233s  Krnl: 0.041s  Totl: 0:00.31s

With INDEX you can see results almost immediately:

# time pkg_version -vIL =
amavisd-new-2.5.4,1           <   needs updating (index has 2.6.1,1)
awstats-6.7,1                 <   needs updating (index has 6.8_1,1)
courier-authlib-base-0.60.6   <   needs updating (index has 0.61.0)
courier-authlib-mysql-0.60.6  <   needs updating (index has 0.61.0)
mod_python-3.3.1              <   needs updating (index has 3.3.1_1)
nmap-4.62                     <   needs updating (index has 4.68)
openvpn-2.0.6_8               <   needs updating (index has 2.0.6_9)
py25-docutils-0.4             <   needs updating (index has 0.5)
py25-pygments-0.9             <   needs updating (index has 0.10)
subversion-python-1.4.6_2     <   needs updating (index has 1.5.1)
trac-0.10.4_1                 <   needs updating (index has 0.11_2)
trac-ctxtnavaddplugin-1.1.r1  <   needs updating (index has 1.1.r1_2)
trac-iniadmin-0.1             <   needs updating (index has 0.1_2)

Usr: 0.227s  Krnl: 0.036s  Totl: 0:00.27s  CPU: 92.5%

As I had problems with portupgrade's handling of dependencies, I am 
converted to portmaster.
Only one feature that I am missing in portmaster is ability to "do 
something" before / after application install / upgrade (eg: restart of 
daemon, directory permission setting, backup of configs etc.)

Miroslav Lachman

More information about the freebsd-stable mailing list