Nixing It Up - gotolinux/gotolinux.github.com GitHub Wiki

Nixing It Up

I just recently (re)discovered Nix, a package management system that has many things in common with GoboLinux's system. But also has something very important in common with Goto's planed file management system. Namely, it uses cryptographic signatures to identify programs, including details of their version, dependencies and build configurations. This allows multiple versions and even multiple configurations of the same package to reside and be run simultaneously!

And that is exactly what we want.

From what I learned so far, Nix stores everything related to it's activity in /nix, including a nix/var directory. We will need to ether map these to our tree and use "gobohide", or reconfigure Nix to use alternate paths. One design in particular will require a modification to the Nix system. While Nix stores programs in the form of:

  /nix/
    store/
      r8vvq9kq18pz08v249h8my6r9vs7s0n3-firefox-2.0.0.1/

We will want to "Gobo-ize" this to:

  /Programs/
    Standard/
      Firefox/
        2.0.0.1/
          r8vvq9kq18pz08v249h8my6r9vs7s0n3/

We may not be able to carry on the capitalization of the program's name. But that depends. It may be possible to modify Gobo's package system to behave like Nix's, and we could then use it instead. Even so, it is not a vital difference. In fact, the program names should be checked to ensure case-indifference either way. But we do want this better directory structure.

If we do end up using Nix's package manager perhaps it would make more sense to to use NixStore/ instead of Standard/. This in turn leads me to wonder if it would not be possible to also support GoboLinux's package manager along side Nix's (at least until such time as Goto can provide it's own package hosting). I don't know if that really makes sense. In any case, I'm still keen on using Gobo's smartly names Compile and InstallPackage scripts, so we shall have to see how this plays out. But cryptographic signatures are definitely in.