OPAM-SWITCH(1) Opam Manual OPAM-SWITCH(1)

opam-switch - مدیریت پیشوندهای نصب چندگانه

opam switch [OPTION]… [COMMAND] [ARG]…

این دستور برای مدیریت «switch»ها به‌کار می‌رود؛ پیشوندهای نصب مستقلی که کامپایلر و مجموعه‌های بستهٔ نصب‌شده و پین‌شدهٔ (pinned) مختص به خود را دارند. این قابلیت معمولاً برای در دسترس داشتن هم‌زمان نسخه‌های مختلف کامپایلر مفید است.

برای ایجاد یک switch جدید از opam switch create، و برای تنظیم switch فعالِ کنونی از opam switch set استفاده کنید. بدون آرگومان، فهرست switchهای نصب‌شده را نمایش می‌دهد و در صورت داشتن یک آرگومان switch، به‌طور پیش‌فرض به set عمل می‌کند.

شناسه یا نام SWITCH می‌تواند یک نام ساده باشد (برای switchهایی که درون ~/.opam نگهداری می‌شوند)، یا یک نام دایرکتوری باشد که در این صورت دایرکتوری‌ای خواهد بود که پیشوند switch در آن، به‌عنوان _opam، نصب می‌شود. چنانچه OPAMSWITCH تنظیم نشده باشد یا --switch مشخص نگردد، Opam به‌طور خودکار switchای با این نام را که در دایرکتوری جاری یا والدهای آن یافت شود، انتخاب خواهد کرد. هنگام ایجاد یک switch دایرکتوری، در صورتی که تعاریف بسته به‌صورت محلی یافت شوند، پس از ایجاد switch به‌طور خودکار از کاربر برای نصب آن‌ها درخواست تایید می‌شود مگر اینکه --no-install مشخص شده باشد.

دستور opam switch set switch پیش‌فرض را به‌صورت سراسری تنظیم می‌کند. هوک شل (shell hook)، در صورت فعال بودن، نشست شل فعلی را با این switch همگام می‌سازد، مگر اینکه دایرکتوری جاری یک switch محلی باشد که در آن صورت از آن switch محلی استفاده خواهد شد. همیشه می‌توانید از eval $(opam env --switch=SWITCH --set-switch) برای مشخص کردن صریح switch استفاده کنید که هوک شل را بازنویسی (override) می‌کند.

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

همراه با یک آرگومان SWITCH، به‌طور پیش‌فرض به set SWITCH عمل می‌کند.
-
به switch غیرمحلی قبلی بازمی‌گردد (مشابه git switch -). برای تنظیم switch کنونی روی یک switch با نام - از --cli=2.1 یا پایین‌تر استفاده کنید، یا از opam switch set - استفاده نمایید.
یک switch جدید ایجاد می‌کند و کامپایلر ارائه‌شده را در آن نصب می‌نماید. آرگومان SWITCH می‌تواند یک نام ساده باشد یا یک دایرکتوری (مطلق یا نسبی)، که در این صورت یک switch محلی در زیر دایرکتوری مشخص‌شده ایجاد می‌شود. در صورت حذف COMPILER، چنانچه SWITCH یک نام ساده باشد، پیش‌فرض آن مقدار SWITCH خواهد بود، مگر اینکه --packages، --formula یا --empty مشخص شده باشند. هنگام ایجاد یک switch محلی، و در صورت نبود هیچ‌یک از این گزینه‌ها، کامپایلر بر اساس پیش‌فرض پیکربندی انتخاب می‌شود (ببینید opam-init(1)). اگر دایرکتوری انتخابی شامل تعاریف بسته باشد، یک کامپایلر سازگار در میان گزینه‌های پیش‌فرض جستجو شده و بسته‌ها به‌طور خودکار نصب خواهند شد.
تنظیم switch فعالِ کنونی از میان switchهای نصب‌شده.
حذف switch مشخص‌شده از روی دیسک.
ذخیرهٔ وضعیت switch کنونی در یک فایل. اگر --full مشخص شده باشد، متادیتای تمام بسته‌های نصب‌شده را شامل می‌شود، و اگر --freeze مشخص شده باشد، تمام vcsها را در کامیت کنونی‌شان منجمد می‌کند.
وارد کردن (import) وضعیتِ ذخیره‌شدهٔ یک switch. اگر --switch مشخص شده باشد و به یک switch موجود اشاره نکند، آن switch برای واردسازی ایجاد خواهد شد.
نصب مجدد switch کامپایلر مشخص‌شده و تمام بسته‌های آن.
فهرست کردن switchهای نصب‌شده.
فهرست کردن تمام بسته‌های ممکنی که هنگام ایجاد یک switch جدید نصب آن‌ها توصیه می‌شود، یعنی بسته‌هایی با پرچم compiler تنظیم‌شده. اگر هیچ الگویی ارائه نشود، تمام نسخه‌ها نمایش داده می‌شوند. به‌طور پیش‌فرض، بسته‌های پرچم‌گذاری‌شده با avoid-version یا deprecated نمایش داده نمی‌شوند مگر اینکه --all داده شده باشد.
چاپ نام switch کنونی.
چاپ پایا (invariant) switch فعال.
به‌روزرسانی پایا (invariant) switch؛ یعنی فرمولی که switch باید در طول تمام عملیات‌ها معتبر بودن آن را حفظ کند. تنظیمات قبلی بازنویسی می‌شود. همچنین گزینه‌های --force و --no-action را ببینید. بدون آرگومان، یک پایا (invariant) به‌طور خودکار انتخاب می‌شود.
تنظیم توضیحات برای switch انتخابی.
تنظیم یک نام مستعار محلی برای یک switch مشخص، تا هر زمان که در آن دایرکتوری یا زیرشاخه‌های آن قرار گرفتید، این switch به‌طور خودکار انتخاب شود.
در نسخهٔ 2.1 حذف شد، به‌جای آن از create استفاده کنید.
در نسخهٔ 2.1 حذف شد، به‌جای آن از set-invariant استفاده کنید.

