OPAM-INSTALL(1) Opam Manual OPAM-INSTALL(1)

opam-install - نصب فهرستی از بسته‌ها

opam install [OPTION]… [PACKAGES]…

این دستور یک یا چند بسته را در سوئیچ انتخاب‌شده فعلی نصب می‌کند (به opam switch مراجعه کنید). پس از نصب، می‌توانید بسته‌ها را با opam remove حذف کنید، با opam upgrade آن‌ها را ارتقا دهید و با opam list آن‌ها را فهرست نمایید. همچنین برای مدیریت نسخه بسته‌ها، تغییر مسیر بسته‌های موجود یا افزودن بسته‌هایی که در مخازن تعریف نشده‌اند، به opam pin مراجعه کنید.

ابتدا تمام وابستگی‌های لازم برای بسته‌های انتخاب‌شده نصب خواهند شد. هر بسته از پیش نصب‌شده‌ای که به بسته‌های تغییریافته وابستگی یا وابستگی اختیاری داشته باشد، مجدداً کامپایل خواهد شد. راه‌حل پیشنهادی ممکن است مستلزم حذف بسته‌های ناسازگار یا متداخل نیز باشد.

اگر به جای نام بسته‌ها مسیرها به عنوان آرگومان ارائه شوند، فرض می‌شود که آن‌ها یا به دایرکتوری‌های سورس پروژه حاوی یک یا چند تعریف بسته (فایل‌های opam) یا مستقیماً به فایل‌های opam اشاره دارند. سپس بسته‌های مربوطه به دایرکتوری محلی خود پین شده و نصب می‌شوند (مگر اینکه --deps-only مشخص شده باشد).

