3. System Requirements

In this section you will see what hardware and software requirements must be met before you can install Ingres. The ingres user, owner of the installation, makes a debut, too.

3.1. Hardware

The minimal hardware capable of running Ingres is:

Note

This is the minimum recommended configuration. Ingres, like most other RDBMSs, is a fairly resource-hungry application. While your development system will probably run beatifully on a 166 MHz Pentium with 64 Mb RAM, a live system with potentially many concurrent users would require more iron.

3.2. Software

The following software must be present for Ingres to run:

Working glibc versions:

glibc SDK Full Version
glibc 2.07 (eg RedHat 5.2) Yes. No.
glibc 2.1 (eg RedHat 6.0) Yes but you need the RedHat compatibility packages and an Ingres patch to be able to use the forms-based development tools. See Forms-Based Development Tools for details. Yes.
glibc 2.1.1, 2.1.2 (eg RedHat 6.1) No. Yes.
glibc 2.1.3 (eg RedHat 6.2) See glibc 2.1. Yes.

If you are unsure of the version of your glibc, check the /lib directory:

# ls -l /lib/libc*so
        

The output should be something like:

-rwxr-xr-x  ...  /lib/libc-2.1.3.so
        

The version of my glibc is apparently 2.1.3.

Note

There is no guarantee that if your system meets the above requirements you will be able to install Ingres on it. Sticking to a distribution that is explicitly mentioned in the release notes of your Ingres version is the best way to avoid installation problems.

3.3. Kernel Parameters

The default settings of the Linux kernel are adequate for a development Ingres environment. For a live system, however, probably to increase the size of the database cache(s), you may want to change the built-in value of the SHMMAX parameter. This parameter sets the maximum size of a shared memory segment. By default, it is 32 Mb which allows for a somewhat lesser buffer cache.

You have two choices to change the value of SHMMAX:

As root, simply echo the new value into /proc/sys/kernel/shmmax:

#echo 83886080 > /proc/sys/kernel/shmmax
        

In the example above, we set the value of SHMMAX to 80 Mb. The change takes effect immediately but after a reboot, the original value is restored.

The other possibility is to change SHMMAX's default value in the kernel source (the relevant header file is /usr/src/linux/include/asm/shmparam.h if you have installed the source). In this case, you may also have to modify other parameters in the file, then rebuild the kernel. I suggest you do it only if you know what you are doing. For information on how to configure and compile the kernel see The Linux Kernel HOWTO by Brian Ward.

3.4. The ingres User and II_SYSTEM

We need an account called ingres to install and run Ingres. He will own the installed software and only he can perform system management tasks such as starting and stopping Ingres.

The ingres user may belong to any group. In the following example, we will create a separate group for him.

The verified (therefore, recommended) shell for the ingres user is bash. All examples in this paper apply to this shell. If you use some other shell (which is probably just as fine), take into account the differences in syntax.

The binaries, shared libraries, configuration files and other files which make up the Ingres software, will be located in a tree structure after installation. You will set the root of this tree via the shell variable II_SYSTEM in the environment of the ingres user (to be exact, the root directory will be $II_SYSTEM/ingres).

If you plan to install the whole software, either the SDK, or the full version, make sure you have the following free space under $II_SYSTEM/ingres:

SDK Full Version
70 Mb 90 Mb

10 Mb extra free space is needed during installation.

Tip

If this is the first time you install Ingres (I hope you start with the SDK, not a live system), I suggest you keep the whole installation (the Ingres software, databases, backups, sort areas, etc.) in one place so that you can find every component easily. If you have at least 150-200 Mb free space under $II_SYSTEM/ingres and you do not plan to create large databases (at least, not for some time), your system will work without problems. Should you at any later time run out of space, you will always have the possibility to relocate some of your databases to other partitions.

In the following, I will assume that II_SYSTEM is set to /opt.

Logging in as root, execute the tasks mentioned above:

# useradd -d /opt/ingres -s /bin/bash ingres
# chmod 755 /opt/ingres
# passwd ingres
        

The useradd command creates a group with the same name as the new user if you do not specify the group on the command line. It also creates the user's home directory.

We set the home directory of ingres to /opt/ingres ($II_SYSTEM/ingres). This is not mandatory but convenient.

Finally, append the following lines to the .bashrc file of ingres:

umask 022
export II_SYSTEM=/opt
export PATH=$II_SYSTEM/ingres/bin:$II_SYSTEM/ingres/utility:$PATH
export LD_LIBRARY_PATH=/lib:/usr/lib:$II_SYSTEM/ingres/lib
export ING_EDIT=/bin/vi
if [ -n "$DISPLAY" ]
then
        export TERM_INGRES=vt100fx
else
        export TERM_INGRES=vt100f
fi
        

ING_EDIT sets the editor that can be called from Ingres utilities or application programs. Naturally, you can use any editor, not just vi. You must, however, specify the whole access path to the program. (If you stick to vi, check if it is under /bin: it may be somewhere else in your system.)

Note

If the EDITOR shell variable is set, it overrides the value of ING_EDIT.

Setting TERM_INGRES is necessary for the terminal to work properly. Forms-based Ingres utilities, such as the installer itself, and also applications created with traditional Ingres development tools (ABF, Vision) make heavy use of function keys. The .bashrc above sets TERM_INGRES according to the terminal type (X, or VT100-like).

These settings must be included in the .bashrc file of every Ingres user.