opam switch create 4.08.0

ایجاد یک switch جدید به نام «4.08.0» و انتخاب آن، همراه با کامپایلری که به‌طور خودکار روی نسخهٔ 4.08.0 انتخاب می‌شود (توجه داشته باشید که در صورت وجود بیش از یک کامپایلر منطبق با آن نسخه، این عمل ممکن است با شکست مواجه شود).

opam switch create ./ --deps-only

آماده‌سازی یک switch محلی برای ساخت بسته‌های تعریف‌شده در ./. این دستور دایرکتوری فعلی را برای تعاریف بسته پویش کرده، یک کامپایلر سازگار را انتخاب می‌کند، یک switch محلی می‌سازد و وابستگی‌های بستهٔ محلی را نصب می‌کند.

opam switch create trunk --repos default,beta=https://github.com/ocaml/ocaml-beta-repository.git ocaml-variants.4.10.0+trunk

ایجاد یک switch جدید به نام «trunk»، با ocaml-variants.4.10.0+trunk به‌عنوان کامپایلر، همراه با یک مخزن جدید beta متصل به URL ارائه‌شده که در کنار مخزن پیش‌فرض انتخاب شده است..SH "گزینه‌ها (OPTIONS)"

-A COMP, --alias-of=COMP
در 2.1 حذف شد.
--all
فقط برای list-available: نمایش تمام کامپایلرهای موجود، صرف‌نظر از اینکه با پرچم avoid-version یا deprecated علامت‌گذاری شده باشند.
--deps-only
هنگام ایجاد یک switch محلی در دایرکتوری پروژه (یعنی دایرکتوری شامل تعاریف بسته‌های opam)، وابستگی‌های پروژه را نصب می‌کند اما خود پروژه را خیر. هنگام درون‌ریزی (import) یک switch، بسته‌های ریشه را نصب نمی‌کند.
--description=STRING
هنگام ایجاد یک switch، توضیحات ارائه‌شده را به آن پیوست می‌کند. برای تغییر توضیحات یک switch موجود، از زیرفرمان set-description استفاده کنید.
--empty
اجازه ایجاد یک switch خالی بدون هیچ invariant را می‌دهد.
--force
فقط برای set-invariant: اجبار در تنظیم invariant، با دور زدن بررسی‌های سازگاری.
--formula=FORMULA
امکان تعیین یک «فرمول وابستگی» کامل، شامل شروط فصلی (disjunction)، را به عنوان invariant سویچ فراهم می‌کند. قالب آن همانند بیان وابستگی‌ها در فایل‌های تعریف بسته است؛ مانند '"foo" {>= "1.1"}'.
--freeze
هنگام برون‌ریزی (export)، تمام نشانی‌های اینترنتی VCS را روی کامیت فعلی‌شان قفل می‌کند و در صورت عدم امکان بازیابی، ناموفق خواهد بود. این کار تضمین می‌کند که یک درون‌ریزی دقیقاً همان وضعیت را بازگردانی کند. به طور ضمنی شامل --full است.
--full
هنگام برون‌ریزی، متادیتای تمام بسته‌های نصب‌شده را لحاظ می‌کند و امکان درون‌ریزی مجدد آن‌ها را حتی در صورت عدم وجود در مخازن فراهم می‌سازد (حالت پیش‌فرض فقط شامل متادیتای بسته‌های پین‌شده است).
-n, --no-action
فقط برای set-invariant: مقدار invariant را تنظیم می‌کند، اما آن را بلافاصله اعمال نمی‌کند: منتظر فرمان بعدی install، upgrade یا مشابه آن می‌ماند.
--no-autoinstall
در 2.1 حذف شد.
--no-install
هنگام ایجاد یک switch محلی، برای نصب به دنبال تعاریف بسته محلی نمی‌گردد.
--no-switch
switch‌های تازه نصب‌شده را به‌طور خودکار انتخاب نمی‌کند.
--packages=PACKAGES
هنگام نصب یک switch، مجموعه بسته‌ها را به‌طور صریح برای اعمال به عنوان invariant سویچ مشخص می‌کند.
--repositories=REPOS
هنگام ایجاد یک switch جدید، از مخازن ارائه‌شده به جای مقدار پیش‌فرض استفاده می‌کند. آرگومان REPOS باید فهرستی جداشده با کاما از نام مخازن ثبت‌شده قبلی (پیکربندی‌شده برای مثال با opam repository add --dont-select) یا پیوندهای NAME=URL باشد که در این حالت NAME نباید قبلاً با نشانی متفاوتی ثبت شده باشد و مخزن جدید ثبت خواهد شد. برای جزئیات بیشتر به opam repository مراجعه کنید. این گزینه بر list-available نیز تأثیر می‌گذارد.
-s, --short
فهرست خام نام‌ها را بدون نمایش جزئیات، در هر خط یک مورد، خروجی می‌دهد.

