Unix Install Routine - Functional Specification

Description

Starting from InterBase V6.0, we'll ship a UNIX-based InterBase kit called "InterBase Client Only" (don't be confused with the InterClient product). The contents of this kit are as follows (might be slightly rearranged later to incorporate the deprecated files, replication, tools etc.) :

HP-UX ( InterBase60_Client_HUS.tar )
interbase/bin/gbak
interbase/bin/gdef
interbase/bin/gfix
interbase/bin/gpre
interbase/bin/iblicense
interbase/bin/isql
interbase/bin/qli
interbase/doc/*
interbase/examples/*       (Note: *.gdb files are not included)
interbase/include/*
interbase/install.ksh         (Note: new install script)
interbase/interbase.msg
interbase/lib/
interbase/lib/gds.sl
interbase/license.txt
interbase/install.txt

Solaris (interbase/* -- package format software)

The same set of the files as for the HP-UX platform (NOTE: library file names are different).

In order for us to install both "InterBase Client and the Server" and the "InterBase Client Only" kits, we need to change the install script accordingly.

Also, we additionally ship free software (InterClient and Acrobat Reader) that a customer may also want to install. Currently the installation of that additional software is a completely separate action for  the customer. To simplify the overall installation process we'll provide the "setup.ksh" script that is 'similar' to the Setup Launcher on the NT platform. The setup script is a menu of different software the customer can install from the CD-ROM.

User Interface/Usability

1. setup.ksh

In order to install software from the CD-ROM, the customer will need to do following:
 

  • Log in to the machine as root.
  • Mount the CD-ROM  on any existing empty directory on the system.
  • Run the "setup.ksh" setup script

The setup.ksh script brings up the following menu:

  • 1. Install InterBase Client and Server software
    2. Install InterBase Client Only software
    3. Install InterClient JDBC software
    4. Install Adobe Acrobat Reader software
    5. Exit

    Enter selection. (default 1) [1-5] :

Depending on the selection, the setup script either starts installation or exits. You can only install one element at a time. When the installation of that element is complete, the menu screen reappears and an other element can be chosen for installation.

If one of the Install options is chosen then the setup script prints out the corresponding message, starts the installation, checks out the return status (when the install is finished), and depending on the return value, prints out one of the following messages:

  • The installation completed successfully
  • *** The installation failed
  • *** The installation is not complete

In case of the "Install InterBase Client and Server software" the setup script does following:

  • Print out following message "Starting InterBase Client and Server Install, please wait..."

HP-UX

  • cd /tmp
  • Extract "install.ksh" install script from the CD_ROM_DIR/InterBase60_ClientServer_HUS.tar file
  • Run install.ksh script
  • Depending on the return status, print out the corresponding message

Solaris

  • pkgadd -d LocationAndNameOfThePackage (TBD)
  • Depending on the return status, print out the corresponding message

In case of the "Install InterBase Client Only software" the setup script does following:

  • Print out following message "Starting InterBase Client Only Install, please wait..."
  • HP-UX
  • cd /tmp
  • Extract "install.ksh" install script from the CD_ROM_DIR/InterBase60_Client_HUS.tar file
  • Run install.ksh script
  • Depending on the return status, print out the corresponding message
  • Solaris
  • pkgadd -d LocationAndNameOfThePackage (TBD)
  • Depending on the return status, print out the corresponding message

In case of "Install InterClient software" the setup scripts does following:

Print out following message "Starting InterClient Install, please wait..."

  • cd /tmp
  • Extract files from the CD_ROM_DIR/InterClient*.tar file
  • cd /interclient_install_temp_dir
  • Run install.sh script
  • Depending on the return status, print out the corresponding message

In case of "Install Adobe Acrobat Reader software" the setup script does following:

Print out following message "Starting Adobe Acrobat Reader Install, please wait..."

  • Run CD_ROM_DIR/Adobe/INSTALL script
  • Depending on the return status, print out the corresponding message

2. install.ksh

This script is used to install "InterBase Client and Server software" or "InterBase Client Only software".

Syntax: install.ksh [ -s | -c ] AbsolutePathNameOfTheArchiveFile,

  • -s install server and client
  • -c install client only

If neither '-s' nor '-c' option is specified then the install script checks for the interbase/bin/ibserver file in the tar file. If the file exists then the install script installs "InterBase Client and Server software" otherwise it installs "InterBase Client Only software".

The Install script may return following status codes:
 

  • 0 - completed successfully
  • 1 - completed with errors
  • 2 - installation is not complete

Install script logs all the output to the /tmp/ibinstall.log log file (see example here ). If the installation is completed successfully then the log file is moved to the /usr/interbase/ibinstall.log. If an old one exists then it is renamed to /usr/interbase/ibinstall.log.old

When install script starts, it checks for the IBINSTALL environment variable. If the variable is defined then it is used as a default install directory. If the variable is not defined then install script asks to specify the install directory (HP-UX only):

Enter the absolute path name of the install directory
[/opt] :

Notes:

  • The default install directory has been changed from /usr to /opt to be consistent with OS's conventions.
  • The install script automatically creates "interbase" subdirectory so you don't have to specify it as a part of the install directory path

During installation, the following messages may appear:

messages requesting input info

Directory "SomeDir" does not exist.
        Do you want to create it now? (default: y) [y, n, q] :
Directory "SomeDir/interbase" already exists.
        Do you want to continue? (default: n) [y, n, q] :
Please enter the license certificate id:
Please enter the license certificate key:

info messages

Extracting files...
Updating access permissions...
Creating symbolic links...
Updating service name database...
Updating configuration file for inetd...
Creating the ibmgr shell script...
Creating the license file...
Creating a 90-day evaluation license...
We need the license key which matches your license id.
Creating the license...
Creating /usr/interbase symbolic link...
*** Install completed with errors ***
Install completed successfully
Install is not complete.
        You may run the install at a later time to complete the installation.
Install log can be found at SomeLogFile

error and warning messages

ERROR: Invalid response, expected "y", "n" or "q"
ERROR: The specified pathname "PathName" is not the absolute. Please try again.
ERROR: No permissions to perform operation. Log in as root and try again.
ERROR: Detected another Interbase server running on the system.  Shutdown the InterBase server and try again.
ERROR: too many parameters.

  • Usage: install.ksh [-c | -s] AbsolutePathOfTheTarFile

ERROR: Syntax error, expected archive file.

  • Usage: install.ksh [-c | -s] AbsolutePathOfTheTarFile

ERROR: File "File" not found.
ERROR: Can't extract the files from the archive.
ERROR: No license created. Please see the release notes to create a license file.
WARNING: Can't create symbolic link "/usr/interbase"
WARNING: "/usr/interbase" already exists
WARNING: You should create a symbolic link

from "/usr/interbase"
to "InstallDirectory"
before using InterBase software.

3. Example

Here is an example for the "InterBase Client and Server software" installation (HP-UX).
NOTE: example is based on InterBase V5.5 tar file.

Dialog screen

# mount /dev/dsk/c1t2d0 /usr/gds.install
# /usr/gds.install/setup.ksh

        1. Install InterBase Client and Server software
        2. Install InterBase Client Only software
        3. Install InterClient JDBC software
        4. Install Adobe Acrobat Reader software
        5. Exit

Enter selection. (default 1) [1-5] :

Starting InterBase Client and Server Install, please wait...

Enter the absolute path name of the install directory
[/opt] : /opt/test

Directory "/opt/test/interbase" already exists.
Do you want to continue? (default: n) [y, n, q] : n

Enter the absolute path name of the install directory
[/opt] : /opt/newtest

Directory "/opt/newtest" does not exist.
Do you want to create it now? (default: y) [y, n, q] : y

Extracting files... Done
Updating access permissions... Done
Creating symbolic links... Done
Updating service name database... Done
Updating configuration file for inetd... Done
Creating the ibmgr shell script... Done

Please enter the license certificate id: eval
Creating a 90-day evaluation license...
The operation was completed successfully.  Please restart the server for the
changes to take effect. (NOTE: the message is  output of iblicense utility so it is not under the install script control)
Creating /usr/interbase symbolic link... Done

Install completed successfully
Install log can be found at /opt/newtest/interbase/ibinstall.log
The installation completed successfully

        1. Install InterBase Client and Server software
        2. Install InterBase Client Only software
        3. Install InterClient JDBC software
        4. Install Adobe Acrobat Reader software
        5. Exit

Enter selection. (default 1) [1-5] : 5
#umount /usr/gds.install
#

Log File

Old /tmp/ibinstall.log moved to /tmp/ibinstall.log.old

***********************************************
InterBase Install in progress
Wed Nov  4 12:36:47 PST 1998
***********************************************

Enter the absolute path name of the install directory
[/opt] : /opt/test
Directory "/opt/test/interbase" already exists.
Do you want to continue? (default: n) [y, n, q] : n
Enter the absolute path name of the install directory
[/opt] : /opt/newtest
Directory "/opt/newtest" does not exist.
Do you want to create it now? (default: y) [y, n, q] : y
mkdir -p /opt/newtest
----------------------------

Extracting files
x interbase/bin/ibserver, 1821142 bytes, 3557 tape blocks
x interbase/bin/fred, 230049 bytes, 450 tape blocks
x interbase/bin/gbak, 197024 bytes, 385 tape blocks
x interbase/bin/gdef, 271052 bytes, 530 tape blocks
x interbase/bin/gds_lock_print, 115024 bytes, 225 tape blocks
x interbase/bin/ibguard, 20538 bytes, 41 tape blocks
x interbase/bin/gfix, 61606 bytes, 121 tape blocks
x interbase/bin/gpre, 788675 bytes, 1541 tape blocks
x interbase/bin/gsec, 32847 bytes, 65 tape blocks
x interbase/bin/gsplit, 32850 bytes, 65 tape blocks
x interbase/bin/gstat, 41051 bytes, 81 tape blocks
x interbase/bin/ibmgr.bin, 32852 bytes, 65 tape blocks
x interbase/bin/isc4.gbak, 3072 bytes, 6 tape blocks
x interbase/bin/iblicense, 123247 bytes, 241 tape blocks
x interbase/bin/isql, 180589 bytes, 353 tape blocks
x interbase/bin/qli, 575190 bytes, 1124 tape blocks
x interbase/doc/APIGUIDE/APIGUIDE.PDF, 3296862 bytes, 6440 tape blocks
x interbase/doc/DATADEF/DATADEF.PDF, 2289493 bytes, 4472 tape blocks
x interbase/doc/IB5INDEX/MORGUE/ACROCAT.CAT, 3 bytes, 1 tape blocks
x interbase/doc/IB5INDEX/PARTS/00000000.DID, 795648 bytes, 1554 tape blocks
x interbase/doc/IB5INDEX/PARTS/00000001.DDD, 16384 bytes, 32 tape blocks
x interbase/doc/IB5INDEX/PARTS/00000001.DID, 844800 bytes, 1650 tape blocks
x interbase/doc/IB5INDEX/PARTS/00000000.DDD, 16384 bytes, 32 tape blocks
x interbase/doc/IB5INDEX/PDD/00000002.PDD, 7168 bytes, 14 tape blocks
x interbase/doc/IB5INDEX/PDD/00000001.PDD, 7168 bytes, 14 tape blocks
x interbase/doc/IB5INDEX/STYLE/STYLE.DID, 768 bytes, 2 tape blocks
x interbase/doc/IB5INDEX/STYLE/STYLE.PDD, 373 bytes, 1 tape blocks
x interbase/doc/IB5INDEX/STYLE/STYLE.PLC, 1767 bytes, 4 tape blocks
x interbase/doc/IB5INDEX/STYLE/STYLE.STP, 31 bytes, 1 tape blocks
x interbase/doc/IB5INDEX/STYLE/STYLE.WLD, 561 bytes, 2 tape blocks
x interbase/doc/IB5INDEX/STYLE/STYLE.DDD, 1914 bytes, 4 tape blocks
x interbase/doc/IB5INDEX/TEMP/ACROCAT.CAT, 3 bytes, 1 tape blocks
x interbase/doc/IB5INDEX/TEMP/T91C05F8.ABT, 1132 bytes, 3 tape blocks
x interbase/doc/IB5INDEX/TRANS/DATA.TRN, 99 bytes, 1 tape blocks
x interbase/doc/IB5INDEX/TRANS/ACROCAT.CAT, 3 bytes, 1 tape blocks
x interbase/doc/IB5INDEX/WORK/ACROCAT.CAT, 3 bytes, 1 tape blocks
x interbase/doc/IB5INDEX/ASSISTS/00000002.WLD, 151552 bytes, 296 tape blocks
x interbase/doc/IB5INDEX/ASSISTS/00000005.ABT, 1131 bytes, 3 tape blocks
x interbase/doc/IB5INDEX/ASSISTS/00000006.ABT, 1132 bytes, 3 tape blocks
x interbase/doc/IB5INDEX/ASSISTS/ACROCAT.CAT, 3 bytes, 1 tape blocks
x interbase/doc/IB5INDEX/ASSISTS/00000001.WLD, 143360 bytes, 280 tape blocks
x interbase/doc/IB5INDEX/TOPICIDX/ACROCAT.CAT, 3 bytes, 1 tape blocks
x interbase/doc/IB5INDEX.PDX, 1071 bytes, 3 tape blocks
x interbase/doc/LANGREF/LANGREF.PDF, 2684361 bytes, 5243 tape blocks
x interbase/doc/OPGUIDE/OPGUIDE.PDF, 2473873 bytes, 4832 tape blocks
x interbase/doc/PROGGD/PROGGD.PDF, 2910297 bytes, 5685 tape blocks
x interbase/doc/TUTORIAL/INSERTS.SQL, 37142 bytes, 73 tape blocks
x interbase/doc/TUTORIAL/PROCS.SQL, 8450 bytes, 17 tape blocks
x interbase/doc/TUTORIAL/TABLES.SQL, 9584 bytes, 19 tape blocks
x interbase/doc/TUTORIAL/UPDATES.SQL, 2626 bytes, 6 tape blocks
x interbase/doc/TUTORIAL/DOMAINS.SQL, 1674 bytes, 4 tape blocks
x interbase/doc/TUTORIAL/TUTORIAL.PDF, 762121 bytes, 1489 tape blocks
x interbase/doc/TUTORIAL/TRIGGERS.SQL, 1792 bytes, 4 tape blocks
x interbase/examples/README, 4316 bytes, 9 tape blocks
x interbase/examples/align.h, 915 bytes, 2 tape blocks
x interbase/examples/api1.c, 3769 bytes, 8 tape blocks
x interbase/examples/api10.c, 5421 bytes, 11 tape blocks
x interbase/examples/api11.c, 5436 bytes, 11 tape blocks
x interbase/examples/api12.c, 10300 bytes, 21 tape blocks
x interbase/examples/api13.c, 5105 bytes, 10 tape blocks
x interbase/examples/api14.e, 5595 bytes, 11 tape blocks
x interbase/examples/api15.c, 6114 bytes, 12 tape blocks
x interbase/examples/api16.c, 6143 bytes, 12 tape blocks
x interbase/examples/api16t.c, 4469 bytes, 9 tape blocks
x interbase/examples/api2.c, 4215 bytes, 9 tape blocks
x interbase/examples/api3.c, 3953 bytes, 8 tape blocks
x interbase/examples/api4.c, 3960 bytes, 8 tape blocks
x interbase/examples/api5.c, 3156 bytes, 7 tape blocks
x interbase/examples/api6.c, 6723 bytes, 14 tape blocks
x interbase/examples/api7.c, 4901 bytes, 10 tape blocks
x interbase/examples/api8.c, 4228 bytes, 9 tape blocks
x interbase/examples/api9.c, 4350 bytes, 9 tape blocks
x interbase/examples/api9f.c, 7005 bytes, 14 tape blocks
x interbase/examples/api9f.sql, 295 bytes, 1 tape blocks
x interbase/examples/apifull.c, 11242 bytes, 22 tape blocks
x interbase/examples/dyn1.e, 2340 bytes, 5 tape blocks
x interbase/examples/dyn2.e, 2950 bytes, 6 tape blocks
x interbase/examples/dyn3.e, 2670 bytes, 6 tape blocks
x interbase/examples/dyn4.e, 3020 bytes, 6 tape blocks
x interbase/examples/dyn5.e, 2376 bytes, 5 tape blocks
x interbase/examples/dynfull.e, 6384 bytes, 13 tape blocks
x interbase/examples/employe2.sql, 1331 bytes, 3 tape blocks
x interbase/examples/employee.gbk, 71680 bytes, 140 tape blocks
x interbase/examples/employee.gdb, 472064 bytes, 922 tape blocks
x interbase/examples/example.h, 402 bytes, 1 tape blocks
x interbase/examples/ib_udf.sql, 14958 bytes, 30 tape blocks
x interbase/examples/intlemp.gbk, 79872 bytes, 156 tape blocks
x interbase/examples/intlemp.gdb, 493568 bytes, 964 tape blocks
x interbase/examples/makefile, 6733 bytes, 14 tape blocks
x interbase/examples/stat1.e, 1456 bytes, 3 tape blocks
x interbase/examples/stat10.e, 3221 bytes, 7 tape blocks
x interbase/examples/stat11.e, 3090 bytes, 7 tape blocks
x interbase/examples/stat12.e, 2510 bytes, 5 tape blocks
x interbase/examples/stat12t.e, 1436 bytes, 3 tape blocks
x interbase/examples/stat2.e, 1300 bytes, 3 tape blocks
x interbase/examples/stat3.e, 1765 bytes, 4 tape blocks
x interbase/examples/stat4.e, 2798 bytes, 6 tape blocks
x interbase/examples/stat5.e, 2085 bytes, 5 tape blocks
x interbase/examples/stat6.e, 1972 bytes, 4 tape blocks
x interbase/examples/stat7.e, 1799 bytes, 4 tape blocks
x interbase/examples/stat8.e, 2527 bytes, 5 tape blocks
x interbase/examples/stat9.e, 3014 bytes, 6 tape blocks
x interbase/examples/udf.sql, 2477 bytes, 5 tape blocks
x interbase/examples/udflib.c, 11069 bytes, 22 tape blocks
x interbase/help/help.gbak, 101888 bytes, 199 tape blocks
x interbase/help/help.gdb, 391168 bytes, 764 tape blocks
x interbase/include/iberror.h, 26495 bytes, 52 tape blocks
x interbase/include/gds.h, 198213 bytes, 388 tape blocks
x interbase/include/gds.hxx, 49271 bytes, 97 tape blocks
x interbase/include/perf.h, 1889 bytes, 4 tape blocks
x interbase/include/ibase.h, 79847 bytes, 156 tape blocks
x interbase/include/gds.f, 157972 bytes, 309 tape blocks
x interbase/include/interbase.ada, 248907 bytes, 487 tape blocks
x interbase/include/ib_util.h, 293 bytes, 1 tape blocks
x interbase/install, 7204 bytes, 15 tape blocks
x interbase/interbase.msg, 124476 bytes, 244 tape blocks
x interbase/isc4.gdb, 248832 bytes, 486 tape blocks
x interbase/isc_config, 185 bytes, 1 tape blocks
x interbase/isc_ins_hlp.dat, 2069 bytes, 5 tape blocks
x interbase/lib/gds.sl, 452256 bytes, 884 tape blocks
x interbase/lib/ib_util.sl, 12300 bytes, 25 tape blocks
x interbase/lib/gds_pyxis.a, 248148 bytes, 485 tape blocks
x interbase/lib/gdsintl, 680469 bytes, 1330 tape blocks
x interbase/lib/ib_udf, 24680 bytes, 49 tape blocks
x interbase/license.txt, 18144 bytes, 36 tape blocks
x interbase/install.txt, 5139 bytes, 11 tape blocks
x interbase/services.isc, 80 bytes, 1 tape blocks
x interbase/ReleaseNotes.pdf, 465150 bytes, 909 tape blocks
x interbase/install.ksh, 16312 bytes, 32 tape blocks
----------------------------

Updating access permissions
chmod 777 /opt/newtest/interbase
chmod uog=rw /opt/newtest/interbase/isc4.gdb
chmod uog=rw /opt/newtest/interbase/help/help.gdb
chmod uog=rw /opt/newtest/interbase/examples/employee.gdb
chmod uog=rw /opt/newtest/interbase/examples/intlemp.gdb
chmod 4755 /opt/newtest/interbase/bin/gstat
----------------------------

Creating symbolic links
rm -f /usr/include/gds.h
ln -s /opt/newtest/interbase/include/gds.h /usr/include/gds.h
rm -f /usr/include/ibase.h
ln -s /opt/newtest/interbase/include/ibase.h /usr/include/ibase.h
rm -f /usr/include/iberror.h
ln -s /opt/newtest/interbase/include/iberror.h /usr/include/iberror.h
rm -f /usr/include/ib_util.h
ln -s /opt/newtest/interbase/include/ib_util.h /usr/include/ib_util.h
rm -f /usr/lib/libgds.sl
ln -s /opt/newtest/interbase/lib/gds.sl /usr/lib/libgds.sl
rm -f /usr/lib/libgds_pyxis.a
ln -s /opt/newtest/interbase/lib/gds_pyxis.a /usr/lib/libgds_pyxis.a
rm -f /usr/lib/libib_util.sl
ln -s /opt/newtest/interbase/lib/ib_util.sl /usr/lib/libib_util.sl
----------------------------

Updating service name database
cat /etc/services /opt/newtest/interbase/services.isc > services
mv services /etc/services
----------------------------

Updating configuration file for inetd
cat /etc/inetd.conf | grep -v gds_db > inetd.conf
mv inetd.conf /etc/inetd.conf
----------------------------

Creating the ibmgr shell script
----------------------------

Creating the license file

Please enter the license certificate id: Creating a 90-day evaluation license...
Creating /usr/interbase symbolic link
ln -s /opt/newtest/interbase /usr/interbase
----------------------------

Install completed successfully

Requirements and Constraints

The InrerBase 6.0 "setup.ksh" script will support HP-UX and Solaris platforms only and is placed on the top level of the CD-ROM tree. The setup script depends on the CD-ROM structure so it most be updated in case if the structure (especially file names) is changed.

The setup script makes the following assumptions:

Naming conventions for the software on the CD-ROM:
 

HP-UX

Solaris

IB Client and Server software

InterBase*_ClientServer_HUS.tar

TBD

IB Client Only software

InterBase*_Client_HUS.tar

TBD

Adobe Acrobat Reader software

Adobe/*

Adobe/*

InterClient software

InterClient*.tar

InterClient*.tar

Naming convention for the install scripts:

HP-UX

Solaris

IB Client and Server Install

install.ksh

N/A

IB Client Only software

install.ksh

N/A

Adobe Acrobat Reader software

Adobe/INSTALL

Adobe/INSTALL

InterClient software

install.sh

install.sh

Migration Issues

  • The new installation process on UNIX is slightly different from what it used to be before. The Operations Guide should be updated accordingly.