Re: Installing 4GL
Posted in 1997
Hello, This 'Installing 4GL' question has been circulating for several days, and someone asked for my views (or the views of anybody from Informix) on the subject, but I've only just found time to answer (and shouldn't really be doing it now, but...) The original question was from Michel Behna <mbehna@worldnet.att.net>: >Date: Tue, 2 Sep 1997 22:20:03 -0400 >X-Informix-List-Id: <news.42415> > >I am trying to determine whether the following information is accurate: >We just purchased Informix 4GL and to install it, it seems we need to >install it first and then the Informix engine. Here's the rub: we no >longer have the original installation media :-( and to reinstall Informix >7.2 on our Solaris 2.5.1 Sun machine is not currently possible. > >Is there any truth to this information or am I being fed a line? I am >finding this hard to believe... so please clarify this for me. Is there a >work around to re-installing the engine? Maybe copy some files or >something like that... please help. > >I need authorative and definitive information on this situation so I can >take it back to management. There have been various comments made, such as "Yes", and "Especially since if anything goes wrong, Tech Support will ask if you installed things in the correct order". In many ways, these are both correct. However, we're playing with Unix and there's usually more than one way to achieve any given result. Let's consider the situation from first principles: * Losing distribution media is bad, but it is not an insurmountable problem. Don't do it again -- you paid good money for that tape, and you shouldn't lose it. * If you make a backup of the INFORMIXDIR onto tape, then install I4GL, then restore the backup overwriting any files in common with I4GL (unconditional restore), then you've (almost) achieved the same effect as re-doing the installs. The discrepancy is in $INFORMIXDIR/etc/.snfile which won't record the I4GL installation -- copy it before restoring the engines. *** NB: this only works if you do not have I4GL already installed! Consequently, it is not a general solution to the problem. * The fundamental question is: why does Informix insist on the installation order TEN - tools, engines, networks? The answer, as so often, is historical. Informix's installation procedure overwrites pre-existing files with new ones. Since the message files change from release to release (with new messages being added rather frequently and only occasionally with old messages being retired or reused), the message files for a newer software release contain more information than those in older releases. Sometimes, those new messages are critical to the operation of the software. The classic case is that the output from SET EXPLAIN is in part contained in a message file, and if the wrong version of the message file is present, SET EXPLAIN doesn't work. So, when you install an older product on top of a newer product (eg version 4.16 I4GL on 5.08 OnLine), you can wipe out important messages (because I4GL distributes many of the same message files as OnLine). The Engines/Network sequence was important because the network enablement came from the licence number used to brand the I-Net or I-Star software; the sqlexec and sqlturbo programs were otherwise identical. By installing the I-Net/I-Star product after the base product, the version of sqlexec/sqlturbo that was left in the directory was the network version, not the standalone version. Etc. * Version 6.0x I4GL stores the message files directly in the $INFORMIXDIR/msg directory. So does 7.1x OnLine. By contrast, 7.2x OnLine stores the message files in the $INFORMIXDIR/msg/en_us/0333 directory, as does any GLS-enabled product. * Consequently, for Michel's situation (7.2x OnLine), the I4GL message files will not overwrite the OnLine message files. AFAIK, the only OnLine files which will be overwritten by I4GL are not needed by OnLine (etc/brand and etc/install spring to mind - they could be removed once the installation is complete). I don't think that things like rofferr and finderr are different, but the newer versions from OnLine may be better... If the OnLine system was a 7.1x system, then you cannot simply install I4GL on top of OnLine. * The way I deal with such issues is via scripts I've generated and which I posted earlier this year to c.d.i. These scripts can do non-overwriting installs -- they can be told to copy into $INFORMIXDIR only those files which do not already exist there. This allows you to retro-install older software. I usually install the engines and ESQL/C first and get them up and running, and then install I4GL etc. * If you obtain those tools (ixcreate, mkinfxdir, cpinfxdir, ixremove, mkixcpio) from somewhere (IIUG - http://www.iiug.org, or DejaNews - http://www.dejanews.com), then you would install the I4GL software into some spare directory (/tmp/i4gl?), and then I'd use: ixcreate -R /tmp/i4gl -L /usr/informix -F fglfiles -cvd I'd run this as root -- having checked that it would do what I want using the -n option first. This would copy (-c) just the files listed in fglfiles which are not already in the main INFORMIXDIR (/usr/informix). * If I already had I4GL installed, I would first remove it with the ixremove script, which only removes files that are not used by any of the remaining products. I hope all this is helpful... Yours, Jonathan Leffler (johnl@informix.com) #include <witticism.h>