| (1) | Do not install packages as root/super-user. Although some components may
have setuid executables, few must be owned by root. These are best
changed manually when the security implications are understood. |
| (2) | Choose a package root directory and cd to it. This will be a local work
area for all packages.
|
| (3) | These instructions bypass the click to download package links on the
download site. If you already clicked, or if your system does not have
curl(1), hurl(1), lynx(1) or wget(1) then use the alternate instructions
for (3),(4),(5) in plan B below. Plan B installs the hurl(1)
script which works with ksh and modern bash. The top level URL is:
URL=http://www.research.att.com/sw/download |
| (4) | If the bin/package script does not exist then run:
test -d bin || mkdir bin
url=$URL/package
(wget -O - $url||curl -L $url||hurl $url) > bin/package
chmod +x bin/package |
| (5) | Determine the list of package names you want from the download site, then
use the package(1) command to do the actual download:
bin/package authorize "NAME" password "PASSWORD" \
setup source $URL PACKAGE ...
(Refer to the AUTHORIZATION paragraph on the main download page for
NAME/PASSWORD details.) This downloads the closure of the latest
source package(s); covered and up-to-date packages are not downloaded again unless
package force ... is specified. Package content is verified using md5sum.
If the package root will contain only one architecture then you can install in bin and
lib instead of arch/HOSTTYPE/bin and arch/HOSTTYPE/lib by running this
instead:
bin/package authorize "NAME" password "PASSWORD" \
flat setup source $URL PACKAGE ...
To update the same packages from the same URL run:
bin/package setup source |
| (6) | Build and install; all generated files are placed under arch/HOSTTYPE
($INSTALLROOT), where HOSTTYPE is the output of bin/package (with no
arguments.) name=value arguments are supported; CC and debug=1 (compile
with -g instead of -O) are likely candidates. The output is written to
the terminal and captured in $INSTALLROOT/lib/package/gen/make.out:
bin/package make |
| (7) | List make results and interesting errors:
bin/package results
Run the regression tests:
bin/package test
List test results and errors:
bin/package results test |
| (8) | The generated binaries are position independent, i.e., they do not
contain hard-coded paths. However, commands with related files, like
file(1) and nmake(1), require the path of the bin directory to be
exported in PATH. |
| (9) | You can run the binaries directly from the package root, or you can
install them in a public root after you are satisfied with the make and
test actions (requires the AT&T nmake(1) command):
bin/package flat install DIRECTORY PACKAGE
This will install in DIRECTORY/bin and DIRECTORY/lib. If you want to
preserve the arch/HOSTTYPE hierarchy under DIRECTORY then omit the
flat argument. If you don't have nmake(1) then the following will do a
flat install:
cd $INSTALLROOT
cp -p -r bin lib include DIRECTORY |
| (10) | To summarize, after the first time the download, build, and test cycle
for the latest source release is:
bin/package setup source
bin/package make
bin/package test |