Tuesday, December 19, 2017

Solution of "Fatal Python error: pycurl: libcurl link-time version is older than compile-time version" in RHEL

Problem statement:
Fatal Python error: pycurl: libcurl link-time version is older than compile-time version
Aborted (core dumped)


I came across to the error "libcurl link-time version is older than compile-time version" while running the yum command.
Because of this issue, none of the yum command would work in the system:

Issue:
[root@system1 ~]# yum clean all
Fatal Python error: pycurl: libcurl link-time version is older than compile-time version
Aborted (core dumped)
[root@system1 ~]#
[root@system1 ~]# yum repolist
Fatal Python error: pycurl: libcurl link-time version is older than compile-time version
Aborted (core dumped)
[root@system1 ~]#

The issue can be confirmed by running the "ldconfig" command.

Below is the use of below command:
ldconfig - configure dynamic linker run-time bindings
Description: ldconfig creates the necessary links and cache to the most recent shared libraries found in the directories specified on the command line, in the file /etc/ld.so.conf, and in the trusted directories (/lib and /usr/lib).

[root@system1 lib64]# ldconfig
ldconfig: /lib64/libcurl.so.4 is not a symbolic link
[root@system1 ~]#

Below steps should resolve your issue:

[root@system1 ~]# cd /usr/lib64/
[root@system1 lib64]# ll | grep -i libcurl
lrwxrwxrwx.  1 root root       16 Oct 28  2016 libcurl.so -> libcurl.so.4.3.0
-rwxr-xr-x.  1 root root   346008 Oct 28  2016 libcurl.so.4
-rwxr-xr-x.  1 root root   422680 Mar 27  2014 libcurl.so.4.3.0
[root@system1 lib64]#

[root@system1 lib64]# du -sh * | grep -i libcurl
0       libcurl.so
340K    libcurl.so.4
416K    libcurl.so.4.3.0
[root@system1 lib64]#
[root@system1 lib64]# rpm -qf  libcurl.so.4
libcurl-7.29.0-19.el7.x86_64
[root@system1 lib64]#

Just move out the "libcurl.so.4" file to any other location:

[root@system1 lib64]# mv libcurl.so.4 /root/
[root@system1 lib64]#

and create the symbolic link as below:

[root@system1 lib64]# ln -s /usr/lib64/libcurl.so.4.3.0 /usr/lib64/libcurl.so.4                                          [root@system1 lib64]#

Below would be the final state that you would get.

[root@system1 lib64]# ll | grep -i libcurl
lrwxrwxrwx.  1 root root       16 Nov 29 11:30 libcurl.so -> libcurl.so.4.3.0
lrwxrwxrwx.  1 root root       16 Nov 29 11:26 libcurl.so.4 -> libcurl.so.4.3.0
-rwxr-xr-x.  1 root root   435120 Mar 29  2017 libcurl.so.4.3.0
[root@system1 lib64]#

Now your yum commands should work:

[root@system1 ~]# yum clean all
Loaded plugins: langpacks, product-id, subscription-manager
Cleaning repos: install
Cleaning up everything
[root@system1 ~]#

[root@system1 ~]# yum repolist
Loaded plugins: langpacks, product-id, subscription-manager
install                                                       | 2.9 kB  00:00:00
install/primary_db                                            |  34 MB  00:00:00
repo id                                 repo name                              status
install                                 redhat                                 17,255
repolist: 17,255
[root@system1 ~]#

Hope it helps.

2 comments:

  1. Hi Rohit your document is not working with me please check and revert

    [root@localhost bin]# cd /usr/lib64/
    [root@localhost lib64]# ll | grep -i libcurl
    lrwxrwxrwx 1 root root 16 Jan 8 10:27 libcurl.so -> libcurl.so.4.3.0
    lrwxrwxrwx 1 root root 27 Jan 8 14:10 libcurl.so.4 -> /usr/lib64/libcurl.so.4.3.0
    lrwxrwxrwx 1 root root 12 Jan 9 11:08 libcurl.so.4.1.1 -> libcurl.so.4
    -rwxr-xr-x 1 root root 439320 Dec 2 23:16 libcurl.so.4.3.0
    [root@localhost lib64]# du -sh * | grep -i libcurl
    0 libcurl.so
    0 libcurl.so.4
    0 libcurl.so.4.1.1
    432K libcurl.so.4.3.0
    [root@localhost lib64]# rpm -qf libcurl.so.4
    libcurl-7.29.0-54.el7_7.1.x86_64
    [root@localhost lib64]# mv libcurl.so.4 /root/
    [root@localhost lib64]# pwd
    /usr/lib64
    [root@localhost lib64]# cd /usr/lib64
    [root@localhost lib64]# ln -s /usr/lib64/libcurl.so.4.3.0 /usr/lib64/libcurl.so
    libcurl.so libcurl.so.4.1.1 libcurl.so.4.3.0
    [root@localhost lib64]# ln -s /usr/lib64/libcurl.so.4.3.0 /usr/lib64/libcurl.so.4
    [root@localhost lib64]# ll | grep -i libcur
    lrwxrwxrwx 1 root root 16 Jan 8 10:27 libcurl.so -> libcurl.so.4.3.0
    lrwxrwxrwx 1 root root 27 Jan 9 12:42 libcurl.so.4 -> /usr/lib64/libcurl.so.4.3.0
    lrwxrwxrwx 1 root root 12 Jan 9 11:08 libcurl.so.4.1.1 -> libcurl.so.4
    -rwxr-xr-x 1 root root 439320 Dec 2 23:16 libcurl.so.4.3.0
    [root@localhost lib64]# yum clean all
    Fatal Python error: pycurl: libcurl link-time version is older than compile-time version
    Aborted
    [root@localhost lib64]# yum clean all
    Fatal Python error: pycurl: libcurl link-time version is older than compile-time version
    Aborted
    [root@localhost lib64]# yum repolist
    Fatal Python error: pycurl: libcurl link-time version is older than compile-time version
    Aborted

    ReplyDelete