I've built crux without any optional packages and am now trying to add several contributed packages and am figuring out which of the opt packages I need. Running with the -r option, adds every Pkgfile found below the current directory, which seems fairly useless. I see two choices. First is to have a small wrapper script, like this: cd /etc/ports for PORT in \ opt/libxml2 contrib/lighttpd \ opt/php \ opt/libjpeg opt/libpng opt/libgd opt/freetype contrib/php-gd do cd ${PORT}; pkgmk -d -i; cd ../.. done The other idea (admittedly more SVR4-like) is to create a directory tree of the pkgs I want to install, perhaps with symlinks back tot he /usr/ports directories. This suffers from the fact that pkgmk -r doesn't seem to follow directory symlinks, so I'd have to create the tree with use lndir, assuming crux had lndir by default. :( I've also tried enhancing the above script to scan each Pkgfile for a "Depends on" line and installing those packages first, but I've discovered that the line is usually missing or inaccurate. :( BTW, the good news for the community is that I'm doing this in VMware Player, and am updating a wiki page as I go. The page is http://crux.nu/Wiki/VMwarePlayer , and it is referenced by http://crux.nu/Wiki/CruxOnVMs, which I created following the style of the Crux on Laptops page.