Thank you all very kindly for the information! Based on your responses, this is my understanding on what I should do for a local clone of nixpkgs:
- Set NIX_PATH="nixpkgs=/home/jhaberku/src/nixpkgs/pkgs" - Update ~/.nix-defexpr to point to the clone. Luca, your pill #15 references that you will describe how to do this in the next edition (#16), but I didn't see it there. I saw on http://fluffynukeit.com/installing-essential-software-in-nixos/ that one can just delete the contents of ~/.nix-defexpr and create a link to the local nixpkgs: $ cd ~/.nix-defexpr && rm * && ln -s ~/src/nixpkgs nixpkgs Is that right? > If you are fine with building everything from source, there shouldn’t be anything wrong. That’s actually the purpose of Nix/NixOS. Great. :-) Best, -- Jesse On Wed, Mar 4, 2015 at 1:03 AM, Kirill Elagin <kirela...@gmail.com> wrote: > On Tue, Mar 3, 2015 at 5:09 PM Jesse Haber-Kucharsky < > je...@haberkucharsky.com> wrote: > >> I cloned the master branch of github.com/nixos/nixpkgs and set my >> NIX_PATH to point exclusively to the local checkout with "export >> NIX_PATH=/home/jhaberku/src" (nixpkgs exist in the "nixpkgs" directory in >> that location). >> > > This way of seting `NIX_PATH` is somewhat outdated as it is not very > useful nowadays, when nixpkgs and nixos are merged into one repo (they used > to be in different repos). Most of the time you really want to use > different syntax: `NIX_PATH=nixpkgs=/home/jhaberku/src/nixpkgs/pkgs` (note > that pointing it to `pkgs` inside the repo is crucial). > > >> Now, aside from nix complaining about unfree packages and packages marked >> as bad (which I set in my ~/.nixpkgs/config.nix file as directed), I get >> this error all the time: >> >> $ NIX_PATH=/home/jhaberku/src nix-env -qa firefox >> error: attribute ‘interpreterName’ missing, at >> "/home/jhaberku/src/nixpkgs/pkgs/development/web/nodejs/build-node-package.nix":7:16 >> > > This part of Nix is a little bit complicated (and I will also take it one > step furrther and say “messy”). > `NIX_PATH` actually has almost no effect on `nix-env` as by default > (unless overriden with `-f`) it takes the expression to evaluate from > `~/.nix-defexpr` (see the “FILES” section of `man nix-env`). So unless you > use `-f` it uses `nixpkgs` from the channel you are using. > But nixpkgs themselves occasionally do `import <nixpkgs>` which _is_ > influenced by `NIX_PATH` (see the “ENVIRONMENT VARIABLES” section of `man > nix-env`). > So my best guess is that it is this mixture of different versions of > nixpkgs that causes problems. > > So the rule of thumb is to use `-f` with `nix-env` whenever you want to > test something in your local checkout. For some reason I never had problems > using just `-f` without overriding `NIX_PATH` (even though, I believe this > version conflict still takes place but in the opposite direction). > > >> I checkout out a version of nixpkgs from many days earlier, and had no >> such problem. This leads to me questions: >> >> - Was I doing things the right way? If so, is this just a bug that >> slipped through the radar, or is the master branch regularly broken like >> this? If this is normal for master, how does anyone get anything done if >> nix-env refuses to do anything when a package is broken? If it's not a bug >> (and an error in my configuration), what can I do to fix it? >> > > Actually `nix-env` doesn’t refuse to work with broken packages if > everything is set up properly. Tons of errors about broken packages and > other weird stuff is usually a result of it being pointed to a wrong > expression (likely, caused by incorrect `NIX_PATH` in your particular case). > > >> - I'm running my NixOS installation from the nixos-unstable channel and I >> have some system-level packages specified in /etc/nixos/configuration.nix. >> If I somehow manage to get the master branch of nixpkgs actually working, >> is there any reason why I shouldn't install all my user-level packages from >> my local clone of master with "nix-env -i"? In other words, is it okay that >> the system-wide packages are from a different channel than the user-level >> packages? >> > > If you are fine with building everything from source, there shouldn’t be > anything wrong. That’s actually the purpose of Nix/NixOS. > > >> >> Thanks >> _______________________________________________ >> nix-dev mailing list >> nix-dev@lists.science.uu.nl >> http://lists.science.uu.nl/mailman/listinfo/nix-dev >> >
_______________________________________________ nix-dev mailing list nix-dev@lists.science.uu.nl http://lists.science.uu.nl/mailman/listinfo/nix-dev