Nix 파생 상품의 크기를 얻는 방법은 무엇입니까?

Nix 파생 상품의 크기를 얻는 방법은 무엇입니까?

파생 상품을 만든 후 파생 상품의 크기를 계산할 수 있나요? 예를 들어 포스트에서 nixos-rebuild새로운 파생이 차지하는 공간은 얼마나 되는지,이전 빌드로 인한 스토리지 절감 효과를 제외하시겠습니까?

답변1

당신은 원할 수도 있습니다nix path-info(예를 들어 emacs의 경우):

$ nix-build -A emacs '<nixpkgs>'
$ nix path-info -Sh ./result
/nix/store/3l9lddwxz1mayaxvw8iy50ygzzfh1s1b-emacs-27.2   470.4M

~에서닉스 수정 정보 기록:

nix path-info저장 경로에 대한 정보를 표시합니다 nix-store -q. 유용한 기능은 옵션 --closure-size( -S)입니다. 예를 들어, 다음 명령은 현재 NixOS 시스템 클로저의 각 경로에 대한 클로저 크기를 크기별로 정렬하여 표시합니다.

nix path-info -rS /run/current-system | sort -nk2

또한보십시오닉스 설치 매뉴얼.

답변2

이 시도:

nix-store -q --requisites `nix-build --no-out-link '<nixpkgs>' -A vim` | sort -uf | xargs du -ch | tail -1

나는 또한 다음을 보고 싶습니다:

for p in /nix/var/nix/profiles/system* /nix/var/nix/profiles/per-user/$USER/profile*
do
   echo -n $p" ⇒ "
   nix-store -q --requisites $p | sort -uf | xargs du -ch | tail -1
done

분명히 파생된 전이적 클로저의 크기는 크게 겹치므로(공유 라이브러리 등), 이러한 숫자는 항상 전체 공간 사용량을 초과하도록 증가합니다. 그래도 여전히 유용합니다.

관련 정보