Oracle Linux 6.1 And libcap.so.1: cannot open shared object

Last Week trying to install Oracle GI 11.2.0.2 on Oracle Linux 6.1 and hit with this error. This is a test setup on VirtualBox and this error was hit while running root.sh for standalone db setup.


Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Using configuration parameter file: /u01/app/oracle/product/11.2.0/grid/crs/install/crsconfig_params
/u01/app/oracle/product/11.2.0/grid/bin/clscfg.bin: error while loading shared libraries: libcap.so.1: cannot open shared object file: No such file or directory
Failed to create keys in the OLR, rc = 127, 32512
Failed to create keys in the OLR at /u01/app/oracle/product/11.2.0/grid/crs/install/crsconfig_lib.pm line 6785.
/u01/app/oracle/product/11.2.0/grid/perl/bin/perl -I/u01/app/oracle/product/11.2.0/grid/perl/lib -I/u01/app/oracle/product/11.2.0/grid/crs/install /u01/app/oracle/product/11.2.0/grid/crs/install/roothas.pl execution failed

While if you can see from here we have new version of this package.

[root@linux6 /]# rpm -qa |grep cap

libcap-ng-python-0.6.4-3.el6_0.1.x86_64
libcap-2.16-5.2.el6.x86_64
libcap-ng-utils-0.6.4-3.el6_0.1.x86_64
perl-Pod-Escapes-1.04-119.el6.x86_64
mailcap-2.1.31-1.1.el6.noarch
libcap-ng-devel-0.6.4-3.el6_0.1.x86_64
libcap-ng-0.6.4-3.el6_0.1.x86_64
libpcap-1.0.0-6.20091201git117cb5.el6.x86_64
libcap-devel-2.16-5.2.el6.x86_64

So, the solution would be adding this package. Well, it’s in 5.6 distro but then it would conflict with this new version and will not install.  As this is the library what i did was just copied with the name it required


[root@linux6 lib64]# ls -ltr libcap*

-rwxr-xr-x  1 root root 19048 Jul  6  2010 libcap.so.2.16
-rwxr-xr-x  1 root root 21160 Jan 27 09:49 libcap-ng.so.0.0.0
lrwxrwxrwx. 1 root root    14 Jun 10 06:43 libcap.so.2 -> libcap.so.2.16
lrwxrwxrwx. 1 root root    18 Jun 10 06:43 libcap-ng.so.0 -> libcap-ng.so.0.0.0
lrwxrwxrwx  1 root root    11 Jun 11 01:02 libcap.so -> libcap.so.2

[root@linux6 lib64]# cp libcap.so.2 libcap.so.1

[root@linux6 lib64]# ls -ltr libcap*

-rwxr-xr-x  1 root root 19048 Jul  6  2010 libcap.so.2.16
-rwxr-xr-x  1 root root 21160 Jan 27 09:49 libcap-ng.so.0.0.0
lrwxrwxrwx. 1 root root    14 Jun 10 06:43 libcap.so.2 -> libcap.so.2.16
lrwxrwxrwx. 1 root root    18 Jun 10 06:43 libcap-ng.so.0 -> libcap-ng.so.0.0.0
lrwxrwxrwx  1 root root    11 Jun 11 01:02 libcap.so -> libcap.so.2
-rwxr-xr-x  1 root root 19048 Jun 11 16:24 libcap.so.1

After this we need to deconfig current install and try to run that root.sh again. and it worked fine but now facing different error.


/u01/app/oracle/product/11.2.0/grid/crs/install/roothas.pl -deconfig -force