فهرستی از نام بسته‌ها، به همراه نسخه یا محدودیت اختیاری، مانند `pkg'، `pkg.1.0' یا `pkg>=0.5'؛ یا نام فایل‌ها یا دایرکتوری‌های حاوی توضیحات بسته، با ذکر صریح دایرکتوری (مانند `./foo.opam' یا `.').

--assume-built
مورد استفاده برای بسته‌های محلی پین‌شده: فرض می‌کند که آن‌ها از پیش به درستی ساخته شده‌اند و تنها دستورالعمل‌های نصب آن‌ها را مستقیماً از دایرکتوری سورس آن‌ها اجرا می‌کند. این گزینه از دستورالعمل‌های ساخت صرف‌نظر می‌کند و می‌تواند برای نصب بسته‌هایی که در حال کار روی آن‌ها هستید مفید باشد. به طور ضمنی --inplace-build را فعال می‌کند. از هیچ بسته محلی پین‌شده‌ای صرف‌نظر نخواهد شد.
--check
در صورتی که تمام وابستگی‌های PACKAGES از قبل نصب شده باشند، با مقدار 0 خارج می‌شود. در غیر این صورت، نام وابستگی‌های مفقود را در stdout چاپ کرده و با 1 خارج می‌شود.
--depext-only
فرایند نصب بسته را به صورت عادی حل می‌کند، اما تنها وابستگی‌های سیستمی مورد نیاز را بدون تأثیر بر وضعیت سوئیچ opam یا نصب بسته‌های opam نصب می‌نماید.
--deps-only
تمام وابستگی‌های آن را نصب می‌کند، اما خود بسته را عملاً نصب نمی‌کند.
--destdir=DIR
فایل‌های نصب‌شده توسط بسته داده‌شده در سوئیچ فعلی opam را با حفظ ساختار سلسله‌مراتبی، پس از نصب در زیر پیشوند DIR کپی می‌کند. احتیاط: فراخوانی این گزینه می‌تواند فایل‌ها را بازنویسی کند، اما هرگز فایلی را حذف نمی‌کند، حتی اگر در اثر استفاده قبلی از --destdir نصب شده باشند (مثلاً در نسخه پیشین همان بسته). برای بازگرداندن به opam remove --destdir مراجعه کنید.
--download-only
سورس‌های بسته‌ها را دریافت می‌کند، اما چیزی را نمی‌سازد یا نصب نمی‌کند.
--formula=FORMULA (در صورت عدم تعیین=[])
آزمایشی. فرمول وابستگی خاصی را تعیین می‌کند که علاوه بر ناوردای سوئیچ، باید توسط پاسخ تأیید شود. قالب آن همانند بیان وابستگی‌ها در فایل‌های تعریف بسته است، مانند '"foo" {>= "1.1"}'.
--ignore-conflicts
همراه با --deps-only استفاده می‌شود؛ تداخل‌های بسته داده‌شده را نادیده می‌گیرد.
--recursive
امکان جستجوی بازگشتی فایل‌های *.opam را فراهم می‌کند. همچنین به --subpath مراجعه کنید.
--restore
تلاش برای بازیابی بسته‌هایی که برای نصب علامت‌گذاری شده بودند اما به دلیل بروز خطا حذف شده‌اند.
--set-root
بسته‌های داده‌شده را به عنوان ریشه‌های نصب‌شده (installed roots) علامت‌گذاری می‌کند. این حالت پیش‌فرض برای بسته‌هایی است که به تازگی به صورت دستی نصب شده‌اند.
--subpath=PATH
فایل‌های *.opam به جای دایرکتوری اصلی، از زیردایرکتوری داده‌شده بازیابی می‌شوند. سپس سورس‌ها از زیردایرکتوری هدف گرفته می‌شوند و به صورت درونی تنها این زیردایرکتوری کپی یا دریافت می‌شود. می‌تواند با --recursive ترکیب شود تا جستجوی بازگشتی روی زیرمسیر انجام شود.
--unset-root
بسته‌های داده‌شده را به عنوان "نصب‌شده به صورت خودکار" علامت‌گذاری می‌کند.

--assume-depexts
مرحله نصب را برای هرگونه بسته مفقود سیستمی نادیده می‌گیرد و در هر صورت تلاش می‌کند با کامپایل بسته‌های opam ادامه دهد. در صورت موفقیت‌آمیز بودن نصب، opam دیگر درباره این بسته‌های سیستمی سؤالی نمی‌پرسد. تنها زمانی معنا دارد که مدیریت وابستگی‌های خارجی فعال باشد.
-b, --keep-build-dir
نگهداری دایرکتوری‌های ساخت پس از کامپایل بسته‌ها. این معادل تنظیم $OPAMKEEPBUILDDIR روی "true" است.
--build-doc
در نسخه 2.1 حذف شد، به جای آن از --with-doc استفاده کنید.
--build-test
در نسخه 2.1 حذف شد، به جای آن از --with-test استفاده کنید.
-d, --with-doc
ساخت مستندات بسته. این گزینه فقط بر بسته‌های مشخص‌شده در خط فرمان تأثیر می‌گذارد. این معادل تنظیم $OPAMWITHDOC (یا گزینه منسوخ‌شده $OPAMBUILDDOC) روی "true" است.
--dry-run
شبیه‌سازی دستور، بدون اعمال هیچ‌گونه تغییر واقعی. همچنین می‌تواند با متغیر محیطی $OPAMDEBUG تنظیم شود.
--fake
این گزینه عملیات را در پایگاه‌داده opam ثبت می‌کند بدون اینکه عملاً آن‌ها را انجام دهد. هشدار: این گزینه خطرناک است و احتمال آسیب به محیط opam شما وجود دارد. شما احتمالاً به --dry-run نیاز دارید. به شما هشدار داده شد.
--ignore-constraints-on[=PACKAGES] (پیش‌فرض=)
نرم‌افزار opam را مجبور می‌کند که محدودیت‌های نسخه را روی تمام وابستگی‌های بسته‌های فهرست‌شده نادیده بگیرد. این گزینه را می‌توان برای آزمایش سازگاری به کار برد، اما در هنگام استفاده انتظار شکست در ساخت را داشته باشید. توجه داشته باشید که موجود بودن بسته‌ها و همچنین محدودیت‌های نسخه روی وابستگی‌های اختیاری و تداخل‌ها بدون تغییر باقی می‌مانند. این معادل تنظیم $OPAMIGNORECONSTRAINTS است.
--inplace-build
هنگام کامپایل بسته‌ای که سورس آن به یک دایرکتوری محلی متصل است، عملیات ساخت و نصب را مستقیماً در همان دایرکتوری انجام می‌دهد، نه در یک رونوشت تمیز که توسط opam مدیریت می‌شود. این گزینه فقط بر بسته‌هایی اثر می‌گذارد که صریحاً در خط فرمان فهرست شده‌اند. این معادل تنظیم $OPAMINPLACEBUILD روی "true" است.
-j JOBS, --jobs=JOBS
تعیین حداکثر تعداد کارهای همزمان برای اجرا. مقدار پیش‌فرض بر اساس تعداد هسته‌ها محاسبه می‌شود. همچنین می‌توانید آن را با متغیر محیطی $OPAMJOBS تنظیم کنید.
--lock-suffix=SUFFIX (در صورت عدم تعیین=locked)
تنظیم پسوند فایل‌های قفل‌شده روی SUFFIX.
--locked
در دستوراتی که از فایل‌های opam حاصل از منابع پین‌شده استفاده می‌کنند، در صورتی که نسخه‌ای از فایل با پسوند افزوده .locked یافت شود (مانند foo.opam.locked در کنار foo.opam)، از آن استفاده خواهد شد. این گزینه معمولاً برای ارائه مجموعه‌ای مشخص‌تر از وابستگی‌ها و بازتولید شرایط یکسان ساخت بسیار سودمند است. از گزینه lock می‌توان برای تولید این فایل‌ها بر پایه نسخه‌های وابستگی‌های فعلی نصب‌شده روی میزبان استفاده کرد. این معادل تنظیم متغیر محیطی $OPAMLOCKED است. توجه داشته باشید که این گزینه معمولاً بر بسته‌هایی که پیش‌تر پین شده‌اند تأثیری ندارد.
-m MAKE, --make=MAKE
در نسخه 2.1 حذف شد، به جای آن از opam config set[-global] make MAKE استفاده کنید.
--no-checksums
چک‌سام آرشیوهای بارگیری‌شده بررسی نشود. این معادل تنظیم $OPAMNOCHECKSUMS روی "true" است.
--no-depexts
مدیریت وابستگی‌های خارجی را به‌طور موقت غیرفعال می‌کند. این گزینه زمانی کاربرد دارد که بسته‌ای در مدیر بسته سیستم‌عامل شما موجود نباشد، اما وابستگی لازم را دستی نصب کرده باشید. این گزینه به طور ضمنی --assume-depexts را فعال می‌کند و موارد استثنا را نیز در صورت موفقیت ذخیره می‌نماید.
--require-checksums
رد کردن نصب بسته‌هایی که برای آرشیوهای بالادست چک‌سام ارائه نمی‌دهند. این معادل تنظیم $OPAMREQUIRECHECKSUMS روی "true" است.
--reuse-build-dir
استفاده مجدد از دایرکتوری‌های ساخت موجود (که با استفاده از --keep-build-dir نگه داشته شده‌اند)، به جای کامپایل از یک کلون تازه از سورس. این روش می‌تواند سریع‌تر باشد، اما اگر سیستم‌های ساخت بسته‌ها ارتقای وابستگی‌ها را به خوبی مدیریت نکنند ممکن است به شکست منجر شود. این معادل تنظیم $OPAMREUSEBUILDDIR روی "true" است.
--show-actions
فراخوانی حل‌کننده و نمایش اقدامات. هیچ تغییری اعمال نشود. این معادل تنظیم $OPAMSHOW است.
--skip-updates
هنگام اجرای نصب، ارتقا یا نصب مجدد بسته‌های پین‌شده به سورس، معمولاً ابتدا از مبدأ به‌روزرسانی می‌شوند. این پرچم این رفتار را غیرفعال کرده و نسخه آن‌ها را در حافظه پنهان نگه می‌دارد. این معادل تنظیم $OPAMSKIPUPDATE است.
-t, --with-test
ساخت و اجرای تست‌های واحد (unit-tests) بسته. این گزینه فقط بر بسته‌های مشخص‌شده در خط فرمان تأثیر می‌گذارد. این معادل تنظیم $OPAMWITHTEST (یا گزینه منسوخ‌شده $OPAMBUILDTEST) روی "true" است.
--unlock-base
در نسخه 2.1 حذف شد، به جای آن از --update-invariant استفاده کنید.
--update-invariant
اجازه اعمال تغییرات روی بسته‌های تنظیم‌شده به عنوان پایه سوئیچ (معمولاً کامپایلر اصلی). با احتیاط استفاده شود. این معادل تنظیم متغیر محیطی $OPAMUNLOCKBASE است.
--verbose-on=PACKAGES
نمایش خروجی با جزئیات بیشتر برای بسته‌های مشخص. این معادل تنظیم $OPAMVERBOSE است.
--with-dev-setup
شامل کردن وابستگی‌های مختص به ابزارهای توسعه.

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

--best-effort
در صورتی که تمام بسته‌های درخواستی قابل نصب نباشند شکست نخور: تلاش کن تا جای ممکن بیشترین تعداد بسته نصب شوند. توجه داشته باشید که ممکن است همه حل‌کننده‌های خارجی از این گزینه پشتیبانی نکنند (نسخه‌های اخیر aspcud یا mccs باید پشتیبانی کنند). این معادل تنظیم متغیر محیطی $OPAMBESTEFFORT است.
--cli=MAJOR.MINOR (در صورت عدم تعیین=2.5)
استفاده از نحو و معناشناسی واسط خط فرمانِ MAJOR.MINOR. این گزینه برای هرگونه استفاده مداوم از opam (اسکریپت‌ها، پست‌های وبلاگ و غیره) در نظر گرفته شده است؛ هر نسخه‌ای از opam در همان سری MAJOR مشابه نسخه MINOR مشخص‌شده رفتار خواهد کرد. این پرچم در opam 2.0 موجود نبود، بنابراین برای انتخاب CLI نسخه 2.0، به جای استفاده از این پارامتر، متغیر محیطی OPAMCLI را روی 2.0 تنظیم کنید.
--color=WHEN
رنگی‌کردن خروجی. مقدار WHEN باید یکی از always، never یا auto باشد.
--confirm-level=LEVEL
سطح تأیید؛ LEVEL باید یکی از مقادیر ask، no، yes یا unsafe-yes باشد. می‌تواند بیش از یک بار مشخص شود. اگر --yes یا --no نیز داده شوند، مقدار آخرین --confirm-level لحاظ می‌شود. این معادل تنظیم $OPAMCONFIRMLEVEL است.
--criteria=CRITERIA
مشخص کردن ترجیحات کاربر برای حل وابستگی‌ها در این اجرا. بر $OPAMCRITERIA، $OPAMFIXUPCRITERIA و $OPAMUPGRADECRITERIA اولویت دارد. برای جزئیات درباره زبان پشتیبانی‌شده و حل‌کننده‌های خارجی موجود، http://opam.ocaml.org/doc/External_solvers.html را ببینید. یک راهنمای کلی برای استفاده از ترجیحات حل‌کننده را می‌توان در http://www.dicosmo.org/Articles/usercriteria.pdf یافت.
--cudf=FILENAME
گزینه اشکال‌زدایی: ذخیره درخواست‌های CUDF ارسال‌شده به حل‌کننده در FILENAME-<n>.cudf که در آن <n> نشان‌دهنده n-امین فراخوانی حل‌کننده در طول اجرای opam است.
--debug
چاپ پیام‌های اشکال‌زدایی در stderr. این معادل تنظیم $OPAMDEBUG روی "true" است.
--debug-level=LEVEL
مشابه --debug، اما امکان تعیین سطح اشکال‌زدایی را فراهم می‌کند (--debug آن را روی 1 تنظیم می‌کند). معادل با تنظیم $OPAMDEBUG روی یک عدد صحیح مثبت است.
--git-version
چاپ نسخه git برنامه opam، در صورت تعیین (یعنی زمانی که از یک نسخه در حال توسعه استفاده می‌کنید)، و خروج.
--help[=FMT] (پیش‌فرض=auto)
نمایش این راهنما در قالب FMT. مقدار FMT باید یکی از auto، pager، groff یا plain باشد. با مقدار auto، هرگاه متغیر محیطی TERM برابر با dumb یا تعریف‌نشده باشد، قالب به صورت pager یا plain خواهد بود.
--ignore-pin-depends
نادیده گرفتن پین‌های اضافی مورد نیاز بسته‌هایی که پین می‌شوند، چه به صورت دستی از طریق opam pin و چه از طریق opam install DIR. این معادل تنظیم IGNOREPINDEPENDS=true است.
--json=FILENAME
ذخیره نتایج اجرای opam در یک فایل ماشین‌خوان. اگر نام فایل حاوی نویسه `%' باشد، با نمایه‌ای جایگزین خواهد شد که روی فایل موجود بازنویسی نکند. مشابه با تنظیم متغیر $OPAMJSON است.
--no
پاسخ منفی (no) به تمام پرسش‌های بله/خیر opam بدون پرسش از کاربر. همچنین --confirm-level را ببینید. این معادل تنظیم $OPAMNO روی "true" است.
--no-aspcud
در نسخه 2.1 حذف شد.
--no-auto-upgrade
هنگام پیکربندی یا به‌روزرسانی مخزنی که برای نسخه‌های قبلی opam (نسخه 1.2) نوشته شده است، opam به صورت درونی آن را به قالب فعلی تبدیل می‌کند. این گزینه این رفتار را غیرفعال می‌کند. توجه داشته باشید که مخازن باید نسخه قالب خود را در یک فایل 'repo' در ریشه خود تعریف کنند، در غیر این صورت فرض می‌شود که در قالب قدیمی‌تر هستند. در هر صورت، ترجیح بر این است که در صورت امکان مخازن را با استفاده از opam admin upgrade [--mirror URL] به صورت دستی ارتقا دهید.
--no-self-upgrade
برنامه opam در صورت وجود، خود را با باینری جدیدتری که در OPAMROOT/opam یافت شود جایگزین می‌کند. این گزینه این رفتار را غیرفعال می‌کند.
-q, --quiet
گزینه --verbose را غیرفعال می‌کند.
--root=ROOT
استفاده از ROOT به عنوان مسیر ریشه فعلی. این معادل تنظیم $OPAMROOT روی ROOT است.
--safe, --readonly
اطمینان از اینکه هیچ چیزی به صورت خودکار به‌روزرسانی یا بازنویسی نخواهد شد. برای مثال، جهت فراخوانی از اسکریپت‌های تکمیل خودکار (completion) مفید است. هر زمان که به چنین عملیاتی نیاز باشد با شکست مواجه می‌شود؛ همچنین از انتظار برای قفل‌ها جلوگیری می‌کند، پرسش‌های تعاملی را نادیده می‌گیرد و متغیر $OPAMDEBUG را بازنویسی می‌کند. این معادل تنظیم متغیر محیطی $OPAMSAFE است.
--solver=CMD
مشخص کردن حل‌کننده CUDF مورد استفاده برای حل مشکلات نصب بسته. این حل‌کننده یا یک حل‌کننده از پیش تعریف‌شده است (این نسخه از opam از builtin-mccs+lp()، builtin-mccs+glpk، builtin-dummy-z3-solver، builtin-0install، aspcud، mccs، aspcud-old و packup پشتیبانی می‌کند) یا یک دستور سفارشی که باید شامل متغیرهای %{input}%، %{output}%، %{criteria}% و در صورت تمایل %{timeout}% باشد. این معادل تنظیم $OPAMEXTERNALSOLVER است.
--strict
هرگاه خطایی در تعریف یک بسته یا در یک فایل پیکربندی یافت شود، با شکست متوقف شو. حالت پیش‌فرض، ادامه بی‌صدا در صورت امکان است.
--switch=SWITCH
استفاده از SWITCH به عنوان سوئیچ کامپایلر فعلی. این معادل تنظیم $OPAMSWITCH روی SWITCH است.
--use-internal-solver
غیرفعال کردن هرگونه حل‌کننده خارجی و استفاده از حل‌کننده توکار (این امر نیازمند آن است که opam همراه با یک حل‌کننده توکار کامپایل شده باشد). این معادل تنظیم $OPAMNOASPCUD یا $OPAMUSEINTERNALSOLVER است.
-v, --verbose
پُرگویی بیشتر. یک بار -v تمام دستورهای بسته را نشان می‌دهد؛ برای نمایش دستورهایی که به صورت درونی فراخوانی می‌شوند (مانند tar، curl، patch و غیره) تکرار کنید. تکرار n بار معادل با تنظیم $OPAMVERBOSE روی "n" است.
--version
نمایش اطلاعات نسخه.
-w, --working-dir
هنگام به‌روزرسانی بسته‌هایی که به یک دایرکتوری محلی تحت کنترل نسخه مقید هستند، به جای آخرین وضعیت ثبت‌شده (commit) یا مرجعی (ref) که به آن اشاره می‌کنند، به وضعیت کاری فعلی منبع آن‌ها به‌روزرسانی شود. از آنجا که دایرکتوری سورس همان‌گونه که هست کپی می‌شود، اگر تمیز نباشد ممکن است به شکست ساخت opam منجر شود. این گزینه فقط بر بسته‌هایی تأثیر می‌گذارد که صریحاً در خط فرمان فهرست شده باشند. همچنین می‌تواند با $OPAMWORKINGDIR تنظیم شود.
-y, --yes
پاسخ مثبت (yes) به تمام پرسش‌های بله/خیر opam بدون پرسش از کاربر. همچنین --confirm-level را ببینید. این معادل تنظیم $OPAMYES روی "true" است.

دستور opam از متغیرهای محیطی فهرست‌شده در اینجا استفاده می‌کند. متغیرهای بولی (Boolean) باید برای غیرفعال‌سازی روی "0"، "no"، "false" یا یک رشته خالی، و برای فعال‌سازی روی "1"، "yes" یا "true" تنظیم شوند.

OPAMALLPARENS همه فیلترها را در پرانتز قرار می‌دهد.

OPAMASSUMEDEPEXTS گزینه `--assume-depexts' را ببینید.

OPAMAUTOANSWER فقط برای استفاده داخلی.

OPAMAUTOREMOVE گزینه حذف `--auto-remove' را ببینید.

OPAMBESTEFFORT گزینه `--best-effort' را ببینید.

OPAMBESTEFFORTPREFIXCRITERIA رشته‌ای را مشخص می‌کند که در صورت تنظیم گزینه `--best-effort' باید به معیارها پیشوند شود، و انتظار می‌رود که ویژگی `opam-query' را در پاسخ به حداکثر برساند.

OPAMBUILDDOC در 2.1 حذف شد.

OPAMBUILDTEST در 2.1 حذف شد.

OPAMCLI گزینه `--cli' را ببینید.

OPAMCOLOR در صورت تنظیم روی always یا never، مقدار پیش‌فرضی را برای گزینه `--color' تنظیم می‌کند.

OPAMCONFIRMLEVEL گزینه `--confirm-level` را ببینید. متغیر OPAMCONFIRMLEVEL نسبت به OPAMYES و OPAMNO اولویت دارد.

OPAMCRITERIA ترجیحات (preferences) کاربر را برای حل وابستگی‌ها مشخص می‌کند. مقدار پیش‌فرض به نسخه حل‌کننده بستگی دارد؛ برای اطلاع از مقدار فعلی، `config report' را اجرا کنید. همچنین گزینه --criteria را ببینید.

OPAMCUDFFILE گراف cudf را در file-actions-explicit.dot ذخیره می‌کند.

OPAMCUDFTRIM فیلتر کردن بسته‌های نامرتبط را هنگام پیش‌پردازش CUDF کنترل می‌کند.

OPAMCURL می‌تواند برای انتخاب یک برنامه `curl` مشخص استفاده شود. برای گزینه‌های بیشتر OPAMFETCH را ببینید.

OPAMDEBUG گزینه‌های `--debug' و `--debug-level' را ببینید.

OPAMDEBUGSECTIONS در صورت تنظیم، پیام‌های اشکال‌زدایی را به فهرست بخش‌های جداشده با فاصله محدود می‌کند. بخش‌ها می‌توانند به‌صورت اختیاری یک سطح اشکال‌زدایی مشخص داشته باشند (برای مثال، CLIENT:2 یا CLIENT CUDF:2)، اما در غیر این صورت از `--debug-level' استفاده می‌کنند.

OPAMDIGDEPTH میزان سخت‌گیرانه بودن جستجو برای تداخل‌ها را در طول پیش‌پردازش CUDF تعیین می‌کند.

OPAMDOWNLOADJOBS بیشینه تعداد بارگیری‌های هم‌زمان را تنظیم می‌کند.

OPAMDROPWORKINGDIR هنگام به‌روزرسانی، بسته‌هایی را که پیش‌تر با --working-dir به‌روزرسانی شده‌اند جایگزین می‌کند. بدون تنظیم این متغیر، opam آن‌ها را بدون تغییر نگه می‌دارد مگر اینکه صریحاً در خط فرمان نام برده شوند.

OPAMDRYRUN گزینه `--dry-run' را ببینید.

OPAMEDITOR ویرایشگر مورد استفاده برای ویرایش فایل‌های opam را مشخص می‌کند و بر $EDITOR و $VISUAL اولویت دارد.

OPAMERRLOGLEN تعداد خطوط لاگ چاپ‌شده هنگام شکست یک زیرفرآیند را تعیین می‌کند. مقدار 0 همه را چاپ می‌کند.

OPAMEXTERNALSOLVER گزینه `--solver' را ببینید.

OPAMFAKE گزینه `--fake' را ببینید.

OPAMFETCH نحوه بارگیری فایل‌ها را مشخص می‌کند: یکی از `wget'، `curl' یا یک دستور سفارشی که در آن متغیرهای %{url}%، %{out}%، %{retry}%، %{compress}% و %{checksum}% جایگزین خواهند شد. بر مقدار 'download-command' در فایل پیکربندی اصلی ارجحیت دارد.

OPAMFIXUPCRITERIA مشابه OPAMUPGRADECRITERIA است، اما مختص به اصلاح (fixup) و نصب مجدد است.

OPAMIGNORECONSTRAINTS گزینه نصب `--ignore-constraints-on' را ببینید.

OPAMIGNOREPINDEPENDS گزینه `--ignore-pin-depends' را ببینید.

OPAMINPLACEBUILD گزینه `--inplace-build' را ببینید.

OPAMJOBS بیشینه تعداد فرآیندهای موازی را برای اجرا تنظیم می‌کند.

OPAMJSON خروجی json را در فایل مشخص‌شده ثبت می‌کند (از نویسه `%' برای شماره‌گذاری فایل‌ها استفاده کنید).

OPAMKEEPBUILDDIR گزینه نصب `--keep-build-dir' را ببینید.

OPAMKEEPLOGS به opam اعلام می‌کند که برخی لاگ‌های موقت دستورات و پشتیبان‌ها را حذف نکند. این کار برخی اقدامات نهایی‌سازی را نادیده می‌گیرد و همچنین ممکن است به دریافت ردگیری‌های معتبرتر از پشته فراخوانی‌ها (backtraces) کمک کند.

OPAMLOCKED ترکیبی از گزینه‌های `--locked' و `--lock-suffix' است.

OPAMLOGS logdir دایرکتوری لاگ را تعیین می‌کند؛ مقدار پیش‌فرض یک دایرکتوری موقت در /tmp است

OPAMMAKECMD دستور make سیستمی مورد استفاده را مشخص می‌کند.

OPAMMERGEOUT خروجی‌های فرآیند را ادغام می‌کند، یعنی انتقال stderr روی stdout.

OPAMNO به هر سؤالی پاسخ خیر می‌دهد، گزینه‌های `--no` و `--confirm-level` را ببینید. اگر هر یک از OPAMCONFIRMLEVEL یا OPAMYES تنظیم شده باشد، OPAMNO نادیده گرفته می‌شود.

OPAMNOAGGREGATE در هنگام اجرای `opam admin check'، بسته‌ها را تجمیع نمی‌کند.

OPAMNOASPCUD منسوخ شده است.

OPAMNOAUTOUPGRADE ارتقای خودکار داخلی مخازن دارای قالب قدیمی به قالب فعلی را در هنگام اجرای 'update' یا 'init' غیرفعال می‌کند.

OPAMNOCHECKSUMS در صورت در دسترس بودن، گزینه --no-checksums را فعال می‌کند.

OPAMNODEPEXTS مدیریت وابستگی‌های سیستمی را غیرفعال می‌کند، گزینه `--no-depexts' را ببینید.

OPAMNOENVNOTICE داخلی.

OPAMNOSELFUPGRADE گزینه `--no-self-upgrade' را ببینید

OPAMPINKINDAUTO مشخص می‌کند که آیا سامانه‌های کنترل نسخه هنگام پین کردن به یک مسیر محلی شناسایی شوند یا خیر. از نسخه 1.3.0 به‌صورت پیش‌فرض فعال است.

OPAMPRECISETRACKING ردیابی دقیق و ریزدانه دایرکتوری‌ها.

OPAMPREPRO برای غیرفعال کردن پیش‌پردازش CUDF این متغیر را روی false تنظیم کنید. کارایی کمتری دارد، اما ممکن است به اشکال‌زدایی مشکلات مربوط به حل‌کننده کمک کند.

OPAMREPOSITORYTARRING مخازن را به‌صورت داخلی در قالب فایل‌های tar.gz ذخیره می‌کند. این ویژگی می‌تواند روی سیستم‌های فایلی که با پیمایش درخت‌های بزرگ دایرکتوری عملکرد خوبی ندارند اما حافظه موقت مناسبی در /tmp دارند بسیار سریع‌تر باشد. با این وجود در حالت کلی کندتر است.

OPAMREQUIRECHECKSUMS در صورت موجود بودن، گزینه `--require-checksums' را فعال می‌کند (برای مثال در `opam install').

