OPAM ADMIN-COMPARE-VERSIONS(1) Opam admin Manual OPAM ADMIN-COMPARE-VERSIONS(1)

opam admin-compare-versions - مقایسه دو نسخه بسته

opam admin compare-versions [OPTION]… V0 V1

این دستور ۲ نسخه از یک بسته را با یکدیگر مقایسه می‌کند. به‌طور پیش‌فرض، عبارت 'V0 OP V1' را در کنسول خروجی می‌دهد که در آن OP یکی از مقادیر {<,>,=} است به‌گونه‌ای که رابطه برقرار باشد. هنگامی که یک عملگر مشخص شود، خروجی غیرفعال شده و نتیجه مقایسه با عملگر ارائه‌شده بررسی می‌شود: اگر رابطه مقایسه برقرار باشد، دستور با وضعیت 0 خارج می‌شود و در غیر این صورت با وضعیت 1. برای مثال:

$ opam admin compare-versions 0.0.9 0.0.10
0.0.9 < 0.0.10
$ opam admin compare-versions 0.0.9 --lt 0.0.10
[0]
$ opam admin compare-versions 0.0.9 --eq 0.0.10
[1]

نسخه بسته برای مقایسه
نسخه بسته برای مقایسه

--eq
بررسی شرط V0 = V1
--geq
بررسی شرط V0 >= V1
--gt
بررسی شرط V0 > V1
--leq
بررسی شرط V0 <= V1
--lt
بررسی شرط V0 < V1
--neq
بررسی شرط V0 != V1

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

--help[=FMT] (پیش‌فرض=auto)
نمایش این راهنما در قالب FMT. مقدار FMT باید یکی از مقادیر auto، pager، groff یا plain باشد. با مقدار auto، چنانچه متغیر محیطی TERM برابر با dumb یا تعریف‌نشده باشد، قالب خروجی به صورت pager یا plain خواهد بود.
--version
نمایش اطلاعات نسخه.

برنامه Opam از متغیرهای محیطی فهرست‌شده در اینجا استفاده می‌کند. متغیرهای بولی برای غیرفعال‌سازی باید روی "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 تعیین می‌کند که آیا هنگام سنجاق کردن (pinning) به یک مسیر محلی، سیستم‌های کنترل نسخه تشخیص داده شوند یا خیر. از نسخه 1.3.0 به‌طور پیش‌فرض فعال است.

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

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

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') به برخی از حل‌کننده‌ها اجازه می‌دهد تا هنگام اتمام مهلت زمانی، همچنان یک راه‌حل بازگردانند؛ در حالی که تضمین می‌شود راه‌حل پایدار بماند، در این حالت هیچ تضمینی وجود ندارد که با معیارهای بهینه‌سازی مورد انتظار سازگار باشد. اگر برابر با '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' است که بر اساس تنظیمات محلی مشخص می‌شود).

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 را بازنویسی می‌کند.

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

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

از آنجا که پشتیبانی از نسخه رابط خط فرمان تنها در 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
خطا در تعریف بسته یا سایر فایل‌های فراداده. استفاده از --strict وقوع این خطا را افزایش می‌دهد.
31
خطای اسکریپت بسته. برخی عملیات بسته ناموفق بودند. این ممکن است خطایی در بسته‌ها یا ناسازگاری با سیستم شما باشد. این خطا می‌تواند یک خطای جزئی باشد.
40
خطای همگام‌سازی. دریافت برخی از موارد دوردست از طریق شبکه ممکن نشد. این می‌تواند یک خطای جزئی باشد.
50
خطای پیکربندی. پیکربندی سیستم یا opam اجازه اجرای عملیات را نمی‌دهد و نیازمند اصلاح است.
60
شکست حل‌کننده. حل‌کننده نتوانست پاسخی معتبر بازگرداند. این می‌تواند ناشی از یک حل‌کننده خارجی معیوب یا خطایی در پیکربندی حل‌کننده باشد.
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>

opam admin(1)

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

Opam admin 2.5.2