DUNE-INSTALL(1) Dune Manual DUNE-INSTALL(1)

dune-install - نصب بسته‌های تعریف‌شده در فضای کاری

دایرکتوری‌های نصب استفاده‌شده، بر اساس اولویت مشخص می‌شوند:

- دایرکتوری‌های تنظیم‌شده در خط فرمان dune install، یا متغیرهای محیطی متناظر

- دایرکتوری‌های تعیین‌شده در باینری dune؛ این موارد پیش از کامپایل dune با ./configure تنظیم می‌شوند

- استخراج‌شده از متغیر محیطی OPAM_SWITCH_PREFIX در صورت وجود

--action-stderr-on-success=VAL
مشابه --action-stdout-on-success اما برای خطای استاندارد به‌جای خروجی استاندارد. یک پیش‌فرض مناسب برای تک‌مخزن‌های بزرگ (monorepos)، گزینهٔ --action-stdout-on-success=swallow --action-stderr-on-success=must-be-empty است. این کار تضمین می‌کند که یک ساخت موفقیت‌آمیز، خروجی خالی و «تمیز» داشته باشد.
--action-stdout-on-success=VAL
تعیین نحوهٔ برخورد با خروجی استاندارد کنش‌ها در صورت موفقیت آن‌ها. مقادیر ممکن عبارتند از: print برای چاپ صرف آن در خروجی Dune، گزینهٔ swallow برای نادیده گرفتن کامل آن و must-be-empty برای الزام به اینکه کنش نباید چیزی چاپ کرده باشد. با انتخاب must-be-empty، اگر کنش چیزی در خروجی استاندارد خود چاپ کند، Dune آن را ناموفق در نظر خواهد گرفت. پیش‌فرض print است.
--bindir=PATH
بازنویسی دستی دایرکتوری برای نصب فایل‌های اجرایی عمومی (binaries). تنها مسیر مطلق پذیرفته می‌شود.
--build-info
نمایش اطلاعات ساخت.
--context=CONTEXT
انتخاب بستر (context) برای نصب از آن. به‌طور پیش‌فرض، فایل‌ها از تمام بسترهای تعریف‌شده نصب می‌شوند.
--create-install-files
به‌جای نصب مستقیم، فایل‌های نصب را در دایرکتوری ریشه ایجاد می‌کند و در صورت نیاز فایل‌های جایگزین‌شده را در destdir (به‌طور پیش‌فرض _destdir) می‌سازد.
--datadir=PATH
بازنویسی دستی دایرکتوری برای نصب فایل‌ها از بخش share. تنها مسیر مطلق پذیرفته می‌شود.
--destdir=PATH (در صورت عدم تعیین، متغیر محیطی DESTDIR)
این دایرکتوری به ابتدای تمام مسیرهای نصب اضافه می‌شود.
--display-separate-messages
جداسازی پیام‌های خطا با یک خط خالی.
--docdir=PATH
بازنویسی دستی دایرکتوری برای نصب فایل‌های مستندات. تنها مسیر مطلق پذیرفته می‌شود.
--dry-run
صرفاً نمایش عملیات‌های فایلی که قرار بود انجام شوند.
--error-reporting=VAL (در صورت عدم تعیین=deterministic)
زمان گزارش خطاهای ساخت را کنترل می‌کند. مقدار early خطاها را به محض کشف شدن گزارش می‌دهد. مقدار deterministic خطاها را در پایان ساخت با ترتیبی قطعی گزارش می‌کند. مقدار twice هر خطا را دو بار گزارش می‌دهد: یک بار به محض کشف خطا، و بار دیگر در پایان ساخت با ترتیبی قطعی.
--etcdir=PATH
بازنویسی دستی دایرکتوری برای نصب فایل‌های پیکربندی. تنها مسیر مطلق پذیرفته می‌شود.
-f, --force
اجبار به اجرای مجدد کنش‌های مرتبط با نام‌های مستعار (aliases)، حتی اگر وابستگی‌های آن‌ها تغییری نکرده باشد.
--file-watcher=VAL (در صورت عدم تعیین=automatic)
سازوکار تشخیص تغییرات در مبدأ کد (source). مقدار automatic برای اجرای یک برنامهٔ خارجی توسط dune جهت تشخیص تغییرات است. مقدار manual برای اطلاع‌رسانی دستی تغییر فایل‌ها به dune استفاده می‌شود.
--libdir=PATH
دایرکتوری کپی فایل‌های کتابخانه، به‌صورت نسبی نسبت به prefix یا مطلق. اگر --prefix مشخص شده باشد، پیش‌فرض $prefix/lib خواهد بود. تنها مسیر مطلق پذیرفته می‌شود.
--libexecdir=PATH
بازنویسی دستی دایرکتوری برای نصب فایل‌های اجرایی کتابخانه‌ای. تنها مسیر مطلق پذیرفته می‌شود.
--mandir=PATH
بازنویسی دستی دایرکتوری برای نصب صفحات راهنما (man pages). تنها مسیر مطلق پذیرفته می‌شود.
--passive-watch-mode
مشابه [--watch]، اما ساخت را تنها زمانی آغاز می‌کند که از طریق یک فراخوانی RPC دستور خارجی دریافت کند.
--prefix=PREFIX (در صورت عدم تعیین، متغیر محیطی DUNE_INSTALL_PREFIX)
دایرکتوری کپی فایل‌ها. برای نمونه، فایل‌های اجرایی در $prefix/bin، فایل‌های کتابخانه‌ای در $prefix/lib و غیره کپی می‌شوند.
--relocatable
فایل‌های باینری را جابه‌جایی‌پذیر (relocatable) می‌کند (دایرکتوری نصب قابل انتقال خواهد بود). دایرکتوری نصب باید با --prefix مشخص شود.
--sandbox=VAL (در صورت عدم تعیین، متغیر محیطی DUNE_SANDBOX)
تنظیم حالت ایزوله‌سازی (sandboxing). برخی کنش‌ها نیازمند حالت خاصی از ایزوله‌سازی هستند، بنابراین این تنظیم را نادیده می‌گیرند. مقادیر مجاز عبارتند از: none،‏ symlink،‏ copy،‏ hardlink.
--sbindir=PATH
بازنویسی دستی دایرکتوری برای نصب فایل‌ها از بخش sbin. تنها مسیر مطلق پذیرفته می‌شود.
--sections=VAL
بخش‌هایی که باید نصب شوند.
--stop-on-first-error
متوقف کردن فرآیند ساخت به محض مواجهه با نخستین خطا.
-w, --watch
به‌جای خاتمه دادن به ساخت پس از اتمام، به‌طور مداوم منتظر تغییرات فایل‌ها می‌ماند.
--wait-for-filesystem-clock
ابزار Dune برای پردازش افزایشی بهتر، محتوای فایل‌ها را خلاصه‌سازی (digest) می‌کند. این خلاصه‌ها خودشان کش می‌شوند. در برخی موارد، Dune برای اطمینان از صحت عملکرد ناچار است برخی از مدخل‌های کش خلاصه را حذف کند. این گزینه باعث می‌شود Dune منتظر پیش رفتن ساعت سیستم فایل بماند تا نیازی به دور ریختن هیچ موردی نداشته باشد. معمولاً نیازی به این گزینه نخواهید داشت؛ این گزینه بیشتر برای توسعه‌دهندگان Dune کاربرد دارد تا آزمون‌های Dune روی کش خلاصه بازتولیدپذیرتر باشند..SH "گزینه‌های عمومی (COMMON OPTIONS)"

