1 |
On Wednesday 18 March 2009 13:23:47 Michael P. Soulier wrote: |
2 |
> Hello, |
3 |
> |
4 |
> Looking at what I'm about to pick up via emerge, I notice this |
5 |
> |
6 |
> [ebuild U ] sys-libs/glibc-2.8_p20080602-r1 [2.6.1] |
7 |
> |
8 |
> This immediately sets off alarm bells for me, since glibc is the basis of |
9 |
> the whole system. If I pick this up do I have to rebuild everything? |
10 |
|
11 |
No, this one is safe. Here's what happens: |
12 |
|
13 |
You said "glibc is the basis of the whole system". That's not quite true, it's |
14 |
actually "glibc provides the C library, which is a collection of basic |
15 |
function calls that just about every other program uses sooner or later" |
16 |
|
17 |
Quite a different thing actually. The interface the glibc presents to the rest |
18 |
of the machine doesn't reduce. Everything that your programs used to see, they |
19 |
will still see. What might happen is the glibc provides extra stuff, but that |
20 |
doesn't matter as your existing compiled programs don't know about it and |
21 |
can't use it. A lot like replacing a power outlet in your house - it looks the |
22 |
same as the old one so there's no need to buy a new toaster. |
23 |
|
24 |
If there's an issues, revdep-rebuild will pick them up. |
25 |
|
26 |
Sometimes, glibc is all fsck'ed up. Like sys-libs/glibc-2.9_p20081201-r1. It |
27 |
looks great, till you start firefox and find that it doesn't run anymore... |
28 |
|
29 |
> |
30 |
> I've also frozen my kernel at 2.6.25 for now due to the nvidia-drivers |
31 |
> package. I have to use an older one for 3D accel and it doesn't work with |
32 |
> the newer kernels according to a bug report I saw. At some point I'm |
33 |
> assuming that a new glibc will require a new kernel too, if the interface |
34 |
> changes, so presumably I'll have to update eventually. |
35 |
|
36 |
No, glibc might need updated kernel headers. The compiler uses them when |
37 |
building glibc - the headers tell the compiler what data structures, functions |
38 |
etc look like so that the glibc it builds can talk to whatever kernel you |
39 |
choose to run later. |
40 |
|
41 |
The only time you really need to update the kernel headers is if they provide |
42 |
some new features you want to take advantage of. The interface that the kernel |
43 |
provides to userspace is virtually frozen and Linus simply never changes it. |
44 |
|
45 |
In short, updating glibc is as safe as updating any other piece of software, |
46 |
as long as it has no known major bugs that cause you issues. |
47 |
|
48 |
-- |
49 |
alan dot mckinnon at gmail dot com |