Daily Ports+ #3: Ways to Specify Packages ― 2008年01月18日 13時50分51秒
The number of ports I need to upgrade is rather small today.
# ports+ test
# upgrade git-18.104.22.168 to git-22.214.171.124
# upgrade eclipse-3.2.2 to eclipse-3.2.2_1
# upgrade cups-base-1.3.5_1 to cups-base-1.3.5_2
Because the list is so small, I would like to list all of packages. Therefore, I use "-make-config-recursive" but not "-make-config."
There three forms to specify packages are most convenient ones. One with <category>/<portname> style. One include /usr/ports. One with /var/db/pkg.
# ports+ -make-config-recursive -j3 /usr/ports/devel/git \
When package is specified with fullpath, you can use wildcard like /var/db/pkg/p5-* to upgrade all perl modules /var/db/pkg/rubygem-* to upgrade all rubygem packages. This is most convenient way for upgrading. It is important to note that this format specifies with existing versions. That will trigger upgrades to newer versions. You don't have to find version numbers of new packages.
<category>/<portname> is less convenient for upgrading. You will often use this form when installing new ones.
When using shell auto-completion, you need to delete the ending slash. GNU make does not treat /usr/ports/java/eclipse/ as /usr/ports/java/eclipse. Ports+ will fails to find a way to install java/eclipse if you add tailing slash like /usr/ports/java/eclipse/.