Basic question: Why do I need two versions of glibc?
The background:
After cleaning up non-sys stuff with help of eix-test-obsolete it now shows
Installed packages with a version not in the database (or masked):
[D] sys-libs/glibc (2.3.4.20040808-r1(i686-pc-linux-gnu-2.2)@08.11.2007 2.6.1
(2.2)@29.12.2007 -> 2.6.1(2.2)): GNU libc6 (also called glibc2) C library
emerge --depclean -p
gives me among other things:
>>> These are the packages that would be unmerged:
Yesterday I courageously unemerge =glibc-2.3.4.20040808-r1. This made my
system unbootable. The following thread
(http://forums.gentoo.org/viewtopic-t-573767-highlight-unmerged+glibc.html)
led me out of there. I`d reinstalled glibc-2.6.1 and now I'm in the same
situation as before.
equery depends =sys-libs/glibc-2.6.1 lists about 30 entries
equery depends =sys-libs/glibc-2.3.4.20040808-r1 lists 27 entries of which
some are the same some are different.
glibc-2.3.4.20040808-r1 seems to be a leftover from initial install back in
2004.
Am Sonntag, 8. Juni 2008 schrieb Nicolai Beuermann:
> Basic question: Why do I need two versions of glibc?
You don't.
> equery depends =sys-libs/glibc-2.6.1 lists about 30 entries
> equery depends =sys-libs/glibc-2.3.4.20040808-r1 lists 27 entries of which
> some are the same some are different.
>
> glibc-2.3.4.20040808-r1 seems to be a leftover from initial install back in
> 2004.
Re-emerge those packages which have the older glibc as dependency. After that,
you can unmerge 2.3.4.
HTH...
Dirk
06-09-2008, 02:45 PM
Nicolai Beuermann
Cleaning up installation / two glibc versions
On 09.06.2008 14:10:00, Dirk Heinrichs wrote:
> Am Sonntag, 8. Juni 2008 schrieb Nicolai Beuermann:
> > Basic question: Why do I need two versions of glibc?
>
> You don't.
>
> > equery depends =sys-libs/glibc-2.6.1 lists about 30 entries
> > equery depends =sys-libs/glibc-2.3.4.20040808-r1 lists 27 entries of
> > which some are the same some are different.
> >
> > glibc-2.3.4.20040808-r1 seems to be a leftover from initial install back
> > in 2004.
>
> Re-emerge those packages which have the older glibc as dependency. After
> that, you can unmerge 2.3.4.
>
> HTH...
>
> Dirk
After I'd reemerged listed packages the equery command from above still lists
the dependencies.
On Monday 09 June 2008, Nicolai Beuermann wrote:
> After I'd reemerged listed packages the equery command from above
> still lists the dependencies.
>
> what goes wrong?
equery depends is not accurate.
It does not list packages that are definitely dependencies, it lists
dependencies that might possibly be applicable to your system, based on
what is in the ebuild.
The definitive way to find out exactly what is going on is to run emerge
with the -t option and see from that what is pulling a package in.
--
Alan McKinnon
alan dot mckinnon at gmail dot com
--
gentoo-user@lists.gentoo.org mailing list
06-09-2008, 10:57 PM
Nicolai Beuermann
Cleaning up installation / two glibc versions
On 09.06.2008 19:10:53, Alan McKinnon wrote:
> On Monday 09 June 2008, Nicolai Beuermann wrote:
> > After I'd reemerged listed packages the equery command from above
> > still lists the dependencies.
> >
> > what goes wrong?
> The definitive way to find out exactly what is going on is to run emerge
> with the -t option and see from that what is pulling a package in.
I've run "emerge -tevp" (or similar) on the packages "equery depends
=sys-libs/glibc-2.3.4" reports. All of sys related ebuilds among others show
a dependency to glibc-2.6.1.
I thought that was a good sign and unmerged old glibc-2.3.4. Again the result
was an unbootable system.
So for now, i am where i started.
Any ideas?
Nicolai Beuermann <Nicolai.Beuermann@gmx.de> a écrit:
> Again
> the result was an unbootable system.
What is the error exactly ?
--
Nicolas Sebrecht
--
gentoo-user@lists.gentoo.org mailing list
06-10-2008, 10:28 AM
"Nicolai Beuermann"
Cleaning up installation / two glibc versions
>Nicolai Beuermann <Nicolai.Beuermann@gmx.de> a écrit:
>
>> Again
>> the result was an unbootable system.
>
>What is the error exactly ?
>
I cannot remember the exact words right now - when i´m back home i´ll consult the logs.
Unmerging the old glibc ends up in an error about commands are no longer found. Back at the prompt I can´t fire any command. Nothing was found. Even shutdown failed.
Thanks
--
gentoo-user@lists.gentoo.org mailing list
06-10-2008, 05:37 PM
Enrico Weigelt
Cleaning up installation / two glibc versions
* Alan McKinnon <alan.mckinnon@gmail.com> wrote:
> The definitive way to find out exactly what is going on is to run emerge
> with the -t option and see from that what is pulling a package in.
Is there any way to let emerge assume certain package is not
installed (w/o tweaking /var/db/pkg) ?
This would be a great way for finding deps to packages you'd
like to get rid of.
cu
--
---------------------------------------------------------------------
Enrico Weigelt == metux IT service - http://www.metux.de/
---------------------------------------------------------------------
Please visit the OpenSource QM Taskforce:
http://wiki.metux.de/public/OpenSource_QM_Taskforce
Patches / Fixes for a lot dozens of packages in dozens of versions:
http://patches.metux.de/
---------------------------------------------------------------------
--
gentoo-user@lists.gentoo.org mailing list
> Unmerging the old glibc ends up in an error about commands are
> no longer found. Back at the prompt I can´t fire any command.
> Nothing was found. Even shutdown failed.
When you're trying to run some binary (which definitively exists
and is +x) and you get something like no such file or directory,
it probably means that the libc stub in your binary cannot load
the libc's dynamic loader. That's because (at least on glibc
systems), the dynamic loader itself sits in an shared library
(eg. /lib/ld-linux.so) and each executable has an little stub
which just loads the dynamic linker. This is then responsible for
loading all the required shared libs (eg. by consulting ld.so.conf,
ld.so.cache, environment, etc). This all happens much earlier
before main() is called.
Yes, glibc's stub should be more clear about this ;-o
IMHO, you've removed exactly that libc (or at least it's dynamic
linker) your binaries are built against, so they can't be executed
anymore - you'r system is unbootable.
ldd output on these binaries should give your more enlightenment.
If you're sure you've rebuilt all of them and they're still built
against the old glibc, it's might be a toolchain problem. Try to
rebuild gcc and binutils first.
BTW: if you don't want to risk an unbootable system, you could have
a try in chroot first.
cu
--
---------------------------------------------------------------------
Enrico Weigelt == metux IT service - http://www.metux.de/
---------------------------------------------------------------------
Please visit the OpenSource QM Taskforce:
http://wiki.metux.de/public/OpenSource_QM_Taskforce
Patches / Fixes for a lot dozens of packages in dozens of versions:
http://patches.metux.de/
---------------------------------------------------------------------
--
gentoo-user@lists.gentoo.org mailing list
06-12-2008, 09:37 AM
Nicolai Beuermann
Cleaning up installation / two glibc versions
Am Dienstag 10 Juni 2008 schrieb Enrico Weigelt:
> IMHO, you've removed exactly that libc (or at least it's dynamic
> linker) your binaries are built against, so they can't be executed
> anymore - you'r system is unbootable.
>
> ldd output on these binaries should give your more enlightenment.
That´s the situation (again):
eix sys-libs/glibc
[D] sys-libs/glibc
Available versions: (2.2) [P]2.2.5-r10 [P]2.3.2-r12 2.3.5-r3 2.3.6-r4
2.3.6-r5 2.4-r4 2.5-r2 2.5-r3 2.5-r4 **2.5.1 ~2.6 2.6.1 ~2.7 ~2.7-r1 ~2.7-r2
{build debug erandom gd glibc-compat20 glibc-omitfp hardened
linuxthreads-tls multilib nls nptl nptlonly pic profile selinux userlocales
vanilla}
Installed versions: 2.3.4.20040808-r1(i686-pc-linux-gnu-2.2)(08:48:34
08.11.2007)(nls
userlocales -build -debug -erandom -hardened -multilib -nptl -pic)
2.6.1(2.2)(09:55:15 12.06.2008)
(nls -debug -gd -glibc-omitfp -hardened -multilib -profile -selinux -vanilla)
Let´s see if i´ve got what you mean:
Because my system didn`t work anymore after removing glibc-2.3.4, with the
help of ldd i should find some dependencies.
ldd `which bash`
linux-gate.so.1 => (0xb7fda000)
libncurses.so.5 => /lib/libncurses.so.5 (0xb7f77000)
libdl.so.2 => /lib/libdl.so.2 (0xb7f73000)
libc.so.6 => /lib/libc.so.6 (0xb7e43000)
/lib/ld-linux.so.2 (0xb7fdb000)
l /lib/libc.so.6
lrwxrwxrwx 1 root root 13 12. Jun 09:55 /lib/libc.so.6 -> libc-2.6.1.so
Within the few commands i´ve checked i was unable to find any dependency to
glibc-2.3.4 :-(
thanks
>
> If you're sure you've rebuilt all of them and they're still built
> against the old glibc, it's might be a toolchain problem. Try to
> rebuild gcc and binutils first.
>
>
> BTW: if you don't want to risk an unbootable system, you could have
> a try in chroot first.
>
>
> cu
> --
> ---------------------------------------------------------------------
> Enrico Weigelt == metux IT service - http://www.metux.de/
> ---------------------------------------------------------------------
> Please visit the OpenSource QM Taskforce:
> http://wiki.metux.de/public/OpenSource_QM_Taskforce
> Patches / Fixes for a lot dozens of packages in dozens of versions:
> http://patches.metux.de/
> ---------------------------------------------------------------------