PDA

View Full Version : yum: pycurl module missing(?)



Ancurio
28th May 2011, 06:46 PM
So, for about a week now my yum has been completely dysfunctional because of

There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:

/usr/lib64/python2.7/site-packages/pycurl.so: undefined symbol: CRYPTO_set_locking_callback

Please install a package which provides this module, or
verify that the module is installed correctly.

It's possible that the above module doesn't match the
current version of Python, which is:
2.7.1 (r271:86832, Apr 12 2011, 16:15:16)
[GCC 4.6.0 20110331 (Red Hat 4.6.0-2)]

If you cannot solve this problem yourself, please go to
the yum faq at:
http://yum.baseurl.org/wiki/Faq


I went to the yum FAQ, googled like crazy, tried compiling python and pycurl from source, even tried
installing yum/pycurl from rpms but even this failed with a "backend exited unexpectedly".
On some forum, I read that I should remove all "NetWorker packages", but grepping for that didn't yield
any results either.

Could someone please yield me some advice that doesn't include "reinstall F15"? (I've just been through that for F14->F15 switching)
WIthout yum I'm so screwed >.>

nirik
28th May 2011, 06:57 PM
Compiling from source may well have messed things up more. ;(

How did you do your 14-15 upgrade? yum?

what does:

ldd /usr/lib64/python2.7/site-packages/pycurl.so

output? That should tell you all the things thats linked with.
from there, you can look at each ones package with 'rpm -qf /path' then see if they are f14 packages perhaps or don't verify with 'rpm -V'.

Download and use 'rpm -Uvh' on them to upgrade them to the f15 package. Lather, rinse, repeat.

Ancurio
28th May 2011, 08:23 PM
Compiling from source may well have messed things up more. ;(
D=?

How did you do your 14-15 upgrade? yum?
No, I did a clean reinstall after F15 came out.

what does:
ldd /usr/lib64/python2.7/site-packages/pycurl.so
output?

linux-vdso.so.1 => (0x00007fff4e7d0000)
libcurl.so.4 => /usr/local/lib/libcurl.so.4 (0x00007f45fd143000)
libpython2.7.so.1.0 => /usr/lib64/libpython2.7.so.1.0 (0x00007f45fcd86000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f45fcb69000)
libc.so.6 => /lib64/libc.so.6 (0x00007f45fc7cc000)
librt.so.1 => /lib64/librt.so.1 (0x00007f45fc5c4000)
libz.so.1 => /lib64/libz.so.1 (0x00007f45fc3ac000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f45fc1a8000)
libutil.so.1 => /lib64/libutil.so.1 (0x00007f45fbfa5000)
libm.so.6 => /lib64/libm.so.6 (0x00007f45fbd20000)
/lib64/ld-linux-x86-64.so.2 (0x0000003821c00000)
But I guess none of these should be F14 packages (see above).
Would you reckon just make-uninstalling python/pycurl in /usr/local ?

Edit: I checked just for the hell of it and each of them is either a "fc15" marked package or belongs to the (seemingly generic) "glibc-2.13.90-9.x86_64"
The weirdest thing about this is that I didn't meddle with anything yum or python related before this happened,
all I did that might be slightly related is compiling libcurl from source (but how could that create such a big fuss??)

nirik
28th May 2011, 08:52 PM
Edit: I checked just for the hell of it and each of them is either a "fc15" marked package or belongs to the (seemingly generic) "glibc-2.13.90-9.x86_64"
The weirdest thing about this is that I didn't meddle with anything yum or python related before this happened,
all I did that might be slightly related is compiling libcurl from source (but how could that create such a big fuss??)

yes. it's trying to use your locally compiled libcurl in /usr/local/lib.

Try moving/removing that library and see if it all works after that.

Ancurio
28th May 2011, 09:48 PM
Alright, first of, HUGE thanks to you for helping me with this quickly, nirik! =D
Uninstalling the local curl really solved everything.

Still though, could you explain to me why exactly the local curl version was unusable? Different API perhaps?

nirik
28th May 2011, 09:55 PM
Could be any of:

- Fedora's libcurl is compiled with different options or patches.
- The version you compiled was newer and didn't have that symbol anymore.
- The version you compiled was older and didn't have that symbol yet.

:)