Using GNU tar
For Unix software that
does not involve resource forks or creator types,
gnutar
and
gzip
can be used to create a .tar.gz
or .tgz
tarball. This type of tarball
preserves paths, permissions, symbolic links, as well as
authentication and compression. Tools to uncompress the tarball are
available for many platforms.
The automated creation of such a tarball can be worked into the same
makefile
that is used to build the software.
Preservation of resource forks is tricky, but possible, in this
method. For example, the following command preserves Macintosh
resource forks (where foo/
is a directory):
$ tar -pczf foo.tgz foo/
Every good tarball has a single top-level directory that contains everything else. You should not create tarballs that dump their contents into the current directory. To install software packaged this way, use the following command:
$ tar -pxzf foo.tgz
This simply unpacks the tarball into the file and directory structure
that existed prior to packaging. Basically, it reverses the packing
step. This method can be used to write files to the appropriate
places on the system, such as /usr/local/bin
,
/usr/local/lib
,
/usr/local/man
,
/usr/local/include
, and so on.
Warning
When creating packages, you should keep your package contents out of
directories such as
/etc
, /usr/bin
,
/usr/lib
, /usr/include
, or any top-level directory reserved for the operating system, since you have no way of knowing what a future software update or Mac OS X upgrade will include. For example, ...
Get Mac OS X Panther for Unix Geeks, Second Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.