> On Mar 26, 2011 11:13 AM, "Keith Lofstrom" <[email protected]> wrote:
... using multiple library versions simultaneously

On Sat, Mar 26, 2011 at 01:04:59PM -0700, Rogan Creswick wrote:
> NixOs does much of what you describe, retaining multiple versions of a
> library, but I have not yet tried it.

If I understand their webpage, NixOs retains previous libraries,
enforcing compatability through compilation, but the previous
libraries are not simultaneously usable.  It seems more like
GenToo, which rebuilds everything from source (AFAIKS).  

NixOs appears to enforce One Giant Compatability.  You must have
the source for every component, and those components must all be
compatably written.  Besides make files and dependency lists,
there must also be an accurate Nix language description of those
dependencies.  NixOs looks like a great way to build small,
secure, and robust systems, and to test new configurations and
roll back to old ones.  But for big shambling collections of
thousands of applications from thousands of sources, such as
the typical desktop system, that seems impractical. 

In my case, even harder.  I write about 100 programs a year,
little one-offs that do some bit of numerical calculation for
something I am designing (my computer - computes!  Fancy that!!).
I would either do those outside of Nix (and risk them failing
if I tried using the binaries later), or I spend a lot of extra
effort describing their dependencies.

Real systems connect to other systems, and the dependencies 
spill across machine boundaries.  Sometimes you need to run
program version A to connect to machine A, and program version B
to connect to B.  That happens with Perl. Our friends at Redhat
have their own /usr/bin/perl, which is an old and strangely
patched version that is incompatible with most new stuff Out
There, but essential for their system tools to work.  So, we
also end up building /usr/local/bin/perl, keeping that upgraded,
and using that for everything besides system supplied stuff. 
It would be nice to have a less kludgy way to do such things,
and less work than rewriting everything for rigid compatability.

NixOs does not appear to have any mechanism for supporting
multiple versions of libraries simultaneously, and in fact
would make the "two-Perl" solution more difficult.  While it
would be nice to get everyone to write code that would play
together nicely, the history of a half century of software
production suggests this is unlikely. 

Is there something I don't understand here?  I don't run
GenToo, so perhaps recompiling and upgrading from source, and
determining the dependencies of applications, is not very hard.  

We build diverse systems.  Rather than wait for some miraculous
convergence on universally compatible code, perhaps it is time
to design for that diversity.  

Keith

-- 
Keith Lofstrom          [email protected]         Voice (503)-520-1993
KLIC --- Keith Lofstrom Integrated Circuits --- "Your Ideas in Silicon"
Design Contracting in Bipolar and CMOS - Analog, Digital, and Scan ICs
_______________________________________________
PLUG mailing list
[email protected]
http://lists.pdxlinux.org/mailman/listinfo/plug

Reply via email to