Friday, 3 April 2015

IBM Business Monitor 8.5.6 - Cognos and Linux

I've blogged about this once or twice before, including: -


but here's my most recent experience with Cognos BI 10 on Linux, in the context of IBM Business Monitor 8.5.6 ( aka BAM ).

I again hit my favourite exception: -

Installation of IBM Cognos Business Intelligence has failed.

but used a bit more methodology to find the solution.

From past experience, I knew that the problem was a missing Linux pre-requisite, but wanted to know precisely WHAT was missing.

This is what I did: -

Check the IBM Installation Manager logs after the failure

view ~/var/ibm/InstallationManager/logs/20150403_0838.xml 


<entry num='328' time='1428046860463' elapsed='02:39.02' level='ERROR' thread='Thread-594'>
 <logger>global</logger>
 <class>com.ibm.cognos.exec.Install</class>
 <method>exec</method>
 <message>com.ibm.cognos.exec.Install
Command: [Ljava.lang.String;@9896e5a0
Return code : -1
StdOut :
StdErr : Cannot run program "/opt/IBM/WebSphere/AppServer/CognosImage/linuxi38664h/issetupnx": error=2, No such file or directory</message>
</entry>
<entry num='329' time='1428046860465' elapsed='02:39.03' level='INFO' thread='Worker-0'>
 <logger>com.ibm.cic.agent.core.commonNativeInstallAdapter.AbstractExecInstallOperation</logger>
 <class>com.ibm.cic.agent.core.commonNativeInstallAdapter.InvokeInstallOperation</class>
 <method>doPerform</method>
 <message>
  <key>Custom operation {0} in unit {1} completed</key>
  <arg>Installing IBM Cognos Business Intelligence</arg>
  <arg>cognos.linuxia64.exec</arg>
 </message>
</entry>
<entry num='330' time='1428046860465' elapsed='02:39.03' level='INFO' thread='Worker-0'>
 <logger>com.ibm.cic.agent.core.Engine</logger>
 <class>com.ibm.cic.agent.core.Engine.Phase.IUPhase.IUPhaseSubOperation</class>
 <method>perform</method>
 <message>
  <key>Error occurred in phase: {0}
  SU: {1} {2}
  IU: {3}
  Message: {4}</key>
  <arg>install</arg>
  <arg>com.ibm.cognos.installer.linuxia64</arg>
  <arg>10.2.2.20150304_1653</arg>
  <arg>cognos.linuxia64.exec null-&gt;10.2.2000</arg>
  <arg>Installation of IBM Cognos Business Intelligence has failed.
Return code : -1</arg>
 </message>


Locate the failing program in the BAM installation repository

fgrep -R issetup /mnt/hgfs/Software/Repo/BAM856/Product/repository/COGNOS_64

Binary file /mnt/hgfs/Software/Repo/BAM856/Product/repository/COGNOS_64/native/cognos-linuxia64_10.2.2.zip matches

Extract the archive to a temporary directory

mkdir /tmp/foobar
unzip /mnt/hgfs/Software/Repo/BAM856/Product/repository/COGNOS_64/native/cognos-linuxia64_10.2.2.zip -d /tmp/foobar

Set the executable bit for the failing program

chmod +x /tmp/foobar/linuxi38664h/issetupnx

Test the program - #1

/tmp/foobar/linuxi38664h/issetupnx

-bash: ./issetupnx: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

Install the missing library - #1

yum install -y ld-linux.so.2

Running Transaction
  Installing : glibc-2.12-1.149.el6.i686                                                                                                                                       1/2 
  Installing : nss-softokn-freebl-3.14.3-17.el6.i686                                                                                                                           2/2 
  Verifying  : nss-softokn-freebl-3.14.3-17.el6.i686                                                                                                                           1/2 
  Verifying  : glibc-2.12-1.149.el6.i686                                                                                                                                       2/2 

Installed:
  glibc.i686 0:2.12-1.149.el6                                                                                                                                                      

Dependency Installed:
  nss-softokn-freebl.i686 0:3.14.3-17.el6                                                                                                                                         

Complete!


Test the program - #2

/tmp/foobar/linuxi38664h/issetupnx

./issetupnx: error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such file or directory

Install the missing library - #2

yum install -y libgcc_s.so.1

Running Transaction
  Installing : libgcc-4.4.7-11.el6.i686                                                                                                                                        1/1 
  Verifying  : libgcc-4.4.7-11.el6.i686                                                                                                                                        1/1 

Installed:
  libgcc.i686 0:4.4.7-11.el6                                                                                                                                                      


Test the program - #3

/tmp/foobar/linuxi38664h/issetupnx

Licensed Materials - Property of IBM, BI and PM: is,
(C) Copyright IBM Corp. 2004, 2014. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
UNIX IBM Cognos InstallStream Version 10.2.2


The executable "issetupnx" may only be run in unattended mode, Please use the "-s" option and try again. 


So that's sorted it then …

However, whilst I was there, I also tested the accompanying program - issetup - which responded thusly: -

/tmp/foobar/linuxi38664h/issetup

/tmp/foobar/linuxi38664h/issetup: error while loading shared libraries: libXm.so.4: cannot open shared object file: No such file or directory

so I installed the missing pre-requisite: -

yum install -y libXm.so.4

...
Running Transaction
  Installing : libICE-1.0.6-1.el6.i686                                                                                                                                        1/19 
  Installing : libXau-1.0.6-4.el6.i686                                                                                                                                        2/19 
  Installing : freetype-2.3.11-14.el6_3.1.i686                                                                                                                                3/19 
  Installing : libxcb-1.9.1-2.el6.i686                                                                                                                                        4/19 
  Installing : libX11-1.6.0-2.2.el6.i686                                                                                                                                      5/19 
  Installing : libXext-1.3.2-2.1.el6.i686                                                                                                                                     6/19 
  Installing : libXp-1.0.2-2.1.el6.i686                                                                                                                                       7/19 
  Installing : libXrender-0.9.8-2.1.el6.i686                                                                                                                                  8/19 
  Installing : zlib-1.2.3-29.el6.i686                                                                                                                                         9/19 
  Installing : 2:libpng-1.2.49-1.el6_2.i686                                                                                                                                  10/19 
  Installing : libuuid-2.17.2-12.18.el6.i686                                                                                                                                 11/19 
  Installing : libSM-1.2.1-2.el6.i686                                                                                                                                        12/19 
  Installing : libXt-1.1.4-6.1.el6.i686                                                                                                                                      13/19 
  Installing : libXmu-1.1.1-2.el6.i686                                                                                                                                       14/19 
  Installing : expat-2.0.1-11.el6_2.i686                                                                                                                                     15/19 
  Installing : fontconfig-2.8.0-5.el6.i686                                                                                                                                   16/19 
  Installing : libXft-2.3.1-2.el6.i686                                                                                                                                       17/19 
  Installing : libjpeg-turbo-1.2.1-3.el6_5.i686                                                                                                                              18/19 
  Installing : openmotif-2.3.3-8.el6.i686                                                                                                                                    19/19 
  Verifying  : libjpeg-turbo-1.2.1-3.el6_5.i686                                                                                                                               1/19 
  Verifying  : libICE-1.0.6-1.el6.i686                                                                                                                                        2/19 
  Verifying  : freetype-2.3.11-14.el6_3.1.i686                                                                                                                                3/19 
  Verifying  : libXext-1.3.2-2.1.el6.i686                                                                                                                                     4/19 
  Verifying  : libXp-1.0.2-2.1.el6.i686                                                                                                                                       5/19 
  Verifying  : libXrender-0.9.8-2.1.el6.i686                                                                                                                                  6/19 
  Verifying  : libXft-2.3.1-2.el6.i686                                                                                                                                        7/19 
  Verifying  : expat-2.0.1-11.el6_2.i686                                                                                                                                      8/19 
  Verifying  : libX11-1.6.0-2.2.el6.i686                                                                                                                                      9/19 
  Verifying  : libuuid-2.17.2-12.18.el6.i686                                                                                                                                 10/19 
  Verifying  : libXt-1.1.4-6.1.el6.i686                                                                                                                                      11/19 
  Verifying  : libSM-1.2.1-2.el6.i686                                                                                                                                        12/19 
  Verifying  : libXau-1.0.6-4.el6.i686                                                                                                                                       13/19 
  Verifying  : 2:libpng-1.2.49-1.el6_2.i686                                                                                                                                  14/19 
  Verifying  : openmotif-2.3.3-8.el6.i686                                                                                                                                    15/19 
  Verifying  : zlib-1.2.3-29.el6.i686                                                                                                                                        16/19 
  Verifying  : fontconfig-2.8.0-5.el6.i686                                                                                                                                   17/19 
  Verifying  : libXmu-1.1.1-2.el6.i686                                                                                                                                       18/19 
  Verifying  : libxcb-1.9.1-2.el6.i686                                                                                                                                       19/19 

Installed:
  openmotif.i686 0:2.3.3-8.el6                                                                                                                                                     

Dependency Installed:
  expat.i686 0:2.0.1-11.el6_2        fontconfig.i686 0:2.8.0-5.el6      freetype.i686 0:2.3.11-14.el6_3.1    libICE.i686 0:1.0.6-1.el6             libSM.i686 0:1.2.1-2.el6       
  libX11.i686 0:1.6.0-2.2.el6        libXau.i686 0:1.0.6-4.el6          libXext.i686 0:1.3.2-2.1.el6         libXft.i686 0:2.3.1-2.el6             libXmu.i686 0:1.1.1-2.el6      
  libXp.i686 0:1.0.2-2.1.el6         libXrender.i686 0:0.9.8-2.1.el6    libXt.i686 0:1.1.4-6.1.el6           libjpeg-turbo.i686 0:1.2.1-3.el6_5    libpng.i686 2:1.2.49-1.el6_2   
  libuuid.i686 0:2.17.2-12.18.el6    libxcb.i686 0:1.9.1-2.el6          zlib.i686 0:1.2.3-29.el6            

Complete!


and re-tested: -

/tmp/foobar/linuxi38664h/issetup

Licensed Materials - Property of IBM, BI and PM: is,
(C) Copyright IBM Corp. 2004, 2014. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
UNIX IBM Cognos InstallStream Version 10.2.2

Reading archive information - /tmp/foobar/linuxi38664h/setup.csp. Please wait...
Error: Can't open display: localhost:10.0


So, I believe, that IS it.

In conclusion, I needed to install three missing libraries, along with their pre- and co-requisites: -

yum install -y ld-linux.so.2
yum install -y libgcc_s.so.1
yum install -y libXm.so.4


which ties up with my expectations and experiences, given that Cognos BI makes use of X11, even when running in the context of WebSphere Application Server.

I will re-test the entire thing later, and report back IF needed.

No comments:

Note to self - use kubectl to query images in a pod or deployment

In both cases, we use JSON ... For a deployment, we can do this: - kubectl get deployment foobar --namespace snafu --output jsonpath="{...