On 2006-10-11, Peter Hayes <not_in_use@xxxxxxxxxxxxxx> wrote:
> In <1p61ckxidk678.dlg@xxxxxxxxxxxxxxx> Erik Funkenbusch wrote:
>> On Wed, 11 Oct 2006 12:13:20 +0100, Roy Schestowitz wrote:
>>> No More DLL Hell - The Song
>>> ,----[ Quote ]
>>>| If you don't know what "DLL Hell" is, you might not understand this
>>>| song. If you do know what it is you will probably love it.
>>> Song and lyrics on page.
>>> ...And they say Linux dependency hell still exists while Synaptic and
>>> repositories, for example, make it long-forgotten history.
>> You seem to grossly misunderstand what DLL (and shared library) hell
>> is. It has nothing to do with downloading dependancies when installing
>> your software, it has to do with conflicting dependancies already
>> installed. Synaptic can't solve that.
Synaptic doesn't need to.
Unix already does that for free.
Just reset your library path for applications that need it.
...assuming that a separate version of the library in question
couldn't just reside somewhere in your library path already anyways.
>> An example would be one version of a library requires foolibc 2.2.2-
>> patch1 while another requires 2.2.2-patch15, and you can't have both
>> installed at the same time (you can have multiple major versions, but
Sure you can. You perhaps can't have them in the path specified
by ld.so.conf. Also the notion of an "installed" library is very tenuous
in Unix. You can have a library "installed" anywhere in the system and
it can even reside in "user space".
>> not multiple minor versions). Installing 2.2.2-patch15 breaks app1,
>> while app2 won't run with 2.2.2-patch1.
That's easy enough to deal with by creating an environment
where app2 only sees the libraries it needs and everything else isn't
even aware that app2 exists on the system.
This is VERY easy with Unix.
> Yes, it's much better to distribute your app as a package as is
> generally done for OS X, and sidestep the dependency/DLL-hell issue
Unix can do the same thing. OSX is probably just doing the Unix thing.
OTOH, if an OSX app is entirely self contained then how can any sort
of code reuse occur? Aren't you just doing what ANY OS could do with a mere
static link rather than the dynamic linking which is customary.
Truth is irrelevant as long as the predictions are good. |||
/ | \