OPAMRETRIES تعداد دفعات تلاش پیش از اعلام شکست در بارگیری‌ها را مشخص می‌کند.

OPAMREUSEBUILDDIR گزینه `--reuse-build-dir' را ببینید.

OPAMROOT گزینه `--root' را ببینید. این متغیر به‌صورت خودکار توسط `opam env --root=DIR --set-root' تنظیم می‌شود.

OPAMROOTISOK هنگام اجرا با دسترسی کاربر ریشه (root) هشداری نشان نمی‌دهد.

OPAMSAFE گزینه `--safe' را ببینید.

OPAMSHOW گزینه `--show' را ببینید.

OPAMSKIPUPDATE گزینه `--skip-updates' را ببینید.

OPAMSKIPVERSIONCHECKS برخی از بررسی‌های نسخه را نادیده می‌گیرد. ناامن است و صرفاً برای آزمایش سازگاری کاربرد دارد.

OPAMSOLVERALLOWSUBOPTIMAL (پیش‌فرض `true') به برخی حل‌کننده‌ها اجازه می‌دهد در صورت اتمام مهلت زمانی (timeout)، همچنان پاسخی ارائه دهند؛ اگرچه تضمین می‌شود که پاسخ سازگار باشد، اما هیچ تضمینی نیست که با معیارهای بهینه‌سازی مورد انتظار مطابقت داشته باشد. در صورت `true' بودن، opam با یک پیام هشدار ادامه می‌دهد؛ در صورت `false' بودن، اتمام مهلت زمانی یک خطا در نظر گرفته می‌شود. در حال حاضر فقط بخش داخلی builtin-z3 این حالت تنزل‌یافته را مدیریت می‌کند.

OPAMSOLVERTIMEOUT مهلت زمانی مجاز برای حل‌کننده را تغییر می‌دهد. مقدار پیش‌فرض 60.0 است؛ برای مقدار نامحدود روی 0 تنظیم کنید. توجه داشته باشید که ممکن است همه حل‌کننده‌ها از این گزینه پشتیبانی نکنند.

OPAMSOLVERTOLERANCE میزان مدارا در قبال انتخاب راه‌حل غیربهینه توسط حل‌کننده را تغییر می‌دهد (به‌عنوان مثال، ممکن است بسته‌های قدیمی‌تر را دریافت کند). مقادیر معمول بین 0.0 (بهترین راه‌حل شناخته‌شده برای حل‌کننده) تا 1.0 (راه‌حل بهینه‌نشده) متغیر است. مقدار پیش‌فرض 0.0 است. این گزینه زمانی مفید است که حل‌کننده نتواند در زمانی معقول راه‌حلی پیدا کند (به $OPAMSOLVERTIMEOUT مراجعه کنید). توجه داشته باشید که ممکن است همه حل‌کننده‌ها از این گزینه پشتیبانی نکنند.

OPAMSTATS در 2.4 حذف شد.

OPAMSTATUSLINE یک خط وضعیت پویا را در ترمینال نمایش می‌دهد که فرآیند جاری را نشان می‌دهد. (یکی از مقادیر always، never یا auto)

OPAMSTRICT در صورت بروز هرگونه ناسازگاری (خواندن فایل، وارد کردن switch و غیره) با خطا متوقف می‌شود.

OPAMSWITCH گزینه `--switch' را ببینید. به‌صورت خودکار توسط `opam env --switch=SWITCH --set-switch' تنظیم می‌شود.