--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
حداکثر تعداد کارهای (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
چک‌سام (checksum) آرشیوهای بارگیری‌شده را اعتبارسنجی نمی‌کند. این معادل تنظیم $OPAMNOCHECKSUMS روی "true" است.
--no-depexts
مدیریت وابستگی‌های خارجی را موقتاً غیرفعال می‌کند. اگر بسته‌ای در مدیر بسته سیستم شما وجود ندارد اما وابستگی مربوطه را دستی نصب کرده‌اید، می‌توان از این گزینه استفاده کرد. به طور ضمنی شامل --assume-depexts است و در صورت موفقیت، موارد استثنا را نیز ذخیره می‌کند.
--require-checksums
نصب بسته‌هایی را که برای آرشیوهای بالادست (upstream) چک‌سام ارائه نمی‌دهند رد می‌کند. این معادل تنظیم $OPAMREQUIRECHECKSUMS روی "true" است.
--reuse-build-dir
به جای کامپایل از یک کلون تمیز سورس، از دایرکتوری‌های ساخت موجود (که با استفاده از --keep-build-dir نگه‌داری شده‌اند) استفاده مجدد می‌کند. این می‌تواند سرعت را افزایش دهد، اما اگر سیستم‌های ساخت بسته ارتقای وابستگی‌ها را به درستی پشتیبانی نکنند می‌تواند منجر به خطا شود. این معادل تنظیم $OPAMREUSEBUILDDIR روی "true" است.
--show-actions
حل‌کننده (solver) را فراخوانی کرده و اقدامات را نمایش می‌دهد. هیچ تغییری اعمال نمی‌کند. این معادل تنظیم $OPAMSHOW است.
--skip-updates
هنگام اجرای install، upgrade یا reinstall روی بسته‌های پین‌شده از سورس، آن‌ها معمولاً ابتدا از مبدأ خود به‌روزرسانی می‌شوند. این پرچم این رفتار را غیرفعال کرده و نسخه موجود در حافظه موقت (cache) را حفظ می‌کند. این معادل تنظیم $OPAMSKIPUPDATE است.
-t, --with-test
آزمون‌های واحد (unit-tests) بسته را ساخته و اجرا می‌کند. این گزینه تنها بر بسته‌های ذکرشده در خط فرمان تأثیر می‌گذارد. این معادل تنظیم $OPAMWITHTEST (یا متغیر منسوخ‌شده $OPAMBUILDTEST) روی "true" است.
--unlock-base
در 2.1 حذف شد، به جای آن از --update-invariant استفاده کنید.
--update-invariant
اجازه اعمال تغییرات در بسته‌های تعیین‌شده به عنوان پایه switch (معمولاً کامپایلر اصلی) را می‌دهد. با احتیاط استفاده شود. این معادل تنظیم متغیر محیطی $OPAMUNLOCKBASE است
--verbose-on=PACKAGES
نمایش گزارش‌های پرجزئیات‌تر (verbose) را برای بسته‌های مشخص‌شده فعال می‌کند. این معادل تنظیم $OPAMVERBOSE است.
--with-dev-setup
وابستگی‌های صرفاً مربوط به ابزارهای توسعه را نیز لحاظ می‌کند..SH "گزینه‌های عمومی (COMMON OPTIONS)"

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

--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
تعیین ترجیحات (preferences) کاربر برای حل وابستگی‌ها در این اجرا. متغیرهای $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
پاسخ منفی به تمام پرسش‌های بله/خیر 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
اطمینان حاصل می‌کند که هیچ چیزی به صورت خودکار به‌روزرسانی یا بازنویسی نخواهد شد. به عنوان مثال برای فراخوانی از اسکریپت‌های تکمیل خودکار فرمان مفید است. هر زمان که چنین عملیاتی نیاز باشد با خطا مواجه می‌شود؛ همچنین از انتظار برای قفل‌ها جلوگیری می‌کند، از پرسش‌های تعاملی صرف‌نظر کرده و متغیر $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
هنگام به‌روزرسانی بسته‌های متصل به یک شاخه محلی تحت سیستم کنترل نسخه، به جای آخرین وضعیت ثبت‌شده یا ارجاعی که به آن اشاره دارند، وضعیت کاری فعلی کد مبدأ آنها را مبنای به‌روزرسانی قرار می‌دهد. از آنجا که دایرکتوری منبع همان‌گونه که هست کپی می‌شود، تمیز نبودن آن ممکن است باعث شکست در ساخت opam شود. این گزینه فقط بسته‌هایی را تحت تأثیر قرار می‌دهد که صراحتاً در خط فرمان فهرست شده‌اند. همچنین می‌تواند از طریق $OPAMWORKINGDIR تنظیم شود.
-y, --yes
پاسخ مثبت به تمام پرسش‌های بله/خیر opam بدون درخواست از کاربر. همچنین ببینید --confirm-level. این معادل تنظیم $OPAMYES روی "true" است..SH "محیط (ENVIRONMENT)"

دستور 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 حداکثر تعداد پردازش‌های موازی (workers) در حال اجرا را تعیین می‌کند.

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

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

OPAMKEEPLOGS به opam اعلام می‌کند که برخی از گزارش‌های موقت دستورات و برخی از نسخه‌های پشتیبان را حذف نکند. این کار برخی نهایی‌سازها (finalisers) را نادیده می‌گیرد و ممکن است به دریافت ردگیری‌های پشته (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 تعیین می‌کند که آیا سامانه‌های کنترل نسخه هنگام سنجاق کردن (pinning) به یک مسیر محلی تشخیص داده شوند یا خیر. از نسخه 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}%` در فایل‌های `opam`، محتوای متغیر var را بازنویسی می‌کند.

OPAMVAR_package_var هنگام جایگزینی رشته‌های `%{package:var}%` در فایل‌های `opam`، محتوای متغیر package:var را بازنویسی می‌کند..SH "نسخه خط فرمان (CLI VERSION)"

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

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

از آنجا که پشتیبانی از نسخه خط فرمان تنها در opam 2.1 اضافه شده است، از OPAMCLI برای انتخاب پشتیبانی 2.0 استفاده کنید (زیرا opam 2.0 آن را صرفاً نادیده می‌گیرد)، و برای نسخه‌های 2.1 (یا بالاتر) از `--cli=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
خطا در تعریف بسته یا سایر فایل‌های فراداده. استفاده از --strict باعث می‌شود این خطا بیشتر رخ دهد.
31
خطای اسکریپت بسته. برخی از عملیات بسته ناموفق بودند. این ممکن است خطایی در بسته‌ها یا ناسازگاری با سیستم شما باشد. این می‌تواند یک خطای جزئی باشد.
40
خطای همگام‌سازی. دریافت برخی از مخازن دوردست از شبکه ممکن نشد. این می‌تواند یک خطای جزئی باشد.
50
خطای پیکربندی. پیکربندی سیستم یا Opam اجازه انجام عملیات را نمی‌دهد و نیاز به اصلاح دارد.
60
شکست حل‌کننده (Solver). حل‌کننده نتوانست پاسخی درست و معتبر بازگرداند. این ممکن است به دلیل خرابی حل‌کننده خارجی یا خطایی در پیکربندی حل‌کننده باشد.
99
خطای داخلی. مشکلی رخ داده است، احتمالاً به دلیل وجود یک باگ در خود opam.
130
وقفه کاربر. سیگنال SIGINT دریافت شد، که عموماً به دلیل فشردن کلیدهای Ctrl-C توسط کاربر است.
0
در صورت موفقیت.
123
در صورت خطاهای نامشخص گزارش‌شده در خطای استاندارد.
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>.SH "همچنین ببینید (SEE ALSO)"

opam(1)

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

Opam 2.5.2