Go to the first, previous, next, last section, table of contents.


5. Installation

Currently the only supported method of installing components of Geek Gadgets is to use the shell. Therefore you should carefully read the following sections for details and a step by step instruction. Note that not all steps may be applicable to your particular operating system.

5.1 Step 1: Selecting location for installing packages

Before installing Geek Gadgets, you need to select a directory which will be the root of the binary tree. All the binary archives will be extracted relative to that directory.

For AmigaOS, this directory is an AmigaOS assign "GG:" which can be assigned to point to any location that you desire. For BeOS, this directory is /boot/apps/GeekGadgets, which should be a symbolic link to some other directory on your system.

Using AmigaOS assigns or symbolic links allows you to keep around multiple versions of Geek Gadgets and switch between them by simply flipping the assign or symbolic link.

All of the Geek Gadgets packages that look for files in specific places (absolute path names), look for files relative to their configured root directory (/gg for AmigaOS, /boot/apps/GeekGadgets for BeOS). Of course packages that use search paths will also use the value of the PATH environment variable as set by the user.

For BeOS do not attempt to replace parts of /boot/beos/bin with files from Geek Gadgets. That is completely untested and bad things could happen. For example, the Geek Gadgets port of bash is not tested as a potential replacement for /boot/beos/bin/sh and could even cause your system to become unbootable if you try replacing the supplied shell with the Geek Gadgets version.

5.2 Step 2: Extract the content of the packages

Packages are currently distributed as '.tgz' archives. This is short for '.tar.gz', which is a tar archive that has been compressed with GNU gzip. For AmigaOS, if you do not already have a previous version of Geek Gadgets installed, you can use the BOOT.lha archive to install the necessary binaries to deal with '.tgz' archives.

Note: On AmigaOS, be careful about using any non-GG "ixemul free" versions of "tar" unless you are absolutely certain that they correctly handle symbolic links and also preserve file datestamps accurately.

Once you have selected and created an appropriate root directory for the installation, you need to extract the contents of the packages you wish to install (everything is archived relative to the configured root directory).