این گزینه‌ها بین تمامی دستورها مشترک هستند.

--always-show-command-line
همیشه خط فرمان کامل برنامه‌های اجراشده توسط dune را نمایش می‌دهد.
--auto-promote
ارتقای خودکار فایل‌ها. این کار مشابه اجرای dune promote پس از ساخت است.
--build-dir=FILE (در غیاب متغیر محیطی DUNE_BUILD_DIR)
دایرکتوری ساخت مشخص‌شده. در صورت مشخص نشدن، پیش‌فرض _build است.
--cache=VAL (در غیاب متغیر محیطی DUNE_CACHE)
فعال یا غیرفعال کردن کَش Dune (یکی از مقادیر disabled، enabled-except-user-rules یا enabled). مقدار پیش‌فرض `enabled-except-user-rules' است.
--cache-check-probability=VAL (در غیاب متغیر محیطی DUNE_CACHE_CHECK_PROBABILITY)
بررسی بازتولیدپذیری ساخت با اجرای دوباره قواعد انتخاب‌شده به‌صورت تصادفی و مقایسه نتایج آن‌ها با موارد ذخیره‌شده در کَش Dune. نکته: افزایش احتمال این بررسی‌ها سرعت ساخت را کاهش می‌دهد. احتمال پیش‌فرض صفر است، یعنی هیچ قاعده‌ای بررسی نمی‌شود.
--cache-storage-mode=VAL (در غیاب متغیر محیطی DUNE_CACHE_STORAGE_MODE)
حالت ذخیره‌سازی کَش Dune (یکی از مقادیر auto، hardlink یا copy). مقدار پیش‌فرض `hardlink' است.
--config-file=FILE
بارگذاری این فایل پیکربندی به جای فایل پیش‌فرض.
--debug-backtraces
همیشه ردپای پشته استثناها (backtraces) چاپ شود.
--debug-dependency-path
در صورت بروز خطا، چاپ مسیر وابستگی از هدف‌های خط فرمان تا قاعده‌ای که شکست خورده است.
--debug-package-logs (در غیاب متغیر محیطی DUNE_DEBUG_PACKAGE_LOGS)
همیشه لاگ‌های استاندارد هنگام ساخت بسته‌ها چاپ شوند
--default-target=TARGET (در صورت عدم تعیین=@@default)
تنظیم هدف پیش‌فرضی که در صورت مشخص نشدن هیچ هدفی در dune build استفاده می‌شود.
--diff-command=VAL (در غیاب متغیر محیطی DUNE_DIFF_COMMAND)
دستور شل مورد استفاده برای مقایسه فایل‌ها (diff). از - برای غیرفعال کردن چاپ تفاوت‌ها استفاده کنید.
--disable-promotion (در غیاب متغیر محیطی DUNE_DISABLE_PROMOTION)
غیرفعال کردن تمام قواعد ارتقا (promotion)
--display=MODE
کنترل حالت نمایش Dune. برای جزئیات بیشتر dune-config(5) را ببینید. مقادیر معتبر برای این گزینه عبارتند از: progress، verbose، short، quiet یا tui.
--dump-gc-stats=FILE
ذخیره آمار زباله‌روب (garbage collector) در یک فایل پس از اتمام ساخت.
--help[=FMT] (پیش‌فرض=auto)
نمایش این راهنما در قالب FMT. مقدار FMT باید یکی از مقادیر auto، pager، groff یا plain باشد. با مقدار auto، هر زمان که متغیر محیطی TERM برابر dumb یا تعریف‌نشده باشد، قالب برابر pager یا plain خواهد بود.
--ignore-promoted-rules
نادیده گرفتن قواعد دارای (mode promote)، به‌جز مواردی که شامل (only ...) هستند. متغیر %{ignoring_promoted_rules} در فایل‌های dune نشان‌دهنده داده شدن یا نشدن این گزینه است.
--instrument-with=BACKENDS (در غیاب متغیر محیطی DUNE_INSTRUMENT_WITH)
فعال‌سازی ابزاردقیق‌سازی (instrumentation) توسط BACKENDS. مقدار BACKENDS فهرستی از نام‌های کتابخانه‌ها است که با کاما از هم جدا شده‌اند، و هر کدام باید یک پس‌بند ابزاردقیق‌سازی را اعلان کرده باشند.
-j JOBS (در غیاب متغیر محیطی DUNE_JOBS)
اجرای هم‌زمان حداکثر JOBS دستور. مقدار JOBS باید یک عدد صحیح مثبت یا auto برای تشخیص خودکار تعداد هسته‌ها (پیش‌فرض) باشد.
--no-buffer
خروجی دستورهای اجراشده توسط dune بافر نشود. به‌طور پیش‌فرض، dune خروجی زیردستورها را بافر می‌کند تا در صورت اجرای موازی چند دستور، از درهم‌آمیختگی آن‌ها جلوگیری شود. با این حال، این امر هنگام اشکال‌زدایی آزمون‌های طولانی می‌تواند مشکل‌ساز باشد. با گزینه --no-buffer، دستورها دسترسی مستقیم به ترمینال خواهند داشت. توجه داشته باشید که در نتیجه، خروجی آن‌ها در فایل لاگ ثبت نخواهد شد. بهتر است این گزینه را به همراه -j 1 به کار ببرید تا از تداخل خروجی‌ها جلوگیری شود. علاوه بر این، باید از --verbose نیز استفاده کنید تا مطمئن شوید دستورها پیش از اجرا چاپ می‌شوند.
--no-config
بارگذاری نکردن فایل پیکربندی
--no-print-directory
نادیده گرفتن و جلوگیری از چاپ پیام‌های "Entering directory".
--only-packages=PACKAGES
نادیده گرفتن بندهایی (stanzas) که به بسته‌ای خارج از PACKAGES ارجاع می‌دهند. مقدار PACKAGES فهرستی از نام بسته‌هاست که با کاما از هم جدا شده‌اند. توجه داشته باشید که این کار تاثیری مشابه با حذف بندهای مربوطه از فایل‌های dune دارد. این گزینه بیشتر برای انتشار نسخه‌ها در نظر گرفته شده است. در طول توسعه، معمولاً آنچه نیاز دارید ساخت یک هدف خاص مانند <package>.install است.`
-p PACKAGES, --for-release-of-packages=PACKAGES (الزامی)
کوتاه‌نوشتی برای --release --pkg=disabled --only-packages PACKAGE. باید از این گزینه در فایل‌های <package>.opam خود استفاده کنید تا در پروژه‌هایی با چندین بسته، تنها موارد لازم ساخته شوند و ساخت‌های بازتولیدپذیر تضمین گردند.
--pkg=VAL
فعال یا غیرفعال کردن مدیریت بسته. رفتار پیش‌فرض به وجود یا عدم وجود دایرکتوری lock بستگی دارد.
--profile=VAL (در غیاب متغیر محیطی DUNE_PROFILE)
انتخاب نمایه (profile) ساخت؛ برای مثال dev یا release. مقدار پیش‌فرض dev است.
--promote-install-files[=VAL] (پیش‌فرض=true)
ارتقای تمام فایل‌های تولیدشده <package>.install به درخت منبع پروژه.
--release
قرار دادن dune در حالت بازتولیدپذیر release. کوتاه‌نوشتی برای --root . --ignore-promoted-rules --no-config --profile release --always-show-command-line --promote-install-files --require-dune-project-file --default-target @install. باید از این گزینه برای ساخت‌های انتشار استفاده کنید. به عنوان مثال، استفاده از این گزینه در فایل‌های <package>.opam الزامی است؛ مگر اینکه قبلاً از -p استفاده کرده باشید، چرا که -p خود متضمن این گزینه است.
--require-dune-project-file[=VAL] (پیش‌فرض=true)
در صورت وجود نداشتن فایل dune-project، با خطا متوقف شود.
--root=DIR (در غیاب متغیر محیطی DUNE_ROOT)
استفاده از این دایرکتوری به عنوان ریشه فضای کاری به جای حدس زدن آن. توجه داشته باشید که این گزینه تفسیری که از هدف‌های مشخص‌شده در خط فرمان می‌شود را تغییر نمی‌دهد. این گزینه فقط برای اسکریپت‌ها در نظر گرفته شده است.
--store-orig-source-dir (در غیاب متغیر محیطی DUNE_STORE_ORIG_SOURCE_DIR)
ذخیره مکان اصلی منبع در فراداده‌های dune-package.
--target-exec=TOOLCHAIN=CMD (در غیاب متغیر محیطی DUNE_TARGET_EXEC)
دستور پوشش‌دهنده (wrapper) برای اجرای باینری‌های هدف هنگام کامپایل متقابل (cross-compiling). قالب: TOOLCHAIN=CMD (به عنوان مثال، 'windows=wine').
--terminal-persistence=MODE
تغییر نحوه نمایش لاگ نتایج ساخت در کنسول بین ساخت‌های مجدد در حالت --watch. حالت‌های پشتیبانی‌شده: preserve، clear-on-rebuild، clear-on-rebuild-and-flush-history.
--trace-file=FILE
خروجی دادن داده‌های ردیابی در قالب catapult (سازگار با chrome://tracing).
--verbose
یکسان با --display verbose
--version
نمایش اطلاعات نسخه.
--watch-exclusions=REGEX
افزودن یک عبارت باقاعده POSIX که دایرکتوری‌های منطبق را از `dune build --watch` مستثنی می‌کند. گزینه --watch-exclusions برای افزودن چندین استثنا می‌تواند تکرار شود. همچنین می‌توان از نقطه‌ویرگول به عنوان جداکننده استفاده کرد. اگر هیچ استثنایی مشخص نشود، از یک مجموعه استاندارد از استثناها استفاده می‌شود؛ اما اگر از یک یا چند --watch-exclusions استفاده شود، هیچ‌یک از استثناهای استاندارد اعمال نخواهند شد. استثناهای استاندارد عبارتند از: ^_opam /_opam ^_esy /_esy ^\.#.* /\.#.* ~$ ^#[^#]*#$ /#[^#]*#$ ^4913$ /4913$ /.git /.hg :/windows
--workspace=FILE (در غیاب متغیر محیطی DUNE_WORKSPACE)
استفاده از این فایل مشخص فضای کاری به جای جستجوی آن.
-x VAL (در غیاب متغیر محیطی DUNE_CROSS_TARGET)
کامپایل متقابل با استفاده از این زنجیره ابزار (toolchain)..SH "راهنمای بیشتر (MORE HELP)"

برای دریافت راهنما درباره یک دستور مشخص، از `dune COMMAND --help' استفاده کنید.

