8.3.4.4. nix-env --query
نام
nix-env --query - نمایش اطلاعات درباره بستهها
خلاصه دستور
nix-env {--query | -q} names… [--installed | --available | -a][{`--status` | `-s`}]
[{--attr-path | -P}][`--no-name`]
[{--compare-versions | -c}][`--system`]
[--drv-path][`--out-path`]
[--description][`--meta`]
[--xml][`--json`]
[{--prebuilt-only | -b}][{`--attr` | `-A`} *attribute-path*]
توضیحات
عملیات جستجو اطلاعاتی را درباره مسیرهای انبار که در نسل فعلی از پروفایل فعال نصب شدهاند (--installed)، یا درایویشنهایی که برای نصب در عبارت Nix فعال موجود هستند (--available) نمایش میدهد. این دستور فقط اطلاعاتی را درباره درایویشنهایی چاپ میکند که نام نمادین آنها با یکی از names مطابقت داشته باشد.
درایویشنها بر اساس صفتهای name خود مرتب میشوند.
انتخاب منبع
پرچمهای زیر مجموعه مواردی را که جستجو روی آنها انجام میشود، مشخص میکنند.
--installedجستجو روی مسیرهای انباری انجام میشود که در نسل فعلی پروفایل فعال نصب شدهاند. این حالت پیشفرض است.
--available/-aجستجو روی درایویشنهایی انجام میشود که در عبارت Nix فعال موجود هستند.
پرسوجوها
پرچمهای زیر مشخص میکنند که چه اطلاعاتی درباره درایویشنهای انتخابشده نمایش داده شود. ممکن است چندین پرچم مشخص شود که در این صورت اطلاعات به ترتیبی که در اینجا آمده است نمایش داده میشوند. توجه داشته باشید که نام درایویشن نمایش داده میشود مگر اینکه --no-name مشخص شده باشد.
--xmlنتیجه را با فرمت نمایشی XML مناسب برای پردازش خودکار توسط سایر ابزارها چاپ کنید. عنصر ریشه
itemsنام دارد که شامل یک عنصرitemبرای هر درایویشن موجود یا نصبشده است. فیلدهایی که در ادامه بحث میشوند همگی در صفات عناصرitemذخیره میشوند.--jsonنتیجه را با فرمت نمایشی JSON مناسب برای پردازش خودکار توسط سایر ابزارها چاپ کنید.
--prebuilt-only/-bفقط درایویشنهایی را نشان دهید که برای آنها یک جایگزین (substitute) ثبت شده است؛ یعنی یک باینری پیشساختهی قابل بارگیری وجود دارد که میتوان آن را به جای ساختن درایویشن دانلود کرد. بنابراین، این گزینه تمام بستههایی را نشان میدهد که احتمالاً میتوان آنها را به سرعت نصب کرد.
--status/-sوضعیت درایویشن را چاپ کنید. وضعیت شامل سه کاراکتر است. کاراکتر اول
Iیا-است که نشان میدهد آیا درایویشن در حال حاضر در نسل فعلی پروفایل فعال نصب شده است یا خیر. این مورد طبق تعریف برای--installedصادق است، اما برای--availableلزوماً اینطور نیست. کاراکتر دومPیا-است که نشان میدهد آیا درایویشن روی سیستم موجود است یا خیر. این نشان میدهد که آیا نصب یک درایویشنِ موجود مستلزم ساخت آن درایویشن خواهد بود یا خیر. کاراکتر سومSیا-است که نشان میدهد آیا جایگزینی برای درایویشن موجود است یا خیر.--attr-path/-Pمسیر صفت (attribute path) درایویشن را چاپ کنید که میتوان از آن برای انتخاب بدون ابهام درایویشن با استفاده از گزینه
--attrدر دستوراتی که درایویشنها را نصب میکنند (مانندnix-env --install) استفاده کرد. این گزینه فقط همراه با--availableکار میکند.--no-nameاز چاپ صفت
nameهر درایویشن جلوگیری کنید.--compare-versions/-c
مقایسه نسخههای نصبشده با نسخههای موجود، یا برعکس (اگر --available داده شده باشد). این کار برای بررسی سریع اینکه آیا ارتقاها برای بستههای نصبشده در یک عبارت Nix موجود هستند یا خیر، مفید است. ستونی با معنای زیر اضافه میشود:
<نسخهنسخه جدیدتری از بسته موجود یا نصب شده است.
=نسخهحداکثر همان نسخه از بسته موجود یا نصب شده است.
>نسخهفقط نسخههای قدیمیتری از بسته موجود یا نصب شدهاند.
- ?هیچ نسخهای از بسته موجود یا نصب نشده است.
--systemچاپ صفت
systemمربوط به derivation.--drv-pathچاپ [مسیر انبار] به store derivation.
--out-pathچاپ مسیر خروجی derivation.
--descriptionچاپ توضیحات کوتاه (تکخطی) مربوط به derivation، در صورت وجود. توضیحات از صفت
meta.descriptionمربوط به derivation گرفته میشود.--metaچاپ تمام صفات متا (meta-attributes) مربوط به derivation. این گزینه فقط با
--xmlیا--jsonدر دسترس است.
مثالها
برای نمایش بستههای نصبشده:
$ nix-env --query
bison-1.875c
docbook-xml-4.2
firefox-1.0.4
MPlayer-1.0pre7
ORBit2-2.8.3
… برای نمایش بستههای موجود:
$ nix-env --query --available
firefox-1.0.7
GConf-2.4.0.1
MPlayer-1.0pre7
ORBit2-2.8.3
… برای نمایش وضعیت بستههای موجود:
$ nix-env --query --available --status
-P- firefox-1.0.7 (not installed but present)
--S GConf-2.4.0.1 (not present, but there is a substitute for fast installation)
--S MPlayer-1.0pre3 (i.e., this is not the installed MPlayer, even though the version is the same!)
IP- ORBit2-2.8.3 (installed and by definition present)
… برای نمایش بستههای موجود در عبارت نیکس (Nix expression) foo.nix:
$ nix-env --file ./foo.nix --query --available
foo-1.2.3 برای مقایسه نسخههای نصبشده با موارد موجود:
$ nix-env --query --compare-versions
...
acrobat-reader-7.0 - ? (package is not available at all)
autoconf-2.59 = 2.59 (same version)
firefox-1.0.4 < 1.0.7 (a more recent version is available)
... برای نمایش تمام بستههایی که عبارت «zip» را در نام خود دارند:
$ nix-env --query --available '.*zip.*'
bzip2-1.0.6
gzip-1.6
zip-3.0
… برای نمایش تمام بستههایی که عبارت «firefox» یا «chromium» در نام خود دارند:
$ nix-env --query --available '.*(firefox|chromium).*'
chromium-37.0.2062.94
chromium-beta-38.0.2125.24
firefox-32.0.3
firefox-with-plugins-13.0.1
… برای نمایش تمام بستهها در آخرین نسخهٔ مخزن Nixpkgs:
$ nix-env --file https://github.com/NixOS/nixpkgs/archive/master.tar.gz --query --available