This article is dedicated to a number of hints to help you set up
quickly Informix products on a Linux box. Note that although originally written
for SCO ports under iBCS emulation,
most of the contents of this document equally applies to Linux native ports.
I'm trying to keep this at a basic level, partly in the hope that more
people will be interested in using Informix products on Linux, and, of
course, to masquerade my own ignorance on the subject :-)
Linux time conversion functions (tzset, to be precise) gather timezone
info from file /usr/lib/zoneinfo/localtime
, should TZ
not be set. A side effect of this convenient alternative is that TZ
has quietly disappeared from your average /etc/profile
.
This is fine for native Linux apps, but not for SCO's running on iBCS, so
you have hack /etc/profile
to set TZ
, or today and current will listen to Big Ben.
To avoid the hassle of changing TZ
whenever DST is/isn't in effect, use the
following two liner:
TZ=`echo -e \`date +%Z\`'\c'; expr \`date -u +%H\` - \`date +%H\`` export TZ
It will recompute TZ
from the localtime file at each login.
This, of course, will not work on timezones not differing from GMT by a whole
number of hours.
Both terminfo and termcap files are provided with the ncurses package, and both
are supported by SCO ports of Informix products. While termcap needs some
hacking (since, for instance, Informix uses kf
& kg
instead of kP
& kN
), terminfo files provided with the ncurses package (with the notable exception of the vt320 definitions) work pretty well with Informix products, and need only minor adjustments.
The enclosed termcap can be safely installed under /etc
(remember to back up the old one!). On the contrary you should compile
terminfo definitions (or store
my terminfo files) in an appropriate directory, say /usr/informix/terminfo
, as outlined in the sample installation procedure below
$ mkdir /usr/informix/terminfo $ TERMINFO=/usr/informix/terminfo $ export TERMINFO $ tic linux.ti
Failing to correctly set the TERMINFO
variable will clutter your standard terminfo files, so be careful!
As usual, you would access the newly created terminfo files by suitably setting the
INFORMIXTERM
variable as per 4gl Reference Manual, volume two, appendix I, and again, with TERMINFO
pointing to the alternate terminfo definitions.
The purist among you may want to have separate termcap definitions as well. For
this just install the alternate termcap somewhere and have the variable
TERMCAP
pointing at it.
The Printing-Howto goes in great length to explain the ladder effect, and how to effectively use a filter to prevent it, only to conclude that printing ascii text is not this hot thing, and that you should seek a magic filter that allows you to print PostScript, TeX, you name it files.
What they don't tell you is that no single LPR filter is included in the LPRng distribution, and that 4gl reports only produce plain ascii text (well, ok, if you haven't read the Informix Faq Appendix M, or don't happen to use 4glWorks, but that's another story :-)
Here you have a few alternatives:
pr (1)
before sending it to the printer spoolerif
paramenter of the appropriate entry in /etc/printcap
point to itThe last two options will let you control things like orientation, paper size, bin, etc.
Can be easily done by placing a small shell script, like the following, in the appropriate initialization scripts directory.
--------------------------------- cut here -------------------------------- #!/bin/sh : "@(#)/etc/rc.d/rc.informix 0.0" # rc.informix - Informix engine startup system initialization script # # Author: Marco Greco, <marco@4glworks.com>, Catania, Italy # # Initial release: Jun 97 # Current release: Jul 97 # # Absolutely no warranty -- use at your own risk export INFORMIXDIR= #fill in your value here, maybe /usr/informix? export INFORMIXSERVER= #fill in your value here export ONCONFIG= #fill in your value here if [ $# -lt 1 ] then echo "Usage: $0 {start|stop}" else case "$1" in 'start') if [ `$INFORMIXDIR/bin/onstat 2>&- | grep -c initialized` -ne 0 ] then echo -n "Starting Informix Online... " $INFORMIXDIR/bin/oninit echo "done" fi ;; 'stop') if [ `$INFORMIXDIR/bin/onstat 2>&- | grep -c initialized` -eq 0 ] then echo -n "Shutting down Informix Online... " $INFORMIXDIR/bin/onmode -ky echo "done" fi ;; *) echo "Usage: $0 {start|stop}" ;; esac fi ---------------------------------- end cut --------------------------------
[Note that this only applies to Online since there's nothing to start on SE unless you require network functionality, which is not available at the present time]
All of Red Hat, SuSE and Caldera have a System V approach to system initialization, thus you need to
/etc/rc.d/init.d
rc?.d
directory appropriate for the run level for wich you wish the engine to be
started, eg
$ ln -s /etc/rc.d/init.d/rc.informix /etc/rc.d/rc3.d/S99informix $ ln -s /etc/rc.d/init.d/rc.informix /etc/rc.d/rc3.d/K01informixfor run level 3 (normally, multiuser with X functionality)
Slackware uses the SysVinit package unmodified, which takes a BSD approach,
thus you would place the above script as a replacement for
/etc/rc.d/rc.local
.
Note that for some reason the plain SysVinit package does not offer a way to
stop what has been started by /etc/rc.d/rc.local
, so for our
little scheme to work you need to
/etc/rc.d/rc.{0,6,K}
to invoke rc.local
before anything else, like thus
if [ -x /etc/rc.d/rc.local ] then . /etc/rc.d/rc.local stop fi
/etc/rc.d/rc.M
to invoke rc.local
with a
start
parameter.This page maintained by
marco greco (last updated Mar, 8 2000) |