OPAMUNLOCKBASE گزینه نصب `--unlock-base' را ببینید.

OPAMUPGRADECRITERIA ترجیحات (preferences) کاربر را برای حل وابستگی‌ها هنگام انجام ارتقا مشخص می‌کند. اگر هر دو تنظیم شده باشند، در هنگام ارتقا بر OPAMCRITERIA ارجحیت دارد. همچنین گزینه --criteria را ببینید.

OPAMUSEINTERNALSOLVER گزینه `--use-internal-solver' را ببینید.

OPAMUSEOPENSSL در 2.2 حذف شد.

OPAMUTF8 از نویسه‌های UTF8 در خروجی استفاده می‌کند (یکی از مقادیر always، never یا auto). به‌صورت پیش‌فرض `auto' است که بر اساس locale تعیین می‌شود).

OPAMUTF8MSGS از نویسه‌های گسترش‌یافته UTF8 (شترها) در پیام‌های opam استفاده می‌کند. مستلزم فعال بودن OPAMUTF8 است. این گزینه به‌صورت پیش‌فرض تنها روی macOS فعال است.

OPAMVALIDATIONHOOK در صورت تنظیم، از دستور `%{hook%}' برای اعتبارسنجی به‌روزرسانی مخزن opam استفاده می‌کند.

