| OPAM-SWITCH(1) | Opam Manual | OPAM-SWITCH(1) |
نام (NAME)
opam-switch - مدیریت پیشوندهای نصب چندگانه
خلاصه دستور (SYNOPSIS)
opam switch [OPTION]… [COMMAND] [ARG]…
توضیحات (DESCRIPTION)
این دستور برای مدیریت «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) میکند.
دستورها (COMMANDS)
بدون آرگومان، پیشفرض list است.
- SWITCH
- همراه با یک آرگومان SWITCH، بهطور پیشفرض به set SWITCH عمل میکند.
- -
- به switch غیرمحلی قبلی بازمیگردد (مشابه git switch -). برای تنظیم switch کنونی روی یک switch با نام - از --cli=2.1 یا پایینتر استفاده کنید، یا از opam switch set - استفاده نمایید.
- create SWITCH [COMPILER]
- یک switch جدید ایجاد میکند و کامپایلر ارائهشده را در آن نصب مینماید. آرگومان SWITCH میتواند یک نام ساده باشد یا یک دایرکتوری (مطلق یا نسبی)، که در این صورت یک switch محلی در زیر دایرکتوری مشخصشده ایجاد میشود. در صورت حذف COMPILER، چنانچه SWITCH یک نام ساده باشد، پیشفرض آن مقدار SWITCH خواهد بود، مگر اینکه --packages، --formula یا --empty مشخص شده باشند. هنگام ایجاد یک switch محلی، و در صورت نبود هیچیک از این گزینهها، کامپایلر بر اساس پیشفرض پیکربندی انتخاب میشود (ببینید opam-init(1)). اگر دایرکتوری انتخابی شامل تعاریف بسته باشد، یک کامپایلر سازگار در میان گزینههای پیشفرض جستجو شده و بستهها بهطور خودکار نصب خواهند شد.
- set SWITCH
- تنظیم switch فعالِ کنونی از میان switchهای نصبشده.
- remove SWITCH
- حذف switch مشخصشده از روی دیسک.
- export FILE
- ذخیرهٔ وضعیت switch کنونی در یک فایل. اگر --full مشخص شده باشد، متادیتای تمام بستههای نصبشده را شامل میشود، و اگر --freeze مشخص شده باشد، تمام vcsها را در کامیت کنونیشان منجمد میکند.
- import FILE
- وارد کردن (import) وضعیتِ ذخیرهشدهٔ یک switch. اگر --switch مشخص شده باشد و به یک switch موجود اشاره نکند، آن switch برای واردسازی ایجاد خواهد شد.
- reinstall [SWITCH]
- نصب مجدد switch کامپایلر مشخصشده و تمام بستههای آن.
- list
- فهرست کردن switchهای نصبشده.
- list-available [PATTERN]
- فهرست کردن تمام بستههای ممکنی که هنگام ایجاد یک switch جدید نصب آنها توصیه میشود، یعنی بستههایی با پرچم compiler تنظیمشده. اگر هیچ الگویی ارائه نشود، تمام نسخهها نمایش داده میشوند. بهطور پیشفرض، بستههای پرچمگذاریشده با avoid-version یا deprecated نمایش داده نمیشوند مگر اینکه --all داده شده باشد.
- show
- چاپ نام switch کنونی.
- invariant
- چاپ پایا (invariant) switch فعال.
- set-invariant PACKAGES
- بهروزرسانی پایا (invariant) switch؛ یعنی فرمولی که switch باید در طول تمام عملیاتها معتبر بودن آن را حفظ کند. تنظیمات قبلی بازنویسی میشود. همچنین گزینههای --force و --no-action را ببینید. بدون آرگومان، یک پایا (invariant) بهطور خودکار انتخاب میشود.
- set-description STRING
- تنظیم توضیحات برای switch انتخابی.
- link SWITCH [DIR]
- تنظیم یک نام مستعار محلی برای یک switch مشخص، تا هر زمان که در آن دایرکتوری یا زیرشاخههای آن قرار گرفتید، این switch بهطور خودکار انتخاب شود.
- install SWITCH
- در نسخهٔ 2.1 حذف شد، بهجای آن از create استفاده کنید.
- set-base PACKAGES
- در نسخهٔ 2.1 حذف شد، بهجای آن از set-invariant استفاده کنید.
مثالها (EXAMPLES)
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
- فهرست خام نامها را بدون نمایش جزئیات، در هر خط یک مورد، خروجی میدهد.
گزینههای ساخت بسته (PACKAGE BUILD OPTIONS)
- --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' داده نشده باشد.
وضعیت خروج (EXIT STATUS)
به عنوان استثنایی بر موارد زیر، دستور `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
- در صورت خطاهای داخلی غیرمنتظره (باگها).
مستندات بیشتر (FURTHER DOCUMENTATION)
به https://opam.ocaml.org/doc مراجعه کنید.
نویسندگان (AUTHORS)
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)
گزارش باگها (BUGS)
گزارشهای باگ را در https://github.com/ocaml/opam/issues بررسی کنید.
| Opam 2.5.2 |