User: Password:
|
|
Subscribe / Log in / New account

NixOS: purely functional system configuration management

NixOS: purely functional system configuration management

Posted Jun 20, 2009 21:07 UTC (Sat) by njs (guest, #40338)
In reply to: NixOS: purely functional system configuration management by Darkmere
Parent article: NixOS: purely functional system configuration management

Yes, that's exactly what it does. Whether this is good or bad depends on the situation. You lose the ability to drop an upgraded library into place and have everything start using it immediately. Of course, that only works in the first place if you assume that the new library *really is* compatible with your old binaries, which is often assumed but rarely guaranteed. With the NixOS approach you gain the ability to test and switch programs over to the new library one at a time in a controlled fashion, keep some particular critical program using a fixed version of a library while the rest of the system upgrades, etc. Win some lose some.


(Log in to post comments)

NixOS: purely functional system configuration management

Posted Jul 4, 2009 12:36 UTC (Sat) by oak (guest, #2786) [Link]

> Of course, that only works in the first place if you assume that the new
library *really is* compatible with your old binaries, which is often
assumed but rarely guaranteed.

Nowadays Debian provides some support for this. You can easily check
whether any of the symbols changes at build time and build will fail if
they changed, but the library version didn't.

NixOS: purely functional system configuration management

Posted Jul 5, 2009 3:33 UTC (Sun) by njs (guest, #40338) [Link]

That could mean two things: either there's a tool to check that whenever you depend on the existence of a symbol _FOO, there is indeed a symbol _FOO. Or, whenever you used to depend on the existence of a symbol _FOO, not only does _FOO still exist but that it refers to the "same thing". (E.g., if it points to a function, that that function's assembly is unmodified. And all the functions that it calls are, in turn, unmodified.)

I assume you mean the former. Such functionality is handy, but it's exactly what I'm referring to by "assumed" compatibility -- hey, the names are right, it must work! If the library author and the application author did their jobs perfectly then of course this is true, and often it works out well enough in practice, but... the value you see in something like NixOS will depend on how willing you are to assume that's the case.

Personally, I consider our present approach to be a lamentable imperfection imposed by a world of constant security updates, limited bandwidth, and awful QA capabilities. I'm not sure when or if I'll be able to switch to a NixOS-style system, but I'm glad someone is reminding us of this fact.


Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds