some more comments and examples

svn path=/nixpkgs/trunk/; revision=33073
This commit is contained in:
Joachim Schiele 2012-03-14 18:46:18 +00:00
parent 0416bc1ddb
commit 7bf2d4966e

View File

@ -20,22 +20,42 @@
''; '';
}; };
in rec { in rec {
# this is the example we will be using
nixEnv = simple { nixEnv = simple {
name = "nix"; name = "mytestenv";
buildInputs = [ libtool stdenv perl curl bzip2 openssl aterm242fixes db45 autoconf automake zlib ]; buildInputs = [ libtool stdenv perl curl bzip2 openssl db45 autoconf automake zlib ];
cTags = [ aterm242fixes];
}; };
# this is a second example (not covered here but still useful) - given by viric
sdlEnv = pkgs.myEnvFun {
name = "sdl";
buildInputs = [ stdenv SDL SDL_image SDL_ttf SDL_gfx cmake SDL_net pkgconfig];
};
# add more environments below here, just follow the syntax given in the above examples
}; };
} }
put this into your .bashrc
Put this into your .bashrc
loadEnv(){ . "${HOME}/.nix-profile/dev-envs/${1}"; } loadEnv(){ . "${HOME}/.nix-profile/dev-envs/${1}"; }
then nix-env -iA env-nix afterwards execute the new bash shell:
and $ bash
$ loadEnv postgresql
the nix expression created is called: env-mytestenv and must appear when searching for it using:
$ nix-env -qa '*' | grep nix
env-mytestenv
now we should build our newly defined custom environment using this command on a shell, so type:
$ nix-env -iA env-mytestenv
afterwards load the new environment using:
$ loadEnv mytestenv
one could also use this function instead:
$ load-mytestenv-env
the result using either command should be:
env-mytestenv loaded
note: after you typed the above command you will lose all the other tools usually found in a shell you are used to. in this
example you will not be able to type 'vi' to edit a file as vi is not included in the dependencies
*/ */
{ mkDerivation, substituteAll, pkgs } : { stdenv ? pkgs.stdenv, name, buildInputs ? [], cTags ? [], extraCmds ? ""} : { mkDerivation, substituteAll, pkgs } : { stdenv ? pkgs.stdenv, name, buildInputs ? [], cTags ? [], extraCmds ? ""} :