8.3.3.15. nix-store --realise
نام
nix-store --realise - ساخت یا دریافت اشیاء انبار
خلاصه
nix-store {--realise | -r} paths… [--dry-run]
توضیحات
هر یک از paths به شرح زیر پردازش میشود:
- اگر مسیر به یک store derivation منتهی شود:
- اگر [معتبر] نباشد، خود فایل store derivation را جایگزین کنید.
- output paths آن را محقق (realise) کنید:
- تلاش کنید store objects مرتبط با مسیرهای خروجی در closure مربوط به store derivation را از substituters دریافت کنید.
- با content-addressing derivations (تجربی): مسیرهای خروجی برای محققسازی را با پرسوجوی ورودیهای محققسازی مبتنی بر محتوا در Nix database تعیین کنید.
- برای هر مسیر انباری که قابل جایگزینی نیست، اشیاء انبار مورد نیاز را تولید کنید:
- تمام خروجیهای وابستگیهای derivation را محقق کنید.
- فایل اجرایی
builderمربوط به derivation را اجرا کنید.
- در غیر این صورت، و اگر مسیر از قبل معتبر نباشد: تلاش کنید store objects مرتبط در closure مسیر را از substituters دریافت کنید.
اگر هیچ جایگزینی موجود نباشد و هیچ store derivation ارائه نشده باشد، عملیات محققسازی با شکست مواجه میشود.
مسیرهای حاصل در خروجی استاندارد چاپ میشوند. برای آرگومانهای غیر-derivation، خود آرگومان چاپ میشود.
گزینهها
--dry-runتوضیحی درباره بستههایی که ساخته یا بارگیری میشوند را بدون انجام واقعی عملیات، روی خروجی خطای استاندارد (standard error) چاپ کند.
--ignore-unknownاگر یک مسیر غیر-derivation جایگزینی نداشته باشد، آن را بهطور بیصدا نادیده بگیرد.
--checkاین گزینه به شما اجازه میدهد بررسی کنید که آیا یک derivation قطعی است یا خیر. این گزینه derivation مشخصشده را مجدداً میسازد و بررسی میکند که آیا نتیجه از نظر بیتی با خروجیهای موجود یکسان است یا خیر، و در صورت عدم تطابق، خطایی را چاپ میکند. خروجیهای derivation مشخصشده باید از قبل وجود داشته باشند. هنگامی که با
-Kاستفاده میشود، اگر یک مسیر خروجی با خروجی متناظر از ساخت قبلی یکسان نباشد، مسیر خروجی جدید در/nix/store/name.check.باقی میماند.
مثالها
این عملیات معمولاً برای ساخت store derivationهایی که توسط nix-instantiate تولید شدهاند، استفاده میشود:
$ nix-store --realise $(nix-instantiate ./test.nix)
/nix/store/6gwmy5jcnwdlz6aqqhksz863f1l8xc2w-aterm-2.3.1 این اساساً همان کاری است که nix-build انجام میدهد.
برای بررسی اینکه آیا یک derivation ازپیشساختهشده قطعی / reproducible از نظر نتیجه است یا خیر:
$ nix-build '<nixpkgs>' --attr hello --check -K برای نمایش خروجی استاندارد و خطای استاندارد یک ساخت، از nix-store --read-log استفاده کنید:
$ nix-store --read-log $(nix-instantiate ./test.nix) nix.dev/manual/nix/stable/command-ref/nix-store/realise.html