[root@linux6 lib64]# /u01/app/oracle/product/11.2.0/grid/root.sh
Running Oracle 11g root script...

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/11.2.0/grid

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The contents of "dbhome" have not changed. No need to overwrite.
The contents of "oraenv" have not changed. No need to overwrite.
The contents of "coraenv" have not changed. No need to overwrite.

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Using configuration parameter file: /u01/app/oracle/product/11.2.0/grid/crs/install/crsconfig_params
LOCAL ADD MODE
Creating OCR keys for user 'oracle', privgrp 'oinstall'..
Operation successful.
LOCAL ONLY MODE
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
CRS-4664: Node linux6 successfully pinned.
Adding daemon to inittab
ohasd failed to start
Failed to start the Clusterware. Last 20 lines of the alert log follow:
2011-06-11 00:21:28.052
[client(11555)]CRS-2101:The OLR was formatted using version 3.
2011-06-11 01:14:13.033
[client(12628)]CRS-2101:The OLR was formatted using version 3.
2011-06-11 16:29:31.460
[client(15913)]CRS-2101:The OLR was formatted using version 3.
2011-06-11 16:29:33.299
[client(15938)]CRS-1001:The OCR was formatted using version 3.
[client(15976)]CRS-10001:CRS-6021: No msg for has:crs-6021 [l][unlimited]
[client(15977)]CRS-10001:CRS-6021: No msg for has:crs-6021 [n][65536]

ohasd failed to start at /u01/app/oracle/product/11.2.0/grid/crs/install/roothas.pl line 325.
/u01/app/oracle/product/11.2.0/grid/perl/bin/perl -I/u01/app/oracle/product/11.2.0/grid/perl/lib -I/u01/app/oracle/product/11.2.0/grid/crs/install /u01/app/oracle/product/11.2.0/grid/crs/install/roothas.pl execution failed

Well looked into tracefiles but no clue. But after tracing that this was the exact thing that was causing error


6422 14:58:57.214094 times({tms_utime=20, tms_stime=15, tms_cutime=1, tms_cstime=1}) = 443906869
26422 14:58:57.214705 gettimeofday({1307908737, 214869}, NULL) = 0
26422 14:58:57.215679 socket(PF_FILE, SOCK_STREAM, 0) = 5
26422 14:58:57.216529 access("/var/tmp/.oracle/sOHASD_UI_SOCKET", F_OK) = -1 ENOENT (No such file or directory)
26422 14:58:57.217539 access("/var/tmp/o/sOHASD_UI_SOCKET", F_OK) = -1 ENOENT (No such file or directory)
26422 14:58:57.218160 close(5)          = 0
26422 14:58:57.219153 close(3)          = 0
26422 14:58:57.220169 open("/u01/app/oracle/product/11.2.0/grid/crs/mesg/crsus.msb", O_RDONLY) = 3
26422 14:58:57.220975 fcntl(3, F_SETFD, FD_CLOEXEC) = 0

So, found on metalink that this might be issue with pipes and it was not able to read from that. and here is the solution


[root@linux6 tmp]# /bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1

[root@linux6 tmp]# /u01/app/oracle/product/11.2.0/grid/root.sh
Running Oracle 11g root script...

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/11.2.0/grid

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The contents of "dbhome" have not changed. No need to overwrite.
The contents of "oraenv" have not changed. No need to overwrite.
The contents of "coraenv" have not changed. No need to overwrite.

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Using configuration parameter file: /u01/app/oracle/product/11.2.0/grid/crs/install/crsconfig_params
Creating trace directory
LOCAL ADD MODE
Creating OCR keys for user 'oracle', privgrp 'oinstall'..
Operation successful.
LOCAL ONLY MODE
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
CRS-4664: Node linux6 successfully pinned.
Adding daemon to inittab
ACFS-9459: ADVM/ACFS is not supported on this OS version: 'error: file /etc/SuSE-release: No such file or directory
'

linux6     2011/06/12 16:34:05     /u01/app/oracle/product/11.2.0/grid/cdata/linux6/backup_20110612_163405.olr
Successfully configured Oracle Grid Infrastructure for a Standalone Server

Well, will update this post with more information. Also, You can see that this OS is not certified yet and ACFS is not supported. and not understand why it need SuSE-release