# Portmaster - to update 1 port, it wants to install 68 things?!



## chillybsd (Apr 8, 2011)

In the past, I have stuck with packages 100% (*pkg_add -vr* etc).  I am now into using ports.  My ports tree is updated using csup and here's the listing of the packages currently installed on my system:

```
23:52:01 ~ #>pkg_version -v
alpine-2.00_2                       =   up-to-date with port
apache-2.2.17_2                     =   up-to-date with port
apr-devrandom-gdbm-db42-1.4.2.1.3.10  =   up-to-date with port
aspell-0.60.6_5                     =   up-to-date with port
db42-4.2.52_5                       =   up-to-date with port
en-freebsd-doc-20110110             <   needs updating (port has 20110313)
expat-2.0.1_1                       =   up-to-date with port
fontconfig-2.8.0,1                  =   up-to-date with port
freetype2-2.4.4                     =   up-to-date with port
gd-2.0.35_7,1                       =   up-to-date with port
gdbm-1.8.3_3                        =   up-to-date with port
gettext-0.18.1.1                    =   up-to-date with port
gmake-3.81_4                        =   up-to-date with port
help2man-1.39.2                     =   up-to-date with port
jpeg-8_3                            =   up-to-date with port
libiconv-1.13.1_1                   =   up-to-date with port
libltdl-2.4                         =   up-to-date with port
libsigsegv-2.9                      =   up-to-date with port
libtool-2.4                         =   up-to-date with port
libxml2-2.7.8_1                     =   up-to-date with port
m4-1.4.16,1                         =   up-to-date with port
nagios-3.2.3                        =   up-to-date with port
nagios-plugins-1.4.15_1,1           =   up-to-date with port
net-snmp-5.5_4                      =   up-to-date with port
p5-Crypt-CBC-2.30                   =   up-to-date with port
p5-Crypt-DES-2.05                   =   up-to-date with port
p5-Digest-HMAC-1.02                 =   up-to-date with port
p5-Digest-SHA1-2.13                 =   up-to-date with port
p5-Locale-gettext-1.05_3            =   up-to-date with port
p5-Net-SNMP-6.0.1                   =   up-to-date with port
pcre-8.12                           =   up-to-date with port
perl-5.10.1_3                       =   up-to-date with port
php5-5.3.6                          =   up-to-date with port
pico-alpine-2.00_1                  =   up-to-date with port
pkg-config-0.25_1                   =   up-to-date with port
png-1.4.5                           =   up-to-date with port
portmaster-3.6.1                    =   up-to-date with port
postfix-2.4.14,1                    =   up-to-date with port
python27-2.7.1_1                    =   up-to-date with port
screen-4.0.3_10                     =   up-to-date with port
23:52:14 ~ #>
```

When I run *portmaster -aD* (to upgrade the single en-freebsd-doc port) it goes through a whole bunch of prompts for a bunch of other software that's not even installed on my system.  Here's what portmaster returns after all the prompts:

```
===>>> The following actions will be taken if you choose to proceed:
        Upgrade en-freebsd-doc-20110110 to en-freebsd-doc-20110313
        Install textproc/docproj-nojadetex
        Install graphics/netpbm
        Install graphics/jasper
        Install archivers/unzip
        Install graphics/jbigkit
        Install graphics/tiff
        Install graphics/peps
        Install print/ghostscript8
        Install devel/autoconf
        Install devel/autoconf-wrapper
        Install graphics/jbig2dec
        Install print/cups-image
        Install print/cups-client
        Install security/gnutls
        Install security/libgcrypt
        Install security/libgpg-error
        Install print/gsfonts
        Install x11-toolkits/libXt
        Install x11/kbproto
        Install x11/libSM
        Install devel/automake
        Install devel/automake-wrapper
        Install devel/xorg-macros
        Install x11/libICE
        Install x11/xproto
        Install x11/xtrans
        Install x11/libX11
        Install x11-fonts/xf86bigfontproto
        Install x11/bigreqsproto
        Install x11/inputproto
        Install x11/libXau
        Install x11/libXdmcp
        Install x11/libxcb
        Install devel/libcheck
        Install devel/libpthread-stubs
        Install textproc/libxslt
        Install x11/xcb-proto
        Install x11/xcmiscproto
        Install x11/xextproto
        Install x11/libXext
        Install graphics/scr2png
        Install textproc/docbook-410
        Install textproc/iso8879
        Install textproc/xmlcatmgr
        Install textproc/docbook-xml
        Install textproc/docbook-xsl
        Install textproc/docbook
        Install textproc/docbook-420
        Install textproc/docbook-430
        Install textproc/docbook-440
        Install textproc/docbook-450
        Install textproc/docbook-500
        Install textproc/xmlcharent
        Install textproc/docbook-sk
        Install textproc/docbook-xml-430
        Install textproc/docbook-xml-440
        Install textproc/docbook-xml-450
        Install textproc/dsssl-docbook-modular
        Install textproc/fixrtf
        Install textproc/html
        Install textproc/html2text
        Install textproc/jade
        Install textproc/linuxdoc
        Install textproc/p5-XML-Parser
        Install textproc/scr2txt
        Install textproc/xhtml
        Install www/links1
        Install www/tidy

===>>> Proceed? y/n [y]
```
And of course I choose NO.

