Infrastructure at your Service

Nabil Saoual

Control-M/EM : libnsl.so.1: cannot open shared object file: No such file or directory

By April 12, 2021 Control-M No Comments

Hi team,

When installing a brand new control-M server on your machine,you may encounter issues related to Control-M installation prerequisite.
That was my case on my Virtual machine,we will see how to fix it quickly.

System configuration:


Issue encountered during installation:

machine:
[[email protected] ~]# uname -a
Linux localhost.localdomain 4.18.0-80.11.2.el8_0.x86_64 #1 SMP Tue Sep 24 11:32:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
[[email protected] ~]#
CentOS Linux 8 64bits

===============================
=== Control-M 9.0.20.000 Installation ===
=== Installation ===
[ Starting to unpack ]
[ Processing package: Control-M/Server files ]
[ Processing package: Control-M/Agent files ]
[ Processing package: Copying Control-M/Server OneJRE files ]
[ Processing package: Copying Control-M/Server OneJRE (V1) files ]
[ Processing package: Extracting kafka, Perl, Python Packages ]
[ Processing package: After files extract ]
[ Processing package: Configure PostgreSQL Server ]
\
Error in Control-M 9.0.20.000 Installation

The following error occurred: Failed to execute "PostgreSQL server build": /home/controlm/bmcperl/bmcperl_V1/bin/perl: error while loading shared libraries: libnsl.so.1: cannot open shared object file: No such file or directory

== <R> Retry <Enter> Rollback ==

The problem is related to library loading libnsl.so.1, I tried to found it on my machine (with a find command), all was ok , the library seems to be here.
Then when retrying to install, still encountering this issue after many attempts, so I made an update of the library:

[[email protected] ~]# yum install libnsl.so.1

Dernière vérification de l’expiration des métadonnées effectuée il y a 0:11:27 le mer 31 mar 2021 18:22:14 EDT.

Dépendances résolues.

===========================================================================================================================================================================================================

 Paquet                                          Architecture                                  Version                                               Dépôt                                           Taille

===========================================================================================================================================================================================================

Installing:

 libnsl                                          i686                                          2.28-127.el8                                          BaseOS                                          103 k

Installation des dépendances:

 glibc                                           i686                                          2.28-127.el8                                          BaseOS                                          3.4 M

Résumé de la transaction

===========================================================================================================================================================================================================

Installer  2 Paquets

Taille totale des téléchargements : 3.5 M

Taille des paquets installés : 13 M

Voulez-vous continuer ? [o/N] : o

Téléchargement des paquets :

(1/2): libnsl-2.28-127.el8.i686.rpm                                                                                                                                         86 kB/s | 103 kB     00:01

(2/2): glibc-2.28-127.el8.i686.rpm                                                                                                                                         1.8 MB/s | 3.4 MB     00:01

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Total                                                                                                                                                                      1.2 MB/s | 3.5 MB     00:02

Test de la transaction en cours

La vérification de la transaction a réussi.

Lancement de la transaction de test

Transaction de test réussie.

Exécution de la transaction

  Préparation en cours  :                                                                                                                                                                              1/1

  Exécution du scriptlet: glibc-2.28-127.el8.i686                                                                                                                                                      1/2

  Installing            : glibc-2.28-127.el8.i686                                                                                                                                                      1/2

  Exécution du scriptlet: glibc-2.28-127.el8.i686                                                                                                                                                      1/2

  Installing            : libnsl-2.28-127.el8.i686                                                                                                                                                     2/2

  Exécution du scriptlet: libnsl-2.28-127.el8.i686                                                                                                                                                     2/2

  Vérification de       : glibc-2.28-127.el8.i686                                                                                                                                                      1/2

  Vérification de       : libnsl-2.28-127.el8.i686                                                                                                                                                     2/2

Installé:

  libnsl-2.28-127.el8.i686                                                                             glibc-2.28-127.el8.i686

Terminé !

[[email protected] ~]#

After this, still issue remaining with same message ( we can retrieve it under Control-M logs /BMCINSTALL/log/)
I tried to update libraries and get some conflicts between them:

