> 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
