OPAM-REPOSITORY(1) Opam Manual OPAM-REPOSITORY(1)

opam-repository - مدیریت مخازن opam

opam repository [--kind=KIND] [--rank=RANK] [--short] [OPTION]… [COMMAND] [ARG]…

این دستور برای مدیریت مخازن بسته استفاده می‌شود. مخازن را می‌توان از طریق زیردستورهای add، remove و set-url ثبت کرد و با استفاده از opam update از نشانی‌های وب آن‌ها به‌روزرسانی نمود. نام مخازن برای تمام سوئیچ‌ها سراسری (global) است و هر سوئیچ انتخاب خاص خود را از مخازنی دارد که تعاریف بسته‌ها را از آن‌ها دریافت می‌کند.

دستورهای اصلی add، remove و set-repos تنها بر سوئیچ فعلی اثر می‌گذارند، مگر اینکه با استفاده از گزینه‌های شرح داده‌شده در گزینه‌های تعیین دامنه (SCOPE SPECIFICATION OPTIONS) به صورت دیگری مشخص شوند.

بدون زیردستور یا همراه با زیردستور list، مخازن انتخاب‌شده یا همراه با --all تمامی مخازن پیکربندی‌شده را فهرست می‌کند.

بدون آرگومان، حالت پیش‌فرض list است.

مخزن موجود در آدرس ADDRESS را تحت نام NAME به فهرست مخازن پیکربندی‌شده اضافه می‌کند (اگر از قبل ثبت نشده باشد)، و این مخزن را برای استفاده در سوئیچ فعلی (یا دامنه مشخص‌شده) تنظیم می‌نماید. در صورتی که نام مخزن از قبل ثبت نشده باشد، تعیین ADDRESS الزامی است، و در صورت مغایرت با آدرس ثبت‌شده خطا خواهد بود. حد نصاب (quorum) یک عدد صحیح مثبت است که آستانه اعتبارسنجی را برای مخازن امضاشده تعیین می‌کند، که در آن اثرانگشت‌ها (fingerprints) به عنوان لنگرهای اعتماد برای اعتبارسنجی مذکور عمل می‌کنند.
 
توجه: به‌طور پیش‌فرض، مخزن تنها به سوئیچ فعلی اضافه می‌شود. برای افزودن یک مخزن به سوئیچ‌های دیگر، باید از گزینه‌های --all یا --set-default استفاده کنید (به زیر مراجعه کنید). اگر می‌خواهید مخزنی را تنها برای نصب سوئیچ‌های آن فعال کنید، احتمالاً به دنبال opam switch create --repositories=REPOS هستید.
مخازن داده‌شده را از دامنه‌های انتخاب‌شده حذف می‌کند (دامنه پیش‌فرض سوئیچ فعلی است، به --this-switch مراجعه کنید). مخازن با استفاده از --all-switches به طور کامل حذف می‌شوند. اگر آخرین مخزن در دامنه سوئیچ فعلی حذف شود، انتخاب مخازن به انتخاب پیش‌فرض بازگردانده می‌شود (opam list --set-default).
فهرست مخازن را برای جستجوی تعاریف بسته‌ها، به ترتیب اولویت مشخص‌شده (با بازنویسی انتخاب و اولویت‌های قبلی) و مطابق با دامنه مشخص‌شده، به صراحت انتخاب می‌کند.
نشانی اینترنتی (URL) و لنگرهای اعتماد مرتبط با یک نام مخزن مشخص را به‌روزرسانی می‌کند. توجه داشته باشید که اگر [QUORUM] و [FINGERPRINTS] را مشخص نکنید، تنظیمات قبلی پاک خواهند شد.
مخازن انتخاب‌شده فعلی را به ترتیب اولویت از رتبه 1 فهرست می‌کند. همراه با --all، تمام مخازن پیکربندی‌شده و سوئیچ‌هایی را که در آن‌ها فعال هستند فهرست می‌نماید.
مترادف با add NAME --rank RANK

این پرچم‌ها امکان انتخاب این را فراهم می‌کنند که کدام انتخاب‌ها توسط add، remove و set-repos تغییر یابند. اگر هیچ پرچمی در این بخش مشخص نشود، انتخاب‌های به‌روزرسانی‌شده به طور پیش‌فرض روی سوئیچ فعلی اعمال می‌شوند. چندین دامنه را می‌توان انتخاب کرد، به عنوان مثال --this-switch --set-default.

-a, --all-switches
اعمال روی انتخاب‌های تمام سوئیچ‌های پیکربندی‌شده
--dont-select
هیچ انتخابی را به‌روزرسانی نکن
--on-switches=SWITCHES
اعمال روی انتخاب‌های فهرست داده‌شده از سوئیچ‌ها
--set-default
اعمال روی انتخاب پیش‌فرض مخزن که برای سوئیچ‌های تازه ایجادشده استفاده می‌شود
--this-switch
اعمال روی انتخاب‌های سوئیچ فعلی (حالت پیش‌فرض)

-k KIND, --kind=KIND
نوع مخزن مورد استفاده را مشخص می‌کند (یکی از http، local، git، darcs یا hg).
--rank=RANK (در صورت عدم تعیین=1)
رتبه (اولویت) مخزن را در فهرست مخازن پیکربندی‌شده تعیین می‌کند. تعاریف بسته‌ها به ترتیب صعودی رتبه در مخازن جستجو می‌شوند، بنابراین رتبه 1 بالاترین اولویت است. اعداد صحیح منفی را می‌توان برای انتخاب از کمترین اولویت استفاده کرد، که -1 آخرین مورد است. همچنین می‌توان از set-repos برای تنظیم صریح کل فهرست مخازن به طور یکجا استفاده نمود.
-s, --short
فهرست خام نام‌ها را سطر به سطر بدون جزئیات چاپ می‌کند.

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

--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