LinuxQuestions.org
Share your knowledge at the LQ Wiki.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > SUSE / openSUSE
User Name
Password
SUSE / openSUSE This Forum is for the discussion of Suse Linux.

Notices


Reply
  Search this Thread
Old 10-19-2004, 03:12 AM   #1
greennick
Member
 
Registered: Aug 2002
Location: san jose, CA
Distribution: SuSE 8.1, 64Studio Debian
Posts: 31

Rep: Reputation: 15
Yast2 Online Update broke libraries - fix?


YaST2 Onlne Update broke my libraries! How do I fix this? I've had similar problems before and it was such a nightmare to get out of it that I'm hoping someone can help me find the simpler fix this time...

Here's the error I get and what I know:

nicholas@linux:~> ls
ls: relocation error: /lib/i686/libpthread.so.0: undefined symbol: _dl_cpuclock_offset

*where's it come from?*
nicholas@linux:~> nm -o /lib/* /lib/*/* /usr/lib/* /usr/lib/*/* /usr/local/lib/* 2> /dev/null | grep cpuclock
/lib/libpthread.so.0:0000d380 T pthread_getcpuclockid
/lib/librt.so.1:00003830 T clock_getcpuclockid
/lib/i686/libpthread.so.0: U _dl_cpuclock_offset
/lib/i686/libpthread.so.0:0000be30 T pthread_getcpuclockid
/usr/lib/libpthread.a:getcpuclockid.o: U __pthread_find_self
/usr/lib/libpthread.a:getcpuclockid.o: U __pthread_handles
/usr/lib/libpthread.a:getcpuclockid.o: U __pthread_initial_thread
/usr/lib/libpthread.a:getcpuclockid.o: U __pthread_initial_thread_bos
/usr/lib/libpthread.a:getcpuclockid.o: U __pthread_manager_thread
/usr/lib/libpthread.a:getcpuclockid.o: U __pthread_manager_thread_bos
/usr/lib/libpthread.a:getcpuclockid.o: U __pthread_manager_thread_tos
/usr/lib/libpthread.a:getcpuclockid.o: U __pthread_nonstandard_stacks
/usr/lib/libpthread.a:getcpuclockid.o:00000000 T pthread_getcpuclockid
/usr/lib/libpthread.so:0000d380 T pthread_getcpuclockid
/usr/lib/librt.a:clock_getcpuclockid.o:00000000 T clock_getcpuclockid
/usr/lib/librt.a:clock_getcpuclockid.o: U getpid
/usr/lib/librt.so:00003830 T clock_getcpuclockid

*seems like it's only in /lib/i686/libpthread.so.0, so what causes that?*
nicholas@linux:~> ldd /lib/i686/libpthread.so.0
libc.so.6 => /lib/i686/libc.so.6 (0x4001f000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
nicholas@linux:~> rpm -q --whatprovides libc.so.6
glibc-2.2.5-177
nicholas@linux:~> rpm -q --whatprovides ld-linux.so.2
glibc-2.2.5-177
nicholas@linux:~> rpm -q --whatprovides libpthread.so.0
glibc-2.2.5-177

*anything changed from the package?*
nicholas@linux:~> rpm -V glibc-2.2.5-177
.......T c /etc/rpc
S.5....T /usr/bin/ldd
..5..... /usr/share/man/man8/ldconfig.8.gz

But none of that seems to have problems, hence it seems this isn't the root of the problem.


Background - what I did that started this mess:

I ran SuSE's YaST2 Online Update (YOU) tonight (took 3-4 hours, jeez), and it managed to download and install a load of updates, including glib and klib (it failed on the kernel, but I don't particularly care since I rebuilt mine earlier today) and finished up alright, but now my libraries are broken.

YOU told me to run /sbin/SuSEconfig when it was done (I did) and to run lilo if I use that (I don't; I use grub). It also alerted me that a reboot would be necessary in the event of a kernel update, but it didn't update the kernel and I'm nervous about rebooting when I've got fundamental library problems - I once got myself so stuck with bad libraries that I couldn't boot (I had to go through some long arduous process of using floppies with statically-linked versions of necessary commands so i could go about the patch job of getting rid of the new libraries and putting the old ones back).

I'm running kernel 2.6.8.1 with SuSE 8.1 on an HP Omnibook 900.

Last edited by greennick; 10-19-2004 at 03:48 PM.
 
Old 10-20-2004, 10:43 AM   #2
ithawtewrong
Member
 
Registered: Jul 2004
Location: Mile High
Posts: 161

Rep: Reputation: 30
I would have to suggest as your first course of action to boot up with your Install CD. Select Install -> The language you use then you should have a repair option.
This should fix your issue since it's a basic command that appears to be broken.
 
Old 10-20-2004, 01:46 PM   #3
greennick
Member
 
Registered: Aug 2002
Location: san jose, CA
Distribution: SuSE 8.1, 64Studio Debian
Posts: 31

Original Poster
Rep: Reputation: 15
Hm, that's an option, though I wonder how good the install CDs would be at repairing the libraries situation (especially considering that they'll have all the old versions, and my ultimate goal is to successfully get NEW libraries - everything seems to require glibc-2.3 these days, I've got 2.2.5).

Let me be clear, it's not one command that's broken - it's libpthread.so.0 and whatever it gets its information from, so everything that depends on libpthread fails to run (including ls, yast2, openoffice, probably lots more).

Do you think trying to manually update my glibc packages (which include libpthread and all the rest) might help, or is that suicidal? Can anyone tell me the *right* way to update my libraries without trashing my system?

- nick
 
Old 10-20-2004, 06:17 PM   #4
greennick
Member
 
Registered: Aug 2002
Location: san jose, CA
Distribution: SuSE 8.1, 64Studio Debian
Posts: 31

Original Poster
Rep: Reputation: 15
Thumbs up fixed?

So mabe this is fixed for the moment...I tried an old trick where I redirected the library path to an old backup of my libraries to see if a command would work:

linux# export LD_LIBRARY_PATH=/libold; ls

That still didn't work even with several lib backup directories, so I used ldd and file to take a look at each of those versions of libpthread to see what they used - and all of them used the same /lib/ld-linux.so.2, whether they were in /libold or whatever. So I did a

linux# file /lib/ld-linux.so.2
(which was in the ldd dependencies list for libpthread.so.0) and saw that it linked to /lib/ld-2.2.5.so.0, as it should have.

But other versions of ld-2.2.5.so.0 still existed in my backup directories - /libold/ld-2.2.5.so.0. So I rerouted the link:

linux# ln -sf /libold/ld-2.2.5.so.0 /lib/ld-linux.so.2

...And voila! Commands worked without a hitch. Diff shows only that the two versions of ld-2.2.5.so.0 are different, but interestingly enough I found another old version of that file that I'd saved that had caused similar problems, and it was the exact same size as this new bad one. Weird.

So now I've copied things over appropriately so I'm running on the "good" backup version of ld-2.2.5.so.0 and things are alright (which is why I'm able to run mozilla to post this). But I'm suspicious - is this a permanent solution? What went wrong here and why? How do I update my libraries but prevent this mess in the future?

If you have ideas, I'm listening.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
yast2 online update error mokojin SUSE / openSUSE 7 02-06-2005 09:31 PM
Suse 8.0 Yast2 Online Update via Proxy Sammy2ooo Linux - Newbie 0 06-17-2003 03:52 AM
problems with yast2 online update in suse 8 msalihos Linux - General 1 01-02-2003 09:39 PM
Suse got broke and now YaST2 gui dont work... DoomRider Linux - Hardware 0 08-30-2002 03:54 PM
Yast2 online update Ice9 Linux - Distributions 4 06-10-2002 03:01 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > SUSE / openSUSE

All times are GMT -5. The time now is 08:06 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration