Super n00b question about derivations

First off: you don’t need to talk yourself down! It’s a valid question :slight_smile:

To answer it: it’s simply the bin directory in the derivation’s output that ends up in $PATH.

You can’t set arbitrary environment variables. You can write a shell hook which gets evaluated in nix-shell, but this won’t affect the result of installing the package into a profile.

EDIT: a number of env vars end up pointing to the nix profile though. For example, on my nixos:

$ env | grep -F .nix-profile
GTK_PATH=/etc/profiles/per-user/linus/lib/gtk-2.0:/etc/profiles/per-user/linus/lib/gtk-3.0:/home/linus/.nix-profile/lib/gtk-2.0:/home/linus/.nix-profile/lib/gtk-3.0:/nix/var/nix/profiles/default/lib/gtk-2.0:/nix/var/nix/profiles/default/lib/gtk-3.0:/run/current-system/sw/lib/gtk-2.0:/run/current-system/sw/lib/gtk-3.0
INFOPATH=/etc/profiles/per-user/linus/info:/etc/profiles/per-user/linus/share/info:/home/linus/.nix-profile/info:/home/linus/.nix-profile/share/info:/nix/var/nix/profiles/default/info:/nix/var/nix/profiles/default/share/info:/run/current-system/sw/info:/run/current-system/sw/share/info
KDEDIRS=/etc/profiles/per-user/linus:/home/linus/.nix-profile:/nix/var/nix/profiles/default:/run/current-system/sw
LIBEXEC_PATH=/etc/profiles/per-user/linus/lib/libexec:/home/linus/.nix-profile/lib/libexec:/nix/var/nix/profiles/default/lib/libexec:/run/current-system/sw/lib/libexec
MOZ_PLUGIN_PATH=/etc/profiles/per-user/linus/lib/mozilla/plugins:/home/linus/.nix-profile/lib/mozilla/plugins:/nix/var/nix/profiles/default/lib/mozilla/plugins:/run/current-system/sw/lib/mozilla/plugins
NIX_PROFILES=/run/current-system/sw /nix/var/nix/profiles/default /home/linus/.nix-profile /etc/profiles/per-user/linus
PATH=/home/linus/bin:/run/wrappers/bin:/etc/profiles/per-user/linus/bin:/home/linus/.nix-profile/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin
PERL5LIB=/etc/profiles/per-user/linus/lib/perl5/site_perl:/home/linus/.nix-profile/lib/perl5/site_perl:/nix/var/nix/profiles/default/lib/perl5/site_perl:/run/current-system/sw/lib/perl5/site_perl
PKG_CONFIG_PATH=/etc/profiles/per-user/linus/lib/pkgconfig:/home/linus/.nix-profile/lib/pkgconfig:/nix/var/nix/profiles/default/lib/pkgconfig:/run/current-system/sw/lib/pkgconfig
QTWEBKIT_PLUGIN_PATH=/etc/profiles/per-user/linus/lib/mozilla/plugins/:/home/linus/.nix-profile/lib/mozilla/plugins/:/nix/var/nix/profiles/default/lib/mozilla/plugins/:/run/current-system/sw/lib/mozilla/plugins/
QT_PLUGIN_PATH=/etc/profiles/per-user/linus/lib/qt4/plugins:/etc/profiles/per-user/linus/lib/kde4/plugins:/home/linus/.nix-profile/lib/qt4/plugins:/home/linus/.nix-profile/lib/kde4/plugins:/nix/var/nix/profiles/default/lib/qt4/plugins:/nix/var/nix/profiles/default/lib/kde4/plugins:/run/current-system/sw/lib/qt4/plugins:/run/current-system/sw/lib/kde4/plugins
STRIGI_PLUGIN_PATH=/etc/profiles/per-user/linus/lib/strigi/:/home/linus/.nix-profile/lib/strigi/:/nix/var/nix/profiles/default/lib/strigi/:/run/current-system/sw/lib/strigi/
TERMINFO_DIRS=/etc/profiles/per-user/linus/share/terminfo:/home/linus/.nix-profile/share/terminfo:/nix/var/nix/profiles/default/share/terminfo:/run/current-system/sw/share/terminfo
XCURSOR_PATH=/home/linus/.icons:/etc/profiles/per-user/linus/share/icons:/home/linus/.nix-profile/share/icons:/nix/var/nix/profiles/default/share/icons:/run/current-system/sw/share/icons
XDG_CONFIG_DIRS=/etc/profiles/per-user/linus/etc/xdg:/home/linus/.nix-profile/etc/xdg:/nix/var/nix/profiles/default/etc/xdg:/run/current-system/sw/etc/xdg
XDG_DATA_DIRS=/run/opengl-driver/share:/run/opengl-driver-32/share:/etc/profiles/per-user/linus/share:/home/linus/.nix-profile/share:/nix/var/nix/profiles/default/share:/run/current-system/sw/share
3 Likes