This article is written in English and Portuguese
Este artigo est� escrito em Portugu�s e Ingl�s
English version:
Let's start the series by the beginning. The Informix installation method has been changing with some frequency. Panther is not an exception, at least under the covers. From a user perspective it didn't change too much... A bit of history: Why does IBM change this? Many old timers miss the days where we simply unpacked an archive into the destination folder and then run a shell script (Unix/Linux) and that was it. Of course in Windows it was different. And there was no MacOS version... And it was different if you were using version 7.31 or 9+... And some platforms used cpio, others tar (I believe I've seen a cpio with a tar file inside), others RPM.
Ok... Enough. I think I've made IBM point clear... But there's more... You could not choose what to install, or what not to install. And there was no option to automatically create an instance (or when it appeared we could not control it's configuration).
So, the goals of the new installation process are to provide the same feeling across platforms and offer flexibility at the same time, by allowing to customize the installation, choose what to install with greater granularity and allow the user to create a working database instance.
The version 11.1 and 11.5 install method already provided most of this, but people complained about several things. Most noticeable the fact that it used Java for the installation process and it was sensitive to which JRE your system was using. Specially in Linux systems it didn't like the OpenJDK that many of them use. There was an option to use a JRE included in the installer, but some times it was hard to force it to use that one.
All this and some internal presentations I've seen made me curious to test the new installer and I must say I'm pleased with it. It has one problem that I believe is the price to pay for the advantages: The installer takes a large amount of temporary space (~1GB). If this looks too much stay tuned because you can workaround it. Note that this space will be freed at the end of a successful installation. If something goes wrong it will leave info there (so a few unsuccessful installations may lead to lack of space pretty quickly).
The temporary space will be used inside /tmp (Unix and Linux). If it has not enough space it will try the user (who is installing) home directory. Be aware, that if you're running with
root this may be the root filesystem which many times doesn't have too much free space. In any case, if you define an environment variable called IATEMPDIR (point it to some directory with enough free space and correct permissions), it will use that location. This is the safest and easiest way to control where it will put the temporary files needed during the installation.
Let's check the installation process:
The software comes in an archived format (.tar, .zip, ...?). So first we need to unpack it into any directory - an install base directory - . After that we need to run one script to install any of the included components (server, client sdk, connect and JDBC driver). We can choose to install in three ways:
- Graphic mode
./ids_install -i swing
- Console mode
./ids_install -i console
- Silent mode
./ids_install -i silent-f PATH_TO_OPTIONS_FILE
For graphic and console mode you can ask the installer to save your options into a file that can later be used for silent installations. And this brings me to an important note: The option to record the options file is -r and it takes an absolute pathname as argument. A relative pathname will not work, and will not raise an error. It just ignores it. So don't forget this. Apparently this is a limitation of the software used to create the installer. Working with absolute pathnames is not a big issue, but the fact that it doesn't warn you if you try to use a relative one can really be annoying.
For the interactive methods, either in GUI or character mode, you'll be asked a few questions:
- You must accept the license
- If you want a "typical" or "custom" installation
- What components you want to install if you choose "custom"
- The install location (it will default to $INFORMIXDIR if that is defined in the environment)
- If you want to do role separation (and the respective groups if you say yes...)
- If you want to create an instance, and if the answer is yes, a few more questions to configure it (space, number of CPUVPs, type of instance - OLTP or DSS -, number of expected clients and a few more)
Then it verifies the free space and proceeds. Easy and quick as usual....
If you choose to install in text mode (-i console), and you choose the custom installation you'll have to choose the components to install. In text mode, this is done after the install present you a list of all the parts you can choose. Note that this list may possibly not fit on your console screen. Be prepared to scroll back (so your terminal program must have some sort of buffer).
Each item and sub-item has a number. To select it (which will turn it on or off depending on current state), you just have to include it's number in a comma separated list of components. This is as convenient as possible in a character mode interface. When you're done choosing the components you just ask it to advance and that's it.
Another option to install the software is to use what we call silent installation (-i silent -f path_name). This is a good way to install the software in big shops. You just setup the options file (or create one during an installation), and then re-use it as many times as you want. With a simple command (./ids_install -i silent -f pathname) you will get a similar installation every time. No questions, no answers, no delays.
You can create a customized version of the option file just by changing three entries in the example file (assuming you want a customized install, with no instance creation and no role separation). The entries you need to change are:
- LICENSE_ACCEPTED=FALSE
This must be changed to LICENSE_ACCEPTED=TRUE (which implies you read and agreed with all the licensing terms) - #USER_INSTALL_DIR=/opt/ibm/informix/11.70
This one should be uncommented and changed. It will the be install directory (INFORMIXDIR) for the product. - CHOSEN_FEATURE_LIST=IDS,IDS-SVR,IDS-EXT,IDS-EXT-JAVA,IDS-EXT-OPT,IDS-EXT-CNV,IDS-EXT-XML,IDS-DEMO,IDS-ER,IDS-LOAD,IDS-LOAD-ONL,IDS-LOAD-DBL,IDS-LOAD-HPL,IDS-BAR,IDS-BAR-CHK,IDS-BAR-ONBAR,IDS-BAR-ISM,IDS-BAR-TSM,IDS-ADM,IDS-ADM-PERF,IDS-ADM-MON,IDS-ADM-ADT,IDS-ADM-IMPEXP,SDK,SDK-CPP,SDK-CPP-DEMO,SDK-ESQL,SDK-ESQL-DEMO,SDK-ESQL-ACM,SDK-LMI,SDK-ODBC,SDK-ODBC-DEMO,JDBC,GLS,GLS-WEURAM,GLS-EEUR,GLS-CHN,GLS-JPN,GLS-KOR,GLS-OTH
Ok... I bet you loved this one... Each name separated by commas identifies a component that you can choose not to install. If you want to leave out one of them just remove it from the list. Some of them are easy to understand, but others not so. That's why it's easier to select them during an interactive installation (character or GUI) and save the preferences in a file by using the -r option.
There is one more way to install it, that is not evident from the documentation (although it is documented). If you've been working with Informix for some years you may remind that we used to be able to "install" the software as user
informix and after that run a script as
root (Unix and Linux). In some situations, where the use of
root permissions is very strict you may want to use this method. Personally it's my favorite when I do not have
root. This method is documented as a way to "extract" the files. The idea is that you can extract the files into a directory that is similar to the final INFORMIXDIR setup, with the exception that the ownership of the files and the file permissions is not set. It includes a script called RUNasroot.installserver that should be run by
root (as the name suggests). This script will do all the necessary chown/chmod commands to correct the file permissions and ownerships. You can copy this full directory (or an archive of it) into other machines and run the mentioned script to complete the installation.
This is called the
legacy installation and you can do it by running the command:
./ids_install -i swing|console -DLEGACY=TRUE
If you use this, please don't forget to run the RUNasroot.installserver script after. If you don't, the installation directory will not be a usable INFORMIXDIR. It should be highlighted that after the initial unpack of the files into a directory, you won't require any more temporary space for installation.
So, in short:
- Everything is installed with the command
ids_install - Can do a console (-i console), a graphical (-i swing) or a silent (-i silent) install
- Can save a preferences file during a console or graphical install using -r option (full pathname). Can then re-use that file in silent installations with the -f option (full or relative pathname)
- The install temporary directory is /tmp or the user home directory, but can (should?) be overridden by defining the variable IATEMPDIR (needs around 1GB)
- You can uncompress the files or install with a non-root user using the option -DLEGACY=TRUE
After that you'll need to run the script RUNasroot.installserver (as root) to complete the installation (this step is documented, but the installer will not remind you about it...)
I had no issues with the installer and up to now, all the problems I've heard about were all related to installations in non-supported platforms. In many of these cases if the install would work, the product would fail...
I hope this time people will be happy with the install process. There are several options depending on your needs. It's easy for Informix newcomers, and old timers can run with -DLEGACY=TRUE.
If you need to sort all this, we can establish a sort of installation matrix trying to match installation processes with environment conditions:
- Silent install (-i silent)
If you have a large number of machines and you want to install it the same way in every machine. Needs root privileges, but can easily be done by system administrators, as long as you provide them the options file - Console install (-i console)
If you don't have a graphical environment or simply prefer character mode interfaces
Can be used by root or by informix. If run as informix needs that root runs RUNasroot.installserver script - Gui install (-i swing)
If you're new to Informix this is the ideal way. Again, can be used by informix or root. - -DLEGACY=TRUE
This option must be used in console or GUI installations if you're not running as root. You can use it to install the software (requiring RUNasroot.installserver) or simply to create an image of INFORMIXDIR, that can then be copied (simple OS copy) into other systems where you would then just need to run the script RUNasroot.installserver
This article does not cover the installation of other products included in version 11.70 of Informix like Optim Development Studio ou IBM Mashup Center. Hopefully I'll cover these in following articles.
Vers�o Portuguesa:
Vamos come�ar esta s�rie de artigos pelo princ�ipio. O m�todo de instala��o do Informix tem mudado com alguma frequ�ncia. O Panther n�o � excep��o, pelo menos internamente. Da perspectiva do utilizador n�o mudou assim tanto... Um pouco de hist�ria: Porque � que a IBM muda isto? Muitos dos utilizadores antigos certamente t�m saudades dos dias em que simplesmente descompactavamos um arquivo para o direct�rio de destino e depois corr�amos um
script SHELL (Unix/Linux) e j� estava. Claro que no Windows era diferente. E n�o existia vers�o para MacOS... E era diferente conforme fosse vers�o 7.3x ou 9.x... E algumas plataformas usavam cpio, outras tar (creio que cheguei a ver um cpio com um tar l� dentro), outras RPM.
Ok.... Chega. Creio que j� tornei a justifica��o da IBM suficientemente clara... Mas h� mais... N�o pod�amos escolher o que instalar, ou o que n�o instalar. E n�o havia op��o para criar uma inst�ncia automaticamente (ou quando apareceu, n�o tinhamos controlo sobre a sua configura��o).
Portanto, em resumo, os objectivos do novo processo de instala��o s�o fornecer a mesma sensa��o entre plataformas e oferecer flexibilidade ao mesmo tempo, permitindo que a instala��o seja adaptada, escolher o que instalar com maior granularidade e permitir a cria��o de uma inst�ncia funcional de base de dados.
O programa de instala��o da vers�o 11.1 e 11.5 j� permitia a maior parte disto, mas os clientes queixavam-se de v�rias coisas. A mais frequente � que usava Java para o processo e era muito sens�vel ao JRE que o sistema estava a usar. Especialmente em sistemas Linux, n�o gostava do OpenJDK que muitos deles usam. Existia uma op��o para usar o JRE insclu�do no programa de instala��o, mas algumas vezes era dif�cil for�ar a sua utiliza��o.
Tudo isto e algumas apresenta��es internas a que assisti deixaram-me curioso para testar o novo instalador e devo dizer que estou bastante satisfeito com ele. Tem um problema que acredito ser o pre�o a pagar pelas vantagens: O instalador consome um espa�o tempor�rio relativamente grande (~1GB). Se isto lhe parecer demasiado continue atento pois � poss�vel contormar a quest�o. Note que este espa�o ser� libertado no final de uma instala��o bem sucedida. Se alguma coisa correr mal ele vai deixar informa��o l� (portanto uma sequ�ncia de instala��es mal sucedidas podem levar a falta de espa�o bastante rapidamente).
O espa�o tempor�rio ser� usado em /tmp (Unix e Linux). Se esta localiza��o n�o tiver espa�o suficiente tentar� a
home directory do utilizador que est� a efectuar a instala��o. Aten��o que se estiver a fazer a instala��o como
root isto pode ser o
root filesystem que muitas vezes n�o ter� muito espa�o dispon�vel
. Em qualquer caso, se definir uma vari�vel de ambiente chamada IATEMPDIR (apontar para um direct�rio com espa�o livre suficiente e com permiss�es adequadas), o instalador usar� essa localiza��o. Esta � a forma mais segura e f�cil de controlar onde � que s�o colocados os ficheiros tempor�rios necess�rios durante a instala��o.
Vejamos o processo de instala��o:
O software vem num formato de arquivo (.tar, .zip, ...?). Por isso, primeiro temos de o descompactar para um qualquer direct�rio - direct�rio base de instala��o -. Depois � necess�rio correr um
script para instalar qualquer dos componentes inclu�dos (servidor, client sdk, connect e
driver JDBC). Podemos escolher tr�s formas de instala��o:
- Modo gr�fico
./ids_install -i swing
- Modo de consola
./ids_install -i console
- Modo silencioso
./ids_install -i silent-f PATH_TO_OPTIONS_FILE
Para os modos gr�fico e de consola podemos pedir ao instalador que grave as nossas op��es para um ficheiro que pode depois ser usado para efectuar instala��es em modo silencioso. E isto requer uma chamada de aten��o muito importante: A op��o que permite gravar as op��es em ficheiro � a op��o -r e requer como argumento um caminho absoluto para um ficheiro. Um caminho relativo n�o funcionar�, e n�o gera nenhum erro. Apenas ignora a op��o. N�o se esque�a disto. Aparentemente isto � uma limita��o no produto com o qual foi construido o instalador. Trabalhar com caminhos de ficheiro absolutos n�o ser� um grande problema, mas o facto de n�o ser gerado nenhum erro caso se use um caminho relativo pode ser realmente irritante.
Para os m�todos interactivos, seja modo gr�fico ou em consola, ser-lhe-�o feitas algumas perguntas:
- Ter� de aceitar a licen�a
- Se quer uma instala��o "t�pica" ou "personalizada"
- Quais os componentes que quer instalar se escolheu "personalizada"
- O direct�rio de instala��o (usar� o que est� na vari�vel INFORMIXDIR se estiver definida)
- Se quer configurar separa��o de fun��es (e caso queira, quais os respectivos grupos...)
- Se quer criar uma inst�ncia, e caso a resposta seja sim mais umas quest�es para a configurar (espa�o, n�mero de CPUVPs, tipo de inst�ncia - OLTP ou DSS -, n�mero esperado de clientes e mais alguns)
Depois verifica o espa�o livre e prossegue. F�cil e r�pido como habitualmente...
Se escolher o modo de consola (-i console), e escolher a instala��o "personalizada", ter� de escolher quais os componentes a instalar. Em modo de texto, isto � feito ap�s o instalador apresentar uma lista de todos os elementos que pode escolher. Note que esta lista poder� n�o caber no �cran. Esteja preparado para ter de fazer um pouco de
scroll back (portanto o seu programa de terminal deve ter alguma capacidade de guardar as �ltimas linhas).
Cada item e sub-item tem um n�mero. Para o seleccionar (o que ir� activar ou desactivar dependendo do estado actual), ter� de incluir o seu n�mero numa lista de n�meros separada por v�rgulas.
Isto � t�o conveniente quanto poss�vel num interface em modo de caracter. Quando tiver conclu�do a selecc��o basta pedir-lhe que avance e pronto.
Outra op��o para instalar o
software � o modo silencioso (-i silent -f ficheiro). Esta forma de instala��o � adequada a ambientes com muitas m�quinas. Basta preparar o ficheiro de op��es (ou cri�-lo durante uma instala��o), e depois re-utiliz�-lo as vezes que se queira. Com um comando simples (./ids_install -i silent -f ficheiro) obter-se-� uma instala��o semelhante em cada execu��o. Sem quest�es, sem respostas, sem demoras.
Pode criar-se uma vers�o personalizada do ficheiro de op��es mudando tr�s op��es no ficheiro fornecido como exemplo (assumindo que se quer uma instala��o personalizada, sem cria��o de inst�ncia e sem separa��o de fun��es). As entradas que � necess�rio modificar s�o:
- LICENSE_ACCEPTED=FALSE
Isto tem de ser modificado para LICENSE_ACCEPTED=TRUE (o que pressup�e que leu e concordou com os termos da licen�a) - #USER_INSTALL_DIR=/opt/ibm/informix/11.70
Este deve der descomentado e modficado. Ser� o direct�rio de instala��o (INFORMIXDIR) para o produto - CHOSEN_FEATURE_LIST=IDS,IDS-SVR,IDS-EXT,IDS-EXT-JAVA,IDS-EXT-OPT,IDS-EXT-CNV,IDS-EXT-XML,IDS-DEMO,IDS-ER,IDS-LOAD,IDS-LOAD-ONL,IDS-LOAD-DBL,IDS-LOAD-HPL,IDS-BAR,IDS-BAR-CHK,IDS-BAR-ONBAR,IDS-BAR-ISM,IDS-BAR-TSM,IDS-ADM,IDS-ADM-PERF,IDS-ADM-MON,IDS-ADM-ADT,IDS-ADM-IMPEXP,SDK,SDK-CPP,SDK-CPP-DEMO,SDK-ESQL,SDK-ESQL-DEMO,SDK-ESQL-ACM,SDK-LMI,SDK-ODBC,SDK-ODBC-DEMO,JDBC,GLS,GLS-WEURAM,GLS-EEUR,GLS-CHN,GLS-JPN,GLS-KOR,GLS-OTH
Ok... Calculo que tenha adorado esta... Cada nome separado por v�rgulas identifica um componente que pode ser escolhido para instalar. Se n�o quiser instalar um deles basta remov�-lo desta lista. Alguns s�o f�ceis de decifrar mas outros nem tanto. � por isso que � mais f�cil seleccion�-los durante uma instala��o interactiva (modo caracter ou gr�fico) e gravar as escolhas num ficheiro com a op��o -r
Existe ainda outra forma de instala��o que pode n�o ser evidente na documenta��o (apesar de estar l� referida). Se tem trabalhado com Informix h� alguns anos, talvez se recorde que era habitual ou poss�vel instalar o
software com o utilizador
informix e depois correr um
script como
root (Unix e Linux). Em alguns ambientes, onde o uso de permiss�es de
root � muito restrito, talvez queira utilizar este m�todo. Pessoalmente � o meu favorito quando n�o tenho acesso a
root. Este m�todo est� documentado como uma forma de "extrair" os ficheiros. A ideia � que possa extrair os ficheiros para um direct�rio que ser� semelhante ao INFORMIDIR final, com a excep��o que as permiss�es e titularidade dos ficheiros n�o est� devidamente estabelecida. Esses ficheiros inclu�m um
script chamado RUNasroot.installserver que ter� de ser executado como
root (tal como o nome indica). Este
script far� todos os chown/chmod necess�rios para corrigir a titularidade e permsiss�es dos ficheiros. Pode copiar-se este direct�rio completo (ou um arquivo do mesmo) para outras m�quinas e correr o
script mencionado para completar a instala��o.
Isto � a chamada instala��o
legacy e pode ser feita executando o comando:
./ids_install -i swing|console -DLEGACY=TRUE
Se usar este m�todo n�o se esque�a de correr o
script RUNasroot.installserver. Se n�o o fizer o direct�rio de instala��o n�o ser� um INFORMIXDIR v�lido. Saliente-se que ap�s a coloca��o inicial dos ficheiros num direct�rio n�o ser� mais necess�rio espa�o tempor�rio para a instala��o.
Fazendo um resumo:
- Tudo � instalado com o comando:
ids_install - Pode fazer-se uma instala��o em consola (-i console), em modo gr�fico (-i swing) ou em modo silencioso (-i silent)
- Pode gravar-se um ficheiro de op��es durante a instala��o em consola ou modo gr�fico usando a op��o -r (caminho absoluto). Pode depois re-utilizar-se o ficheiro em instala��es silenciosas com a op��o -f (caminho absoluto ou relativo)
- O direct�rio de instala��o � /tmp ou a directoria base do utilizador que instala mas pode (deve-se?) sobrepor definindo a vari�vel IATEMPDIR (precisa de cerca de 1GB)
- Pode descompactar-se os ficheiros ou instalar com um utilizador n�o root usando a op��o
-DLEGACY=TRUE
Depois disto � necess�rio correr o script RUNasroot.installserver com o utilizador root para completar a instala��o (este passo est� documentado, mas o instalador n�o o ir� lembrar disso...)
N�o tive problemas com o instalador e at� agora, todos os problemas que vi referenciados resultaram de tentativas de instala��o em plataformas n�o suportadas. Nestes casos, mesmo que o instalador funcionasse o mais prov�vel era existirem problemas com o produto propriamente dito.
Espero que desta vez as pessoas fiquem satisfeitas com o processo de instala��o. Existem v�rias op��es dependendo das suas necessidades. � f�cil para rec�m chegados ao Informix e os utilizadores mais experientes podem sempre usar a op��o -DLEGACY=TRUE.
Se precisar de ordenar ideias, podemos estabelecer uma esp�cie de matriz entre os m�todos de instala��o e as condi��es do ambiente:
- Modo silencioso (-i silent)
Se tiver um grande n�mero de m�quinas e quiser instalar sempre da mesma forma em todas. Requer privil�gios de root, mas pode facilmente ser executada pelos administradores de sistema desde que lhes forne�a o ficheiro de op��es - Modo de consola (-i console)
Se n�o tiver um ambiente gr�fico dispon�vel ou simplesmente se preferir um ambiente de texto
Pode ser utilizado por root ou por informix. Se executar como informix necessita que o root corra o RUNasroot.installserver - Modo gr�fico (-i swing)
Se � novo no Informix esta � a forma ideal. Tal como o anterior pode ser usado como informix ou como root. - -DLEGACY=TRUE
Esta op��o pode ser usada em conjunto com os modos gr�fico e de consola se n�o estiver a correr como root.
Pode usar este formato para instalar o software (requer execu��o do RUNasroot.installserver) ou simplesmente para criar uma imagem do INFORMIXDIR, que poder� depois ser copiada (c�pia simples de SO) para outrous sistemas onde apenas seria necess�rio executar o RUNasroot.installserver
Este artigo n�o cobre a instala��o de outros produtos fornecidos com a vers�o 11.70 do Informix como sejam o Optim Development Studio ou o IBM Mashup Center. Espero poder falar disto em artigos seguintes.