For AmigaOS, to install a full copy of Geek Gadgets using the BOOT.lha archive, assuming that your GG archives are in dh0:junk/amiga-bin and the boot archive is dh0:junk/BOOT.lha, do the following, with the paths modified appropriately for your local needs:

        (For AmigaOS)

        > makedir dh0:GG
        > assign GG: dh0:GG
        > cd GG:
        > lha -mraxe x dh0:junk/BOOT.lha
        > assign LIBS: GG:Sys/Libs add
        > path GG:bin add
        > assign bin: GG:bin
        > sh
        $ for file in /dh0/junk/amiga-bin/*.tgz
        do
        echo "=== $file ==="
        tar -xzf $file
        done

        (For BeOS)

        $ cd /boot/apps/GeekGadgets
        $ for tgz in /path/to/geekgadgets/distribution/*bin.tgz
        $ do
                echo "=== $tgz ==="
                tar -xpzf $tgz
        done

On AmigaOS, ignore any "Broken pipe - gzip" messages, they are annoying but harmless.

If you want to install only a subset, you can run the "tar -xpzf" command with only those archives as input, one archive at a time.

For example the following illustrates populating the AmigaOS Geek Gadgets binary tree with the minimum set of packages that we would recommend for doing serious C or C++ development. Replace -X.X- with the appropriate version numbers for the current release:

	tar -xzf GG-misc-bin.tgz
	tar -xzf binutils-X.X-bin.tgz
	tar -xzf bison-X.X-bin.tgz
	tar -xzf diffutils-X.X-bin.tgz
	tar -xzf fd2inline-X.X-bin.tgz
	tar -xzf fifolib-X.X-bin.tgz
	tar -xzf fileutils-X.X-bin.tgz
	tar -xzf findutils-X.X-bin.tgz
	tar -xzf flex-X.X-bin.tgz
	tar -xzf gcc-X.X-bin.tgz
	tar -xzf grep-X.X-bin.tgz
	tar -xzf gzip-X.X-bin.tgz
	tar -xzf ixemul-X.X-bin.tgz
	tar -xzf ixemul-X.X-env-bin.tgz
	tar -xzf ixemul-X.X-inc-bin.tgz
	tar -xzf libamiga-bin.tgz
	tar -xzf libg++-X.X-bin.tgz
	tar -xzf libm-X.X-bin.tgz
	tar -xzf libnix-X.X-bin.tgz
	tar -xzf make-X.X-bin.tgz
	tar -xzf patch-X.X-bin.tgz
	tar -xzf pdksh-X.X-bin.tgz
	tar -xzf sed-X.X-bin.tgz
	tar -xzf sh-utils-X.X-bin.tgz
	tar -xzf tar-X.X-bin.tgz
	tar -xzf termcap-X.X-bin.tgz
	tar -xzf textutils-X.X-bin.tgz

The following should be optional, unless you want to remake a "configure"
file, want EMACS, or currently need a curses library.

	tar -xzf autoconf-X.X-bin.tgz
	tar -xzf emacs-X.X-bin.tgz
	tar -xzf ncurses-X.X-bin.tgz

5.3 Step 3: Select an appropriate ixemul version (AmigaOS only)

You may want to examine the ixemul.library flavors in GG:Sys/Libs and select one more appropriate for your specific machine. The following flavors are available at the moment:
ixemul flavor target CPU target FPU
000 68000 / 68010 none
020 68020 / 68030 none
020fpu 68020 / 68030 68881 / builtin
040 68040 / 68060 none
040fpu 68040 / 68060 builtin

Some flavors apply for ixnet.library (networking support for ixemul) too.

As an example, A4000 users might want to remove the default ixemul.library (68000) and ixnet.library (68000) and copy ixemul040fpu.library to ixemul.library and ixnet040.library to ixnet.library.

For details on ixemul.library, see section 6.2.3 ixemul.

5.4 Step 4: Install the AmigaOS include files

There are some files that we cannot yet distribute with the ftp version of Geek Gadgets for legal reasons, such as the AmigaOS include files (required for AmigaOS specific programming), or the AmigaOS fd files (used by fd2inline to generate the inline files). These files are included on CD-ROM versions because we have written permission to include them. If you install Geek Gadgets from something other than a Geek Gadgets CD, you will need to copy the AT include files to the GG:os-include directory, creating a directory hierarchy like the following:

	os-include/clib
	os-include/datatypes
	os-include/devices
	os-include/diskfont
	os-include/dos
	os-include/exec
	...

Sometimes these files contain errors or other problems that need to be fixed before they can be used with Geek Gadgets. These patches are contained in the "non-GG-patches-src.tgz" file and have already been applied in the CD-ROM releases. For ftp releases of Geek Gadgets, you should get this file and extract it in a temporary location with:

	gzip -d non-GG-patches-src.tgz
	tar -xvf non-GG-patches.tar

This will create a directory called non-GG-patches, which will have individual patch files that can be applied with the "patch" program or by hand editing (not recommended) the affected files. See each patch file for specific directions and an explanation of the patch.

5.5 Step 5: Set some environment variables

For AmigaOS you should ensure that you have an environment variable called HOME, which should point to a local directory that can be used to contain "reconfiguration scripts" that many tools look for. As an example, the following is a useful definition for $HOME/.inputrc:

  # My ~/.inputrc file is in -*- text -*- for easy editing with Emacs.
  #
  # Notice the various bindings which are conditionalized depending
  # on which program is running, or what terminal is active.
  #

  # In all programs, all terminals, make sure this is bound.
  "\C-x\C-r": re-read-init-file

  # Amiga console specials

  "›A": previous-history
  "›B": next-history
  "›C": forward-char
  "›D": backward-char

Please consult your AmigaOS DOS Manual on how to set environment variables.

For BeOS, you may want to check the settings of the USER and GROUP variables in your ~/config/boot/UserSetupEnvironment file, as well as the BEDEBUG and MALLOC_DEBUG variables. Here are some possible settings:

  export USER=fnf
  export GROUP=geek
  export BEDEBUG=true
  export MALLOC_DEBUG=10

On BeOS there are also some variables that are useful to set in your ~/.profile file. Here are some suggestions. Set as appropriate for your environment:

  # Setting TERM in config/boot/UserSetupEnvironment has no effect.
  export TERM=beterm
  export CVSROOT=:pserver:fnf@cvs.ninemoons.com:/cvsroot
  export EDITOR=emacs

5.6 Step 6: Set a large enough stack size (AmigaOS only)

Many Geek Gadgets tools require large amounts of stack space. Some of them have been compiled to automatically grow the stack as necessary, but the work to build all of them with automatic stack expansion is not yet complete. Thus you need to take care to set an appropriate amount of stack. One way to do this is to add a line like:

stack 200000

to your S:Stack-Startup file. There are various opinions about what the minimum stack size should be. You could get away with as little as 50K in some circumstances, or need over 500K in others. Random crashes, irreproducible behavior, machine lockups, and other such problems are typical symptoms of setting the stack too low.

5.7 Step 7: Add Geek Gadgets to your environment

Prior to using Geek Gadgets, you need to run a small script that sets up some things that are needed for proper operation.

For AmigaOS you need to modify your S:User-Startup file to assign GG: to the root of your Geek Gadgets installation tree and then to execute GG:Sys/S/GG-Startup at boot time. Once you reboot, Geek Gadgets should be ready for use.

For BeOS you should arrange to "source" /boot/apps/GeekGadgets/etc/gg-setup.sh either from your /boot/home/.profile file, or else manually from your shell each time you open a terminal window. I.E. add the following to your .profile or execute it manually:

source /boot/apps/GeekGadgets/etc/gg-setup.sh


Go to the first, previous, next, last section, table of contents.