[SKIPPED] glibc-locale-source-2.28-127.el8.x86_64.rpm: Already downloaded
[SKIPPED] glibc-minimal-langpack-2.28-127.el8.x86_64.rpm: Already downloaded
[SKIPPED] libnsl-2.28-127.el8.i686.rpm: Already downloaded
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 6.8 GB/s | 124 MB 00:00
Test de la transaction
La vérification de la transaction a réussi.
Lancement de la transaction de test
Les paquets téléchargés ont été mis en cache jusqu’à la prochaine transaction réussie.
Vous pouvez supprimer les paquets en cache en exécutant « yum clean packages ».
Erreur : Erreur de la transaction de test :
le fichier /lib/ld-2.28.so de l'installation de glibc-2.28-127.el8.i686 entre en conflit avec le fichier du paquet glibc32-2.28-42.1.el8.x86_64
le fichier /lib/libanl-2.28.so de l'installation de glibc-2.28-127.el8.i686 entre en conflit avec le fichier du paquet glibc32-2.28-42.1.el8.x86_64
le fichier /lib/libdl-2.28.so de l'installation de glibc-2.28-127.el8.i686 entre en conflit avec le fichier du paquet glibc32-2.28-42.1.el8.x86_64
...
le fichier /lib/libc-2.28.so de l'installation de glibc-2.28-127.el8.i686 entre en conflit avec le fichier du paquet glibc32-2.28-42.1.el8.x86_64

Seems that i686 and x86_64 are in conflict,that gives us a clue.

Check library related to bmcperl path

We will check if missing library is displaying under /home/controlm/bmcperl/bmcperl_V1/bin/perl ( as request in issue log)

[[email protected] ~]# ldd /home/controlm/bmcperl/bmcperl_V1/bin/perl

        linux-vdso.so.1 (0x00007ffc5b1fa000)

        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f5aacf43000)

        libnsl.so.1 => not found

        libdl.so.2 => /lib64/libdl.so.2 (0x00007f5aacd3f000)

        libm.so.6 => /lib64/libm.so.6 (0x00007f5aac9bd000)

        libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f5aac794000)

        libutil.so.1 => /lib64/libutil.so.1 (0x00007f5aac590000)

        libc.so.6 => /lib64/libc.so.6 (0x00007f5aac1cd000)

        /lib64/ld-linux-x86-64.so.2 (0x00007f5aad163000)

When performing ldd command to check libraries we see that libnsl.so.1 is not found.

Installing libnsl.so.1 for 64 bits

Next step is to install ibnsl.so.1 for 64 bits and restart the installation

[[email protected] ~]# yum install libnsl.so.1*64*
Dernière vérification de l’expiration des métadonnées effectuée il y a 0:07:01 le jeu 01 avr 2021 04:36:11 EDT.
Dépendances résolues.
===========================================================================================================================================================================================================
 Paquet                                         Architecture                                   Version                                                Dépôt                                          Taille
===========================================================================================================================================================================================================
Installing:
 libnsl                                         x86_64                                         2.28-127.el8                                           BaseOS                                          99 k

Résumé de la transaction
===========================================================================================================================================================================================================
Installer  1 Paquet

Taille totale des téléchargements : 99 k
Taille des paquets installés : 160 k
Voulez-vous continuer ? [o/N] : o
Téléchargement des paquets :
libnsl-2.28-127.el8.x86_64.rpm                                                                                                                                              80 kB/s |  99 kB     00:01
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                       40 kB/s |  99 kB     00:02
Test de la transaction en cours
La vérification de la transaction a réussi.
Lancement de la transaction de test
Transaction de test réussie.
Exécution de la transaction
  Préparation en cours  :                                                                                                                                                                              1/1
  Installing            : libnsl-2.28-127.el8.x86_64                                                                                                                                                   1/1
  Exécution du scriptlet: libnsl-2.28-127.el8.x86_64                                                                                                                                                   1/1
  Vérification de       : libnsl-2.28-127.el8.x86_64                                                                                                                                                   1/1

Installé:
  libnsl-2.28-127.el8.x86_64

checking if library is found

[[email protected] ~]# ldd /home/controlm/bmcperl/bmcperl_V1/bin/perl
        linux-vdso.so.1 (0x00007fff36dfa000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f9936818000)
        libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f99365ff000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f99363fb000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f9936079000)
        libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f9935e50000)
        libutil.so.1 => /lib64/libutil.so.1 (0x00007f9935c4c000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f9935889000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f9936a38000)
[[email protected] ~]#

Conclusion

Now library is found we can restart the application and it will be completed successfully 🙂
thanks a lot to Dave Armin from BMC for his advice ;),that was clear it was a library issue but tried many actions to fix it,before finding out x64 library was not here ( the problem was it updated only x86 libraries if you miss to add *64 in your yum install/update command),so be careful about architecture and library conflict ( x86 and 64 ),once 64 library is installed/updated it worked.

Hope it will be helpful as it was for me!

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Nabil Saoual
Nabil Saoual

Consultant