OPAMVERBOSE گزینه `--verbose' را ببینید.

OPAMVERBOSEON گزینه --verbose-on را ببینید

OPAMVERSIONLAGPOWER استفاده نکنید.

OPAMWITHDEVSETUP گزینه نصب `--with-dev-setup' را ببینید.

OPAMWITHDOC گزینه نصب `--with-doc' را ببینید.

OPAMWITHTEST گزینه نصب `--with-test را ببینید.

OPAMWORKINGDIR گزینه `--working-dir' را ببینید.

OPAMYES گزینه‌های `--yes' و `--confirm-level` را ببینید. متغیر OPAMYES نسبت به OPAMNO اولویت دارد و در صورت تنظیم بودن OPAMCONFIRMLEVEL نادیده گرفته می‌شود.

OPAMVAR_var محتوای متغیر var را هنگام جایگزینی رشته‌های `%{var}%` در فایل‌های `opam` بازنویسی می‌کند.

OPAMVAR_package_var محتوای متغیر package:var را هنگام جایگزینی رشته‌های `%{package:var}%` در فایل‌های `opam` بازنویسی می‌کند.

تمامی اسکریپت‌ها و فراخوانی‌های برنامه‌نویسی‌شده‌ی opam باید از `--cli' استفاده کنند تا اطمینان حاصل شود که با نسخه‌های آینده‌ی کلاینت opam بدون مشکل کار خواهند کرد. علاوه بر این، پست‌های وبلاگی یا سایر مستندات نیز می‌توانند از آن بهره‌مند شوند، زیرا از کهنه شدن اطلاعات جلوگیری می‌کند.

اگرچه opam فقط از ریشه‌ها (~/.opam/) برای نسخه کنونی پشتیبانی می‌کند، اما سازگاری با نسخه‌های پیشین را برای رابط خط فرمان خود فراهم می‌آورد.

از آن‌جا که پشتیبانی از نسخه رابط خط فرمان (CLI) تنها در opam 2.1 افزوده شده است، از OPAMCLI برای انتخاب پشتیبانی 2.0 استفاده کنید (چرا که opam 2.0 صرفاً آن را نادیده خواهد گرفت)، و از `--cli=2.1' برای نسخه‌های 2.1 (یا جدیدتر) استفاده نمایید، زیرا استفاده از متغیر محیطی برای کنترل تجزیه نحو شکننده و آسیب‌پذیر است. بدین منظور، اگر OPAMCLI نسخه‌ای معتبر غیر از 2.0 را مشخص کند، و همچنین اگر `--cli=2.0' مشخص شده باشد، opam یک هشدار نمایش می‌دهد.

