|
发表于 2006-9-15 09:11:25
|
显示全部楼层
linux的lib hell!!!!!!!!
Under Windows, you have the infamous "DLL hell", where you can have dozens
of different programs which require different versions of the same
third-party DLL with the same name. This page --
http://www.faqs.org/docs/artu/ch03s02.html -- describes it best:
Because Windows does not handle library versioning properly, it suffers
from a chronic configuration problem called "DLL hell", in which
installing new programs can randomly upgrade (or even downgrade!) the
libraries on which existing programs depend. This applies to the
vendor-supplied system libraries as well as to application-specific ones:
it is not uncommon for an application to ship with specific versions of
system libraries, and break silently when it does not have them.
Unfortunately, we've seen this under OS/2 as well, with the inability of
Mozilla-based applications to coexist without awkward workarounds.
Unix-based systems like Linux, on the other hand, avoid "DLL hell" by
linking to specific named versions of shared libraries. Essentially, it
trades it for "lib hell" instead, where every single application can
depend on a different point version of a library, and refuse to run
until a copy of that exact version is hunted down and installed. When you
have hundreds of programs, each of which can depend on a dozen or more
such libraries, it's enough to turn a person prematurely grey.
It's exacerbated, of course, by Linux's continued adherence to the
fundamental Unix design philosophies, notably "never implement what you
can rely on an existing program or library for".
I just finished assembling a WarpIn install package for the GIMP 2.2.8,
and the number of external libraries it depends on is insane. (And it's
not even the worst offender by a long shot.)
At least Debian-based Linuxes have an intelligent package management
system that keeps track of all dependencies for you (and offers to
download and install them automatically if it finds them missing). |
|