Trading cautiously on new ports

Parv parv at
Sat Feb 25 10:29:44 PST 2006

in message <44001DB9.2000503 at>,
wrote Chandan Haldar thusly...
> This led me to find out how to check out the effects of installing
> a new port or new versions of installed ports (from a portsnap
> fetch or cvsup download) non-destructively by extracting the new
> version of a port <PATH> as a non-root user in a different ports
> directory
> and by attempting to build the new port version with "make" rather
> than with "make install clean".  This way I have no risk of
> upsetting my installed ports (installed as root) since anyway I
> cannot write in /usr/local or /usr/X11R6 etc as the non-root user.
> Once I see that the new port build finds all the installed
> dependency ports in order and the build completes without
> surprises, I rebuild it as root, deinstall the previous port
> version, and install the new one

Alternatively, you could change the owner of $PORTS/distfiles &
$WRKDIRPREFIX to your own user id;  run "make build" in the
directory of desired port.  If successful, run "make install" as
root.  That way, you would save time and unnecessary compilation.

> But is there a clean command for reporting the dependencies (with
> versions) of a new port or a new port version without actually
> attempting to make/install/ or upgrade it?

One way is by parsing 'INDEX*' (see textproc/p5-FreeBSD-Ports) which
lists the dependency of ports.  Other is running 'make
pretty-print-run-depends-list pretty-print-build-depends-list' in a
port directory[0].  Yet another method is to run "make -V

> And may be such a command also shows the versions of these
> dependencies installed on the system at the moment, so that one
> can have a sneak preview of any upgrade trouble brewing?  The
> closest to this I see is "pkg_add -n" but it requires a built
> package.

You need pkg_info(1) command listed in "SEE ALSO" section of
pkg_add(1) man page.  Use the "-r" option to list dependencies of a
installed port/package.

[0] Oddly, pretty-print-run-depends-list target is listing no
    dependencies in print/teTex ...

      This port requires package(s) "" to run.

    ... which is just absurd as indicated by "make -V RUN_DEPENDS" ...

      /misc/local/share/texmf-local/ls-R:/misc/ports/print/tex-texmflocal \
      /misc/local/share/texmf-dist/LICENSE.texmf:/misc/ports/print/teTeX-texmf \
      latex:/misc/ports/print/teTeX-base \
      dvips:/misc/ports/print/dvipsk-tetex \

  - Parv


More information about the freebsd-questions mailing list