نسخه رابط خط فرمان با استفاده از گزینه `--cli' یا متغیر محیطی OPAMCLI انتخاب می‌شود. گزینه `--cli' ممکن است بیش از یک بار مشخص شود که در این حالت آخرین مورد اولویت دارد. متغیر OPAMCLI تنها در صورتی بررسی می‌شود که `--cli' داده نشده باشد.

به‌عنوان استثنایی بر موارد زیر، دستور `exec' در صورتی که دستور یافت نشود یا نتواند اجرا شود مقدار 127، و در غیر این صورت مقدار خروج خود دستور را برمی‌گرداند.

0
موفقیت، یا درست (true) برای پرس‌وجوهای بولی.
1
نادرست (False). زمانی بازگردانده می‌شود که یک مقدار بازگشتی بولی انتظار می‌رود، برای نمونه هنگام اجرا با --check، یا برای پرس‌وجوهایی مانند opam lint.
2
آرگومان‌های نامعتبر خط فرمان، یا آرگومان‌های خط فرمانی که به یک زمینه نامعتبر اشاره دارند (برای نمونه فایلی که از قالب مورد انتظار پیروی نمی‌کند).
5
یافت نشد. چیزی را درخواست کرده‌اید (بسته، نسخه، مخزن و غیره) که پیدا نشد.
10
لغو شد. عملیات نیاز به تأیید داشت که داده نشد.
15
امکان دریافت قفل‌های مورد نیاز برای عملیات وجود نداشت.
20
هیچ راه‌حلی برای درخواست کاربر وجود ندارد. این امر می‌تواند برای نمونه در اثر درخواست نصب دو بسته ناسازگار رخ دهد.
30
خطا در تعریف بسته، یا سایر فایل‌های فراداده (metadata). استفاده از --strict این خطا را بیشتر نمایش می‌دهد.
31
خطای اسکریپت بسته. برخی از عملیات‌های بسته ناموفق بودند. این ممکن است ناشی از خطایی در بسته‌ها یا ناسازگاری با سیستم شما باشد. این می‌تواند یک خطای جزئی باشد.
40
خطای همگام‌سازی. دریافت برخی از مخازن دوردست (remotes) از شبکه امکان‌پذیر نبود. این می‌تواند یک خطای جزئی باشد.
50
خطای پیکربندی. پیکربندی opam یا سیستم اجازه عملیات را نمی‌دهد و نیازمند رفع اشکال است.
60
شکست حل‌کننده. حل‌کننده در بازگرداندن پاسخی درست و معتبر شکست خورد. این می‌تواند ناشی از یک حل‌کننده خارجی معیوب یا خطایی در پیکربندی حل‌کننده باشد.
99
خطای داخلی. مشکلی رخ داد که احتمالاً ناشی از یک باگ در خود opam است.
130
توقف توسط کاربر. سیگنال SIGINT دریافت شد، که عموماً ناشی از فشردن کلید‌های Ctrl-C توسط کاربر است.
0
در صورت موفقیت.
123
در صورت خطاهای نامشخص گزارش‌شده روی خروجی خطای استاندارد (standard error).
124
در صورت خطاهای تجزیه خط فرمان.
125
در صورت خطاهای داخلی غیرمنتظره (باگ‌ها).

به https://opam.ocaml.org/doc مراجعه کنید.

David Allsopp <david@tarides.com>

Vincent Bernardoff <vb@luminar.eu.org>

Raja Boujbel <raja.boujbel@ocamlpro.com>

Kate Deplaix <kit-ty-kate@outlook.com>

Roberto Di Cosmo <roberto@dicosmo.org>

Thomas Gazagnaire <thomas@gazagnaire.org>

Louis Gesbert <louis.gesbert@ocamlpro.com>

Fabrice Le Fessant <Fabrice.Le_fessant@inria.fr>

Anil Madhavapeddy <anil@recoil.org>

Guillem Rieu <guillem.rieu@ocamlpro.com>

Ralf Treinen <ralf.treinen@pps.jussieu.fr>

Frederic Tuong <tuong@users.gforge.inria.fr>

opam(1)

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

Opam 2.5.2