So, why does portmaster want to install almost 70 extra items to update a single doc port?  I can only assume I'm doing something wrong here!  Thanks for your help ï¿½e


----------



## chillybsd (Apr 8, 2011)

I cannot edit my posts, but I had some more information to give.  I do not have the X window system installed on this machine, and I do not print from it either.


----------



## jb_fvwm2 (Apr 8, 2011)

I chose not to install that port at the present time on at least one machine, for the many-dependency reason.  I maybe erroneously recall there not being so many earlier, or maybe I never had it installed.  OTOH your first post suggests I may be correct.


----------



## wblock@ (Apr 8, 2011)

Those are all dependencies needed to build the documentation.


----------



## chillybsd (Apr 8, 2011)

wblock said:
			
		

> Those are all dependencies needed to build the documentation.


How then do I have it installed now, without all the dependencies?  Is there a way to update it (maybe with a package) without it having to install 70 extra things?  If not then I think I will just remove it from the system so it doesn't bug me every time I look at a pkg_version


----------



## SirDice (Apr 8, 2011)

chillybsd said:
			
		

> How then do I have it installed now, without all the dependencies?


You probably installed it with pkg_add(1).


----------



## wblock@ (Apr 8, 2011)

chillybsd said:
			
		

> How then do I have it installed now, without all the dependencies?



They're build dependencies (which I should have mentioned before).  After you build it, like making a HTML or PDF Handbook from the SGML source, or installing the pre-built doc package, the build dependencies aren't needed.



> Is there a way to update it (maybe with a package) without it having to install 70 extra things?



Updating the package, I suppose.  If you have net access, it's often easier just to read the online versions.


----------



## DutchDaemon (Apr 8, 2011)

You can also use portmaster(8) with the --packages-build and --delete-build-only options. Or just don't install those docs locally.


----------



## sang (Apr 9, 2011)

I resolved this issue for myself by adding the docs package to the list of packages that shouldn't be updated. I use portupgrade though; for portmaster the configuration method is probably different. For portupgrade you modify pkgtools.conf like this:


```
HOLD_PKGS = [
  'bsdpan-*',
  'en-freebsd-doc*',
]
```

bsdpan-* is in by default.


----------



## chillybsd (Apr 9, 2011)

Thanks for the suggestions everyone.  I did some more reading, and now I have two more related questions.

I like the idea of --packages (use packages, but build port if necessary), and also --packages-build since I prefer to use packages (they install SO much faster on my ancient machines - minutes compared to hours).  So my question is whether using these packages options will still give me the same options I get when I *make install clean*, for instance when I installed php5 for apache22.  First I tried to use the package install for php5 but it did not give me the module to use for apache22.  Took me a few days of research to figure out what I was doing wrong, and why the module wasn't anywhere on my system lol   (Yes, I'm pretty new if you can't tell.)  The only way I could get that module was to install php5 using ports, and then to select the option in the menu when it was presented.

My second question is, going forward, how can I determine whether I can use the package, and have it include what I actually need included, like the apache module in the above example?  I would have figured that by default it would be included, but it was not.  I do a lot of reading for most of these things, but it took me literally days of googling the problem I had in the above example.

Ok, I lied, I have 3 questions   My last question is about using portmaster -PP versus pkg_add - what's the difference?

And, as a side note, I have removed the en-freebsd-doc\* from my system ... for now, anyway.  One of my goals is to get it back on and configure apache to serve the docs for me on the lan.  

Thanks again!


----------



## wblock@ (Apr 9, 2011)

chillybsd said:
			
		

> I like the idea of --packages (use packages, but build port if necessary), and also --packages-build since I prefer to use packages (they install SO much faster on my ancient machines - minutes compared to hours).  So my question is whether using these packages options will still give me the same options I get when I make install clean, for instance when I installed php5 for apache22.  First I tried to use the package install for php5 but it did not give me the module to use for apache22.



Packages are prebuilt ports.  The options chosen when the package was built is what you get.  If you have one fast machine, you can use it to build ports with custom options into packages for the other machines.



> My second question is, going forward, how can I determine whether I can use the package, and have it include what I actually need included, like the apache module in the above example?



Unless the package has been built with the options you want, you'll have to use ports or custom-build your own packages.


----------



## chillybsd (Apr 10, 2011)

Thanks wblock, that helps.


----------