dune install با این مقادیر خارج می‌شود:

0
در صورت موفقیت.
1
در صورت بروز خطا.
130
اگر توسط یک سیگنال متوقف شده باشد.

این متغیرهای محیطی بر اجرای install تأثیر می‌گذارند:

گزینهٔ --destdir را ببینید.
دایرکتوری ساخت مشخص‌شده. در صورت مشخص نشدن، _build در نظر گرفته می‌شود.
فعال یا غیرفعال کردن حافظه پنهان Dune (یکی از مقادیر disabled، enabled-except-user-rules یا enabled). مقدار پیش‌فرض `enabled-except-user-rules' است.
بررسی بازتولیدپذیری ساخت با اجرای دوبارهٔ قواعد تصادفی انتخاب‌شده و مقایسه نتایج آن‌ها با موارد ذخیره‌شده در حافظه پنهان Dune. نکته: افزایش احتمال چنین بررسی‌هایی روند ساخت را کندتر می‌کند. احتمال پیش‌فرض صفر است، یعنی هیچ قاعده‌ای بررسی نمی‌شود.
حالت ذخیره‌سازی حافظه پنهان Dune (یکی از موارد auto، hardlink یا copy). مقدار پیش‌فرض `hardlink' است.
کامپایل متقابل (Cross-compile) با استفاده از این زنجیره ابزار (toolchain).
چاپ همیشگی گزارش‌های استاندارد هنگام ساخت بسته‌ها.
دستور شل برای مقایسه تفاوت (diff) فایل‌ها. از - برای غیرفعال کردن چاپ تفاوت‌ها استفاده کنید.
غیرفعال کردن تمام قوانین ارتقا (promotion rules).
گزینهٔ --prefix را ببینید.
فعال‌سازی سازوکار سنجش کد (instrumentation) توسط BACKENDS. مقدار BACKENDS فهرستی از نام‌های کتابخانه است که با کاما از یکدیگر جدا شده‌اند و هرکدام باید یک بک‌اند سنجش را تعریف کنند.
اجرای حداکثر JOBS دستور به‌صورت هم‌زمان. مقدار JOBS باید یک عدد صحیح مثبت یا auto برای تشخیص خودکار تعداد هسته‌ها (پیش‌فرض) باشد.
پروفایل ساخت. در صورت عدم تعیین dev، یا در صورت تنظیم -p مقدار release خواهد بود.
استفاده از این دایرکتوری به‌عنوان ریشه فضای کاری به‌جای حدس زدن آن. توجه داشته باشید که این گزینه تفسیر اهداف ارائه‌شده در خط فرمان را تغییر نمی‌دهد. این متغیر فقط برای اسکریپت‌ها در نظر گرفته شده است.
حالت سندباکس برای استفاده به‌صورت پیش‌فرض. (--sandbox را ببینید)
ذخیره مکان اصلی مبدأ در متادیتای dune-package.
دستور پوشش‌دهنده (wrapper) برای اجرای باینری‌های مقصد هنگام کامپایل متقابل. قالب: TOOLCHAIN=CMD (مثلاً 'windows=wine').
استفاده از این فایل فضای کاری مشخص به‌جای جستجوی آن.

گزارش‌های باگ را در https://github.com/ocaml/dune/issues بررسی کنید.

dune(1)

Dune 3.24.2