$Id: macports.txt 1875 2008-06-19 22:05:27Z mjs $
$ ./configure --prefix=/Ports --with-tclpackage=/Ports/share/macports/Tcl
Without --with-tclpackage, parts of the MacPorts sytem gets installed into /Library/Tcl/macports1.0, which makes it difficult to run multiple version of MacPorts simultaneously (more info).
You may also want to
$ sudo ln -s /Ports/share/macports/Tcl/macports1.0 /Library/Tcl/macports1.0
so that "inferior software" can find the system's MacPorts installation (more info).
Recently, a lot more ports seem to not be specifying their dependencies correctly. This applies to several of the dependencies of subversion.
If you have trouble with ncursesw, try installing that by itself, and then installing subversion. (You may also have success installing sqlite3 first.)
If you have trouble installing curses, install coreutils first.
It may also help to install with verbose mode (-d) turned on--this may
give some clue as to the cause of your problem.
An "installed" port is compiled and ready to be activated, but is not necessarily "active"--only one version/variant of the same port can be "active" at the same time. For example, different versions (e.g. 1.2.3, 1.2.4) or variants (e.g. with X11 support, without X11 support) of the same package might be installed at the same time, but only one can be "active".
$ sudo port installed
...
slang @1.4.9_0 (active)
sqlite3 @3.5.1_0
sqlite3 @3.5.2_0
sqlite3 @3.5.3_1
sqlite3 @3.5.4_0 (active)
tiff @3.8.2_1+macosx (active)
...
$ port list installed
This runs the "list" command over the pseudo-portname "installed", which expands to the installed ports. The output looks like this:
...
readline @5.2.007 devel/readline
slang @1.4.9 lang/slang
sqlite3 @3.5.4 databases/sqlite3
...
Other useful pseudo-ports are "active" and "outdated".
$ port installed
This runs the "installed" command, which outputs the installed ports, indicating whether they are active or inactive. The output looks like this:
...
readline @5.2.007_0+darwin_9 (active)
slang @1.4.7_0
slang @1.4.8_3
slang @1.4.9_0 (active)
sqlite3 @3.5.4_0 (active)
...
$ sudo port -c install jed
-c for autoclean mode--removes source/build files after installing (though not the binary package).
Add -d. e.g.
$ sudo port -d install ncursesw
or
$ sudo port -d selfupdate
$ sudo port selfupdate
$ sudo port outdated
$ sudo port -c upgrade outdated
-c to autoclean (remove build files)
(Adding -u to uninstall non-active ports doesn't work out the way you'd expect; it seems that other ports may have been built with dependencies on on the inactive port.)
$ sudo port clean --all installed
Note that this removes build files only; it does not remove "inactive" ports (e.g. older versions, other variants of the package). See below for how to remove inactive ports.
$ sudo port -u uninstall
You might need to add -f (to "force" the uninstall) if other "inactive" ports depend on it, though you might be able to fix this by rebuilding all the dependencies:
$ port -fR upgrade $package
Run:
$ sudo port -v selfupdate
i.e. what packages does a particular package need?
$ sudo port deps $package
i.e. what packages depend on a particular package?
$ sudo port dependents $package
i.e. what are the contents of a particular package?
$ sudo port contents $package