Zależności między plikami, zgodnie z deklaracją w języku Nix, są automatycznie śledzone i utrwalane w „magazynie Nix”. Nowe pliki w magazynie Nix są tworzone poprzez „derywacje”. Derywacja to trwała struktura danych, która określa plik wykonywalny, argumenty i zmienne środowiskowe dla jego wywołania oraz inne pliki do odczytu z magazynu Nix. Plik wykonywalny jest następnie uruchamiany w piaskownicy, która uniemożliwia dostęp do czegokolwiek poza jawnie określonymi plikami wejściowymi i zezwala na zapis wyłącznie do wyznaczonej ścieżki wyjściowej. Nix zachowuje informacje o zależnościach w plikach wyjściowych, skanując w poszukiwaniu charakterystycznych skrótów używanych w nazwach katalogów pakietów.

Automatyczne śledzenie odniesień zapewnia integralność pakietów, nawet gdy są one przesyłane między innymi maszynami. Umożliwia również zbieranie nieużywanych pakietów, gdy żaden inny pakiet nie jest od nich zależny. Kosztem większych wymagań dotyczących pamięci masowej, wszystkie uaktualnienia w Nix są gwarantowane jako atomowe i umożliwiające wydajny rollback. Unikalne nazwy katalogów umożliwiają instalowanie wielu pakietów z różnymi wersjami bibliotek współdzielonych i rzekomo eliminują tzw. piekło zależności.