For example I can query for available package versions of llvm:
$ nix-env -qa llvm
...
llvm-4.0.1
llvm-5.0.2
llvm-6.0.1
With homebrew I can provider an option when installing a package like llvm, in this case the --shared
option:
$ brew install llvm --shared
Does nix support providing package specific options like this? Is there a way to list the available options of a package?
Yes, nix derivations can come with optional arguments. For example, the derivation for LLVM 6 nixpkgs/development/compilers/llvm/6/llvm.nix starts like this:
{ stdenv
, fetch
...
, zlib
, debugVersion ? false
, enableManpages ? false
, enableSharedLibraries ? true
, enableWasm ? true
, darwin
}:
You can supply values for these arguments on the nix-env
command line using the options --arg
or --argstr
, compare the man page. E.g.,
nix-env -iA nixpkgs.llvm --arg enableSharedLibraries false
I'm not aware of an easier way to find out such options than to read the nixpkgs source, unfortunately.