.\" Pipe this output to groff -m man -K utf8 -T utf8 | less -R .\" .mso an.tmac .TH "OPAM-LINT" 1 "" "Opam 2.5.2" "Opam Manual" .\" Disable hyphenation and ragged-right .nh .ad l .SH "نام (NAME)" .P opam\-lint \- بررسی و اعتبارسنجی فایل‌های توصیف بسته (\(aqopam\(aq) .SH "خلاصه دستور (SYNOPSIS)" .P \fBopam lint\fR [\fIOPTION\fR]… [\fIFILES\fR]… .SH "توضیحات (DESCRIPTION)" .P با دریافت یک فایل \fIopam\fR، چندین بررسی کیفی روی آن انجام داده و توصیه‌ها، هشدارها یا خطاها را در خروجی خطای استاندارد (stderr) نمایش می‌دهد. .SH "آرگومان‌ها (ARGUMENTS)" .TP 4 \fIFILES\fR نام فایل‌های opam جهت بررسی، یا دایرکتوری حاوی آن‌ها. در صورت مشخص نشدن، دایرکتوری جاری در نظر گرفته می‌شود. .SH "گزینه‌ها (OPTIONS)" .TP 4 \fB\-\-check\-upstream\fR بررسی بالادست (upstream)، در دسترس بودن بایگانی و مجموع(های) مقابله‌ای (checksum). .TP 4 \fB\-\-normalise\fR ارسال یک نسخهٔ استانداردسازی‌شده از فایل opam به خروجی استاندارد (stdout). .TP 4 \fB\-\-package\fR=\fIPKG\fR بررسی ساختاری تعریف فعلی بستهٔ مشخص‌شده به‌جای تعیین مستقیم یک فایل opam. .TP 4 \fB\-\-recursive\fR اجازه دادن به جستجوی بازگشتی فایل‌های \fB*.opam\fR. همچنین به \fI\-\-subpath\fR رجوع کنید. .TP 4 \fB\-s\fR, \fB\-\-short\fR فقط چاپ شماره‌های هشدار/خطا به‌صورت جداشده با فاصله (در صورت وجود). .TP 4 \fB\-\-subpath\fR=\fIPATH\fR فایل‌های \fB*.opam\fR به‌جای دایرکتوری اصلی، از زیردایرکتوری ارائه‌شده دریافت می‌شوند. سورس‌ها از زیردایرکتوری هدف برداشته می‌شوند و در بخش داخلی فقط این زیردایرکتوری کپی یا دریافت می‌گردد. این گزینه می‌تواند با \fI\-\-recursive\fR برای جستجوی بازگشتی روی مسیر فرعی (subpath) ترکیب شود. .TP 4 \fB\-W\fR \fIWARNS\fR, \fB\-\-warnings\fR=\fIWARNS\fR انتخاب هشدارهایی که نمایش داده شوند یا پنهان شوند. آرگومان \fIWARNS\fR باید ترکیبی پیوسته از \fB+N\fR، \fB\-N\fR، \fB@N\fR، \fB+N..M\fR، \fB\-N..M\fR و \fB@N..M\fR باشد تا به‌ترتیب شمارهٔ هشدار یا خطای \fBN\fR یا همهٔ هشدارهای با شماره‌های بین \fBN\fR و \fBM\fR (شامل هر دو) را فعال، غیرفعال یا به‌عنوان‌خطا‌فعال کند. همهٔ هشدارها به‌طور پیش‌فرض فعال هستند، مگر اینکه \fIWARNS\fR با \fB+\fR یا \fB@\fR آغاز شود که در این صورت همه به‌جز موارد انتخابی غیرفعال خواهند شد. .SH "کدهای بررسی ساختار (LINT CODES)" .P W\fB20\fR: فیلد \(aqopam\-version\(aq به نسخهٔ وصله (patch) مربوط به opam اشاره دارد؛ باید به شکل MAJOR.MINOR باشد. .P \fIE\fR\fB21\fR: فیلد \(aqopam\-version\(aq با نسخهٔ فعلی همخوانی ندارد؛ اعتبارسنجی ممکن است دقیق نباشد. .P \fIE\fR\fB22\fR: برخی فیلدها وجود دارند اما خالی هستند؛ آن‌ها را حذف یا پر کنید. .P \fIE\fR\fB23\fR: فیلد \(aqmaintainer\(aq وجود ندارد. .P \fIE\fR\fB24\fR: فیلد \(aqmaintainer\(aq مقدار پیش‌فرض قدیمی را دارد. .P W\fB25\fR: فیلد \(aqauthors\(aq وجود ندارد. .P W\fB26\fR: فیلد \(aqinstall\(aq وجود ندارد اما فیلد \(aqremove\(aq هست: دستورالعمل‌های نصب احتمالاً بخشی از \(aqbuild\(aq هستند. از فیلد \(aqinstall\(aq یا یک فایل .install استفاده کنید. .P \fIE\fR\fB28\fR: پرچم‌های ناشناخته برای بسته یافت شد. .P \fIE\fR\fB29\fR: وابستگی‌ها یا تداخل‌های بسته، به متغیرهای بسته ارجاع می‌دهند. .P \fIE\fR\fB31\fR: فیلدهای \(aqdepends\(aq و \(aqdepopts\(aq به نام بسته‌های یکسانی اشاره دارند. .P \fIE\fR\fB32\fR: فیلد \(aqocaml\-version:\(aq و متغیر \(aqocaml\-version\(aq منسوخ شده‌اند؛ به‌جای آن برای در دسترس بودن از وابستگی به بستهٔ \(aqocaml\(aq و برای اسکریپت‌ها از متغیر بستهٔ \(aqocaml:version\(aq استفاده کنید. .P \fIE\fR\fB33\fR: فیلد \(aqos\(aq منسوخ شده است؛ به‌جای آن از \(aqavailable\(aq و متغیر \(aqos\(aq استفاده کنید. .P \fIE\fR\fB34\fR: فیلد \(aqavailable:\(aq حاوی ارجاعاتی به متغیرهای محلی بسته است. مقدار آن تنها باید از متغیرهای پیکربندی سراسری تعیین شود. .P W\fB35\fR: فیلد \(aqhomepage\(aq وجود ندارد. .P W\fB36\fR: فیلد \(aqbug\-reports\(aq وجود ندارد. .P W\fB37\fR: فیلد \(aqdev\-repo\(aq وجود ندارد. .P \fIE\fR\fB39\fR: دستور \(aqmake\(aq مستقیماً فراخوانی شده است؛ به‌جای آن از متغیر داخلی استفاده کنید. .P W\fB41\fR: برخی بسته‌ها در اسکریپت‌ها یا قابلیت‌های بسته ذکر شده‌اند، اما هیچ وابستگی یا depopt متناظری برای آن‌ها وجود ندارد. .P \fIE\fR\fB42\fR: فیلد \(aqdev\-repo:\(aq از سیستم کنترل نسخه استفاده نمی‌کند. باید از نشانی‌های اینترنتی به شکل "git://"، "git+https://"، "hg+https://" و... استفاده کنید. .P \fIE\fR\fB43\fR: در فیلد \(aqconflicts:\(aq از عطف منطقی استفاده شده است. تنها استفاده از \(aq|\(aq مجاز است. .P W\fB44\fR: پرچم بستهٔ \(aqplugin\(aq تنظیم شده است اما نام بسته با \(aqopam\-\(aq آغاز نمی‌شود. .P \fIE\fR\fB45\fR: درون‌یابی متغیرِ بسته‌نشده در رشته‌ها. .P \fIE\fR\fB46\fR: بسته با "conf" پرچم‌گذاری شده است اما حاوی دستورالعمل‌های سورس، نصب یا حذف است. .P W\fB47\fR: خلاصه باید با یک حرف بزرگ آغاز شده و با نقطه پایان نیابد. .P W\fB48\fR: فیلدهای \(aqbuild\-test:\(aq و \(aqbuild\-doc:\(aq منسوخ شده‌اند و باید با استفاده از متغیرهای فیلتر \(aqwith\-test\(aq و \(aqwith\-doc\(aq در فیلدهای \(aqbuild:\(aq و \(aqinstall:\(aq، و همچنین با فیلد جدیدتر \(aqrun\-test:\(aq جایگزین شوند. .P W\fB49\fR: نشانی‌های زیر از سامانه کنترل نسخه استفاده نمی‌کنند اما شبیه به نشانی‌های کنترل نسخه به نظر می‌رسند. .P W\fB50\fR: پرچم \(aqpost\(aq در کنار وابستگی‌های ساخت یا اختیاری بی‌معنی است. .P \fIE\fR\fB51\fR: رفتار پرچم‌های وابستگیِ نفی‌شدهٔ \(aqbuild\(aq یا \(aqpost\(aq نامشخص است. .P \fIE\fR\fB52\fR: بسته بیهوده با "light\-uninstall" علامت‌گذاری شده است، زیرا فاقد هرگونه دستورالعمل حذف است. .P \fIE\fR\fB53\fR: فیلد \(aqextra\-files:\(aq نامنطبق است. .P W\fB54\fR: وابستگی‌های خارجی نباید حاوی فاصله یا رشتهٔ خالی باشند. .P \fIE\fR\fB55\fR: رشتهٔ غیراستاندارد سیستم‌عامل یا معماری مورد بررسی قرار گرفته است. .P \fIE\fR\fB57\fR: خلاصه نباید خالی باشد. .P W\fB58\fR: متغیر از‌پیش‌تعریف‌شده یافت شد. .P W\fB59\fR: نشانی اینترنتی حاوی مجموع مقابله‌ای (checksum) نیست. .P \fIE\fR\fB60\fR: بررسی بالادست (upstream) با شکست مواجه شد. .P W\fB61\fR: متغیر `with\-test` در `run\-test` خارج از حوزه (scope) است؛ نادیده گرفته خواهد شد. .P W\fB62\fR: مجوز از استاندارد SPDX پیروی نمی‌کند، https://spdx.org/licenses را ببینید .P \fIE\fR\fB63\fR: فیلد `subpath` نیازمند یک محدودیت در فیلد available است: `opam\-version > 2.1` .P \fIE\fR\fB65\fR: نشانی‌های اینترنتی (URL) باید مطلق باشند. .P W\fB66\fR: رشته‌ای که در فرمول فیلترشدهٔ بسته نمی‌تواند به نوع بولی (bool) تبدیل شود. .P \fIE\fR\fB67\fR: مجموع مقابله‌ای برای یک نشانی غیربایگانی تعیین شده است. .P W\fB68\fR: فیلد \(aqlicense\(aq وجود ندارد. .P W\fB69\fR: نام بسته در متغیر درون درون‌یابی رشته‌ای حاوی چند \(aq+\(aq است، استفاده کنید از .P \fIE\fR\fB70\fR: فیلد \(aqextra\-files\(aq حاوی فایل‌های تکراری است. .P \fIE\fR\fB71\fR: فیلد \(aqurl.checksum\(aq حاوی مجموع‌های مقابله‌ای تکراری است. .P \fIE\fR\fB72\fR: فیلد \(aqextra\-sources\(aq حاوی مجموع‌های مقابله‌ای تکراری است. .P \fIE\fR\fB73\fR: فیلد \(aqextra\-files\(aq حاوی مسیری با \(aq..\(aq است. .P W\fB74\fR: فیلد \(aqpin\-depends\(aq حاوی بسته‌هایی است که نه در \(aqdepends\(aq و نه در \(aqdepopts\(aq قرار دارند..SH "گزینه‌های عمومی (COMMON OPTIONS)" .P این گزینه‌ها بین تمام دستورها مشترک هستند\N'46' .TP 4 \fB\N'45'\N'45'best\N'45'effort\fR اگر همه بسته‌های درخواستی قابل نصب نبودند، با شکست متوقف نشو: تلاش کن تا جای ممکن بیشترین تعداد بسته نصب شود\N'46' توجه داشته باشید که ممکن است همه حل‌کننده‌های خارجی از این گزینه پشتیبانی نکنند (نسخه‌های اخیر \fIaspcud\fR یا \fImccs\fR باید پشتیبانی کنند)\N'46' این معادل با تنظیم متغیر محیطی \fB$OPAMBESTEFFORT\fR است\N'46' .TP 4 \fB\N'45'\N'45'cli\fR=\fIMAJOR\N'46'MINOR\fR (absent=\fB2\N'46'5\fR) استفاده از نحو و معناشناسی واسط خط فرمان نسخه \fIMAJOR\N'46'MINOR\fR\N'46' برای هرگونه استفاده ماندگار از opam (اسکریپت‌ها، پست‌های وبلاگ و غیره) در نظر گرفته شده است؛ هر نسخه‌ای از opam در همان سری MAJOR مشابه نسخه مشخص‌شده MINOR رفتار خواهد کرد\N'46' این پرچم در opam 2\N'46'0 در دسترس نبود، بنابراین برای انتخاب CLI نسخه 2\N'46'0، متغیر محیطی \fBOPAMCLI\fR را به جای استفاده از این پارامتر برابر با \fI2\N'46'0\fR قرار دهید\N'46' .TP 4 \fB\N'45'\N'45'color\fR=\fIWHEN\fR رنگی کردن خروجی\N'46' مقدار \fIWHEN\fR باید یکی از \fBalways\fR، \fBnever\fR یا \fBauto\fR باشد\N'46' .TP 4 \fB\N'45'\N'45'confirm\N'45'level\fR=\fILEVEL\fR سطح تأیید؛ مقدار \fILEVEL\fR باید یکی از \fBask\fR، \fBno\fR، \fByes\fR یا \fBunsafe\N'45'yes\fR باشد\N'46' می‌تواند بیش از یک بار مشخص شود\N'46' اگر \fB\N'45'\N'45'yes\fR یا \fB\N'45'\N'45'no\fR نیز داده شده باشند، مقدار آخرین \fB\N'45'\N'45'confirm\N'45'level\fR در نظر گرفته می‌شود\N'46' این معادل با تنظیم \fB$OPAMCONFIRMLEVEL\fR است\N'46' .TP 4 \fB\N'45'\N'45'criteria\fR=\fICRITERIA\fR مشخص کردن ترجیحات (\fIpreferences\fR) کاربر برای حل وابستگی‌ها در این اجرا\N'46' مقادیر \fB$OPAMCRITERIA\fR، \fB$OPAMFIXUPCRITERIA\fR و \fB$OPAMUPGRADECRITERIA\fR را بازنویسی می‌کند\N'46' برای جزئیات در مورد زبان پشتیبانی‌شده و حل‌کننده‌های خارجی موجود، ببینید: \fIhttp://opam\N'46'ocaml\N'46'org/doc/External_solvers\N'46'html\fR\N'46' یک راهنمای عمومی برای استفاده از ترجیحات حل‌کننده را می‌توان در \fIhttp://www\N'46'dicosmo\N'46'org/Articles/usercriteria\N'46'pdf\fR یافت\N'46' .TP 4 \fB\N'45'\N'45'cudf\fR=\fIFILENAME\fR گزینه اشکال‌زدایی: ذخیره درخواست‌های CUDF ارسال‌شده به حل‌کننده در \fIFILENAME\fR\N'45'\N'46'cudf که در آن نشان‌دهنده n-امین فراخوانی حل‌کننده در طول اجرای opam است\N'46' .TP 4 \fB\N'45'\N'45'debug\fR چاپ پیام‌های اشکال‌زدایی در stderr\N'46' این گزینه معادل با تنظیم \fB$OPAMDEBUG\fR بر روی "true" است\N'46' .TP 4 \fB\N'45'\N'45'debug\N'45'level\fR=\fILEVEL\fR مشابه \fB\N'45'\N'45'debug\fR، اما امکان تعیین سطح اشکال‌زدایی را فراهم می‌کند (\fB\N'45'\N'45'debug\fR آن را روی ۱ تنظیم می‌کند)\N'46' معادل با تنظیم \fB$OPAMDEBUG\fR بر روی یک عدد صحیح مثبت\N'46' .TP 4 \fB\N'45'\N'45'git\N'45'version\fR چاپ نسخه git برنامه opam، در صورت تعیین (یعنی اگر از نسخه توسعه استفاده می‌کنید)، و خروج\N'46' .TP 4 \fB\N'45'\N'45'help\fR[=\fIFMT\fR] (default=\fBauto\fR) نمایش این راهنما در قالب \fIFMT\fR\N'46' مقدار \fIFMT\fR باید یکی از \fBauto\fR، \fBpager\fR، \fBgroff\fR یا \fBplain\fR باشد\N'46' با انتخاب \fBauto\fR، هرگاه متغیر محیطی \fBTERM\fR برابر با \fBdumb\fR یا تعریف‌نشده باشد، قالب به \fBpager\fR یا \fBplain\fR تغییر می‌کند\N'46' .TP 4 \fB\N'45'\N'45'ignore\N'45'pin\N'45'depends\fR نادیده گرفتن سنجاق‌کردن‌های اضافی (pin) مورد نیاز بسته‌هایی که سنجاق می‌شوند، چه به صورت دستی از طریق \fIopam pin\fR یا از طریق \fIopam install DIR\fR\N'46' این معادل با تنظیم \fBIGNOREPINDEPENDS=true\fR است\N'46' .TP 4 \fB\N'45'\N'45'json\fR=\fIFILENAME\fR ذخیره نتایج اجرای opam در یک فایل قابل خواندن توسط رایانه\N'46' اگر نام فایل شامل نویسه `%\N'39' باشد، با شاخصی جایگزین می‌شود که فایل موجود را بازنویسی نکند\N'46' مشابه تنظیم متغیر \fB$OPAMJSON\fR\N'46' .TP 4 \fB\N'45'\N'45'no\fR پاسخ «خیر» (no) به تمام پرسش‌های بله/خیر opam بدون اعلان و درخواست\N'46' همچنین ببینید: \fB\N'45'\N'45'confirm\N'45'level\fR\N'46' این معادل با تنظیم \fB$OPAMNO\fR بر روی "true" است\N'46' .TP 4 \fB\N'45'\N'45'no\N'45'aspcud\fR در \fB2\N'46'1\fR حذف شد\N'46' .TP 4 \fB\N'45'\N'45'no\N'45'auto\N'45'upgrade\fR هنگام پیکربندی یا به‌روزرسانی مخزنی که برای نسخه قدیمی‌تر opam (نسخه 1\N'46'2) نوشته شده است، opam به طور داخلی آن را به قالب فعلی تبدیل می‌کند\N'46' این گزینه این رفتار را غیرفعال می‌کند\N'46' توجه داشته باشید که مخازن باید نسخه قالب خود را در یک فایل \N'39'repo\N'39' در ریشه خود مشخص کنند، در غیر این صورت فرض می‌شود که در قالب قدیمی‌تر هستند\N'46' در هر صورت، ارتقای دستی مخازن با استفاده از \fIopam admin upgrade [\N'45'\N'45'mirror URL]\fR در صورت امکان ترجیح داده می‌شود\N'46' .TP 4 \fB\N'45'\N'45'no\N'45'self\N'45'upgrade\fR برنامه opam در صورت وجود، خود را با باینری جدیدتری که در \fBOPAMROOT/opam\fR یافت می‌شود جایگزین می‌کند\N'46' این گزینه این رفتار را غیرفعال می‌کند\N'46' .TP 4 \fB\N'45'q\fR, \fB\N'45'\N'45'quiet\fR غیرفعال کردن \fB\N'45'\N'45'verbose\fR\N'46' .TP 4 \fB\N'45'\N'45'root\fR=\fIROOT\fR استفاده از \fIROOT\fR به عنوان مسیر ریشه فعلی\N'46' این معادل با تنظیم \fB$OPAMROOT\fR بر روی \fIROOT\fR است\N'46' .TP 4 \fB\N'45'\N'45'safe\fR, \fB\N'45'\N'45'readonly\fR اطمینان حاصل می‌کند که هیچ چیزی به طور خودکار به‌روزرسانی یا بازنویسی نشود\N'46' برای مثال برای فراخوانی از اسکریپت‌های تکمیل خودکار (completion) مفید است\N'46' هر زمان که چنین عملیاتی نیاز باشد، با شکست مواجه می‌شود؛ همچنین از انتظار برای قفل‌ها جلوگیری می‌کند، از پرسش‌های تعاملی صرف‌نظر کرده و متغیر \fB$OPAMDEBUG\fR را لغو می‌کند\N'46' این معادل با تنظیم متغیر محیطی \fB$OPAMSAFE\fR است\N'46' .TP 4 \fB\N'45'\N'45'solver\fR=\fICMD\fR مشخص کردن حل‌کننده CUDF مورد استفاده برای رفع مشکلات نصب بسته\N'46' این مقدار می‌تواند یک حل‌کننده از پیش تعریف‌شده باشد (این نسخه از opam از builtin\N'45'mccs+lp()، builtin\N'45'mccs+glpk، builtin\N'45'dummy\N'45'z3\N'45'solver، builtin\N'45'0install، aspcud، mccs، aspcud\N'45'old و packup پشتیبانی می‌کند)، یا یک دستور سفارشی که باید شامل متغیرهای %{input}%، %{output}%، %{criteria}% و در صورت تمایل %{timeout}% باشد\N'46' این معادل با تنظیم \fB$OPAMEXTERNALSOLVER\fR است\N'46' .TP 4 \fB\N'45'\N'45'strict\fR شکست در صورت یافتن هرگونه خطا در تعریف بسته یا فایل پیکربندی\N'46' حالت پیش‌فرض، ادامه دادن در سکوت در صورت امکان است\N'46' .TP 4 \fB\N'45'\N'45'switch\fR=\fISWITCH\fR استفاده از \fISWITCH\fR به عنوان سوئیچ کامپایلر فعلی\N'46' این معادل با تنظیم \fB$OPAMSWITCH\fR بر روی \fISWITCH\fR است\N'46' .TP 4 \fB\N'45'\N'45'use\N'45'internal\N'45'solver\fR غیرفعال کردن هرگونه حل‌کننده خارجی و استفاده از حل‌کننده داخلی (این امر مستلزم آن است که opam با یک حل‌کننده داخلی کامپایل شده باشد)\N'46' این معادل با تنظیم \fB$OPAMNOASPCUD\fR یا \fB$OPAMUSEINTERNALSOLVER\fR است\N'46' .TP 4 \fB\N'45'v\fR, \fB\N'45'\N'45'verbose\fR پرحرفی بیشتر و نمایش جزئیات\N'46' یک بار درج \fB\N'45'v\fR تمام دستورهای بسته را نشان می‌دهد، تکرار آن دستورهای فراخوانی‌شده به صورت داخلی (مانند \fItar\fR، \fIcurl\fR، \fIpatch\fR و غیره) را نیز نمایش می‌دهد\N'46' تکرار به تعداد \fIn\fR بار معادل با تنظیم \fB$OPAMVERBOSE\fR بر روی "\fIn\fR" است\N'46' .TP 4 \fB\N'45'\N'45'version\fR نمایش اطلاعات نسخه\N'46' .TP 4 \fB\N'45'w\fR, \fB\N'45'\N'45'working\N'45'dir\fR هنگام به‌روزرسانی بسته‌های متصل به یک دایرکتوری محلی تحت سامانه کنترل نسخه، به‌روزرسانی به وضعیت کاری فعلی منبع آن‌ها به جای آخرین وضعیت ثبت‌شده (commit) یا ارجاعی که به آن اشاره دارند انجام می‌شود\N'46' از آنجا که دایرکتوری منبع همان‌طور که هست کپی می‌شود، اگر تمیز نباشد ممکن است منجر به شکست ساخت در opam شود\N'46' این مورد تنها روی بسته‌هایی اثر می‌گذارد که به طور صریح در خط فرمان ذکر شده‌اند\N'46' همچنین می‌تواند با \fB$OPAMWORKINGDIR\fR تنظیم شود\N'46' .TP 4 \fB\N'45'y\fR, \fB\N'45'\N'45'yes\fR پاسخ «بله» (yes) به تمام پرسش‌های بله/خیر opam بدون اعلان و درخواست\N'46' همچنین ببینید: \fB\N'45'\N'45'confirm\N'45'level\fR\N'46' این معادل با تنظیم \fB$OPAMYES\fR بر روی "true" است\N'46' .SH "محیط (ENVIRONMENT)" .P دستور opam از متغیرهای محیطی ذکرشده در اینجا استفاده می‌کند\N'46' متغیرهای بولی برای غیرفعال‌سازی باید روی "0"، "no"، "false" یا رشته خالی، و برای فعال‌سازی روی "1"، "yes" یا "true" تنظیم شوند\N'46' .P \fIOPAMALLPARENS\fR تمام فیلترها را درون پرانتز قرار می‌دهد\N'46' .P \fIOPAMASSUMEDEPEXTS\fR گزینه `\N'45'\N'45'assume\N'45'depexts\N'39' را ببینید\N'46' .P \fIOPAMAUTOANSWER\fR فقط برای استفاده داخلی\N'46' .P \fIOPAMAUTOREMOVE\fR گزینه حذف `\N'45'\N'45'auto\N'45'remove\N'39' را ببینید\N'46' .P \fIOPAMBESTEFFORT\fR گزینه `\N'45'\N'45'best\N'45'effort\N'39' را ببینید\N'46' .P \fIOPAMBESTEFFORTPREFIXCRITERIA\fR رشته‌ای را تنظیم می‌کند که هنگام فعال بودن گزینه `\N'45'\N'45'best\N'45'effort\N'39' باید به معیارها پیشوند شود و انتظار می‌رود ویژگی `opam\N'45'query\N'39' را در پاسخ به حداکثر برساند\N'46' .P \fIOPAMBUILDDOC\fR در \fB2\N'46'1\fR حذف شد\N'46' .P \fIOPAMBUILDTEST\fR در \fB2\N'46'1\fR حذف شد\N'46' .P \fIOPAMCLI\fR گزینه `\N'45'\N'45'cli\N'39' را ببینید\N'46' .P \fIOPAMCOLOR\fR هنگامی که روی \fIalways\fR یا \fInever\fR تنظیم شود، یک مقدار پیش‌فرض برای گزینه `\N'45'\N'45'color\N'39' تعیین می‌کند\N'46' .P \fIOPAMCONFIRMLEVEL\fR گزینه `\N'45'\N'45'confirm\N'45'level` را ببینید\N'46' مقدار \fBOPAMCONFIRMLEVEL\fR بر \fBOPAMYES\fR و \fBOPAMNO\fR اولویت دارد\N'46' .P \fIOPAMCRITERIA\fR ترجیحات (\fIpreferences\fR) کاربر را برای حل وابستگی مشخص می‌کند\N'46' مقدار پیش‌فرض به نسخه حل‌کننده بستگی دارد؛ برای آگاهی از تنظیمات فعلی از `config report\N'39' استفاده کنید\N'46' همچنین گزینه \N'45'\N'45'criteria را ببینید\N'46' .P \fIOPAMCUDFFILE\fR گراف CUDF را در \fIfile\fR\N'45'actions\N'45'explicit\N'46'dot ذخیره می‌کند\N'46' .P \fIOPAMCUDFTRIM\fR فیلتر کردن بسته‌های غیرمرتبط در طول پیش‌پردازش CUDF را کنترل می‌کند\N'46' .P \fIOPAMCURL\fR می‌تواند برای انتخاب یک برنامه مشخص \N'39'curl\N'39' استفاده شود\N'46' برای گزینه‌های بیشتر \fIOPAMFETCH\fR را ببینید\N'46' .P \fIOPAMDEBUG\fR گزینه‌های `\N'45'\N'45'debug\N'39' و `\N'45'\N'45'debug\N'45'level\N'39' را ببینید\N'46' .P \fIOPAMDEBUGSECTIONS\fR در صورت تنظیم، پیام‌های اشکال‌زدایی را به فهرستی از بخش‌ها که با فاصله از هم جدا شده‌اند محدود می‌کند\N'46' بخش‌ها می‌توانند به صورت اختیاری دارای سطح اشکال‌زدایی خاصی باشند (برای مثال \fBCLIENT:2\fR یا \fBCLIENT CUDF:2\fR)، اما در غیر این صورت از `\N'45'\N'45'debug\N'45'level\N'39' استفاده می‌شود\N'46'` .P \fIOPAMDIGDEPTH\fR میزان تهاجمی بودن جستجو برای تعارضات در طول پیش‌پردازش CUDF را مشخص می‌کند\N'46' .P \fIOPAMDOWNLOADJOBS\fR حداکثر تعداد دانلودهای هم‌زمان را تنظیم می‌کند\N'46' .P \fIOPAMDROPWORKINGDIR\fR هنگام به‌روزرسانی، بسته‌هایی را که پیش‌تر با \fB\N'45'\N'45'working\N'45'dir\fR به‌روزرسانی شده‌اند بازنویسی می‌کند\N'46' بدون تنظیم این متغیر، opam آن‌ها را بدون تغییر نگه می‌دارد مگر اینکه صریحاً در خط فرمان نام برده شوند\N'46' .P \fIOPAMDRYRUN\fR گزینه `\N'45'\N'45'dry\N'45'run\N'39' را ببینید\N'46' .P \fIOPAMEDITOR\fR ویرایشگر مورد استفاده برای ویرایش فایل opam را مشخص می‌کند؛ مقادیر \fI$EDITOR\fR و \fI$VISUAL\fR را بازنویسی می‌کند\N'46' .P \fIOPAMERRLOGLEN\fR تعداد خطوط گزارش چاپ‌شده هنگام شکست یک زیرفرایند را تنظیم می‌کند\N'46' مقدار 0 برای چاپ تمام خطوط است\N'46' .P \fIOPAMEXTERNALSOLVER\fR گزینه `\N'45'\N'45'solver\N'39' را ببینید\N'46' .P \fIOPAMFAKE\fR گزینه `\N'45'\N'45'fake\N'39' را ببینید\N'46' .P \fIOPAMFETCH\fR نحوه دانلود فایل‌ها را مشخص می‌کند: یکی از مقادیر `wget\N'39' یا `curl\N'39' یا یک دستور سفارشی که در آن متغیرهای \fB%{url}%\fR، \fB%{out}%\fR، \fB%{retry}%\fR، \fB%{compress}%\fR و \fB%{checksum}%\fR جایگزین خواهند شد\N'46' مقدار \N'39'download\N'45'command\N'39' از فایل پیکربندی اصلی را بازنویسی می‌کند\N'46' .P \fIOPAMFIXUPCRITERIA\fR مشابه \fIOPAMUPGRADECRITERIA\fR، اما مخصوص اصلاح (fixup) و نصب مجدد\N'46' .P \fIOPAMIGNORECONSTRAINTS\fR گزینه نصب `\N'45'\N'45'ignore\N'45'constraints\N'45'on\N'39' را ببینید\N'46' .P \fIOPAMIGNOREPINDEPENDS\fR گزینه `\N'45'\N'45'ignore\N'45'pin\N'45'depends\N'39' را ببینید\N'46' .P \fIOPAMINPLACEBUILD\fR گزینه `\N'45'\N'45'inplace\N'45'build\N'39' را ببینید\N'46' .P \fIOPAMJOBS\fR حداکثر تعداد پردازش‌های موازی در حال اجرا را تعیین می‌کند\N'46' .P \fIOPAMJSON\fR ثبت خروجی JSON در فایل مشخص‌شده (از نویسه `%\N'39' برای شماره‌گذاری فایل‌ها استفاده کنید)\N'46' .P \fIOPAMKEEPBUILDDIR\fR گزینه نصب `\N'45'\N'45'keep\N'45'build\N'45'dir\N'39' را ببینید\N'46' .P \fIOPAMKEEPLOGS\fR به opam می‌گوید که برخی از گزارش‌های موقت دستورات و برخی نسخه‌های پشتیبان را حذف نکند\N'46' این کار برخی از مراحل پاک‌سازی نهایی را نادیده می‌گیرد و همچنین ممکن است به دریافت ردیابی‌های پشته (backtraces) قابل‌اعتمادتر کمک کند\N'46' .P \fIOPAMLOCKED\fR ترکیبی از گزینه‌های `\N'45'\N'45'locked\N'39' و `\N'45'\N'45'lock\N'45'suffix\N'39'\N'46' .P \fIOPAMLOGS\fR \fIlogdir\fR دایرکتوری گزارش‌ها را مشخص می‌کند؛ پیش‌فرض یک دایرکتوری موقت در /tmp است .P \fIOPAMMAKECMD\fR دستور make سیستمی مورد استفاده را مشخص می‌کند\N'46' .P \fIOPAMMERGEOUT\fR ادغام خروجی‌های فرایند، یعنی stderr بر روی stdout\N'46' .P \fIOPAMNO\fR پاسخ «خیر» به هر سؤالی که پرسیده شود؛ گزینه‌های `\N'45'\N'45'no` و `\N'45'\N'45'confirm\N'45'level` را ببینید\N'46' در صورت تنظیم بودن هر یک از \fBOPAMCONFIRMLEVEL\fR یا \fBOPAMYES\fR، مقدار \fBOPAMNO\fR نادیده گرفته می‌شود\N'46' .P \fIOPAMNOAGGREGATE\fR همراه با `opam admin check\N'39' بسته‌ها را تجمیع نمی‌کند\N'46' .P \fIOPAMNOASPCUD\fR منسوخ شده است\N'46' .P \fIOPAMNOAUTOUPGRADE\fR ارتقای داخلی خودکار مخازن با قالب قبلی به قالب فعلی را هنگام \N'39'update\N'39' یا \N'39'init\N'39' غیرفعال می‌کند\N'46' .P \fIOPAMNOCHECKSUMS\fR در صورت موجود بودن، گزینه \N'45'\N'45'no\N'45'checksums را فعال می‌کند\N'46' .P \fIOPAMNODEPEXTS\fR مدیریت وابستگی‌های سیستم را غیرفعال می‌کند؛ گزینه `\N'45'\N'45'no\N'45'depexts\N'39' را ببینید\N'46' .P \fIOPAMNOENVNOTICE\fR داخلی\N'46' .P \fIOPAMNOSELFUPGRADE\fR گزینه `\N'45'\N'45'no\N'45'self\N'45'upgrade\N'39' را ببینید .P \fIOPAMPINKINDAUTO\fR تعیین می‌کند که آیا سیستم‌های کنترل نسخه هنگام سنجاق کردن به یک مسیر محلی شناسایی شوند یا خیر\N'46' به طور پیش‌فرض از نسخه 1\N'46'3\N'46'0 فعال است\N'46' .P \fIOPAMPRECISETRACKING\fR ردیابی دقیق و ریزدانه‌ای دایرکتوری‌ها\N'46' .P \fIOPAMPREPRO\fR این مقدار را برای غیرفعال کردن پیش‌پردازش CUDF روی false قرار دهید\N'46' کارایی کمتری دارد، اما ممکن است به اشکال‌زدایی مشکلات حل‌کننده کمک کند\N'46' .P \fIOPAMREPOSITORYTARRING\fR ذخیره مخازن در داخل به صورت فایل‌های tar\N'46'gz\N'46' این حالت روی سامانه‌های فایلی که با پویش درخت‌های بزرگ فایل سازگاری خوبی ندارند اما حافظه موقت (caching) مناسبی در /tmp دارند بسیار سریع‌تر است\N'46' با این حال، در حالت کلی کندتر است\N'46' .P \fIOPAMREQUIRECHECKSUMS\fR گزینه `\N'45'\N'45'require\N'45'checksums\N'39' را در صورت در دسترس بودن فعال می‌کند (برای مثال برای `opam install\N'39')\N'46' .P \fIOPAMRETRIES\fR تعداد تلاش‌ها قبل از اعلام شکست دانلودها را تعیین می‌کند\N'46' .P \fIOPAMREUSEBUILDDIR\fR گزینه `\N'45'\N'45'reuse\N'45'build\N'45'dir\N'39' را ببینید\N'46' .P \fIOPAMROOT\fR گزینه `\N'45'\N'45'root\N'39' را ببینید\N'46' این متغیر به طور خودکار توسط `opam env \N'45'\N'45'root=DIR \N'45'\N'45'set\N'45'root\N'39' تنظیم می‌شود\N'46' .P \fIOPAMROOTISOK\fR عدم نمایش اخطار هنگام اجرا به عنوان کاربر ریشه (root)\N'46' .P \fIOPAMSAFE\fR گزینه `\N'45'\N'45'safe\N'39' را ببینید\N'46' .P \fIOPAMSHOW\fR گزینه `\N'45'\N'45'show\N'39' را ببینید\N'46' .P \fIOPAMSKIPUPDATE\fR گزینه `\N'45'\N'45'skip\N'45'updates\N'39' را ببینید\N'46' .P \fIOPAMSKIPVERSIONCHECKS\fR نادیده گرفتن برخی بررسی‌های نسخه\N'46' ناامن است و صرفاً برای آزمایش سازگاری کاربرد دارد\N'46' .P \fIOPAMSOLVERALLOWSUBOPTIMAL\fR (پیش‌فرض `true\N'39') به برخی از حل‌کننده‌ها اجازه می‌دهد تا هنگام رسیدن به پایان زمان مجاز (timeout) همچنان یک پاسخ بازگردانند؛ در حالی که از سازگاری پاسخ اطمینان حاصل می‌شود، در این حالت هیچ تضمینی وجود ندارد که پاسخ با معیارهای بهینه‌سازی مورد انتظار مطابقت داشته باشد\N'46' اگر `true\N'39' باشد، opam با یک هشدار ادامه می‌دهد؛ اگر `false\N'39' باشد، اتمام زمان مجاز یک خطا تلقی می‌شود\N'46' در حال حاضر فقط backend پیش‌ساخته builtin\N'45'z3 این حالت تنزل‌یافته را مدیریت می‌کند\N'46' .P \fIOPAMSOLVERTIMEOUT\fR تغییر زمان مجاز حل‌کننده\N'46' پیش‌فرض 60\N'46'0 است؛ برای حالت نامحدود روی 0 تنظیم کنید\N'46' توجه داشته باشید که ممکن است همه حل‌کننده‌ها از این گزینه پشتیبانی نکنند\N'46' .P \fIOPAMSOLVERTOLERANCE\fR میزان تحمل در برابر انتخاب یک پاسخ غیربهینه توسط حل‌کننده را تغییر می‌دهد (یعنی ممکن است بسته‌های قدیمی‌تر را دریافت کند)\N'46' مقادیر معمول بین 0\N'46'0 (بهترین پاسخ شناخته‌شده توسط حل‌کننده) تا 1\N'46'0 (پاسخ غیربهینه) متغیر است\N'46' پیش‌فرض 0\N'46'0 است\N'46' این گزینه در صورتی مفید است که حل‌کننده نتواند در زمان معقول به پاسخی برسد (به \fB$OPAMSOLVERTIMEOUT\fR مراجعه کنید)\N'46' توجه داشته باشید که ممکن است همه حل‌کننده‌ها از این گزینه پشتیبانی نکنند\N'46' .P \fIOPAMSTATS\fR در \fB2\N'46'4\fR حذف شد\N'46' .P \fIOPAMSTATUSLINE\fR نمایش یک خط وضعیت پویا که نشان می‌دهد در حال حاضر روی ترمینال چه می‌گذرد\N'46' (یکی از مقادیر \fBalways\fR، \fBnever\fR یا \fBauto\fR) .P \fIOPAMSTRICT\fR توقف با شکست در صورت وجود هرگونه ناسازگاری (خواندن فایل، درون‌ریزی سوئیچ و غیره)\N'46' .P \fIOPAMSWITCH\fR گزینه `\N'45'\N'45'switch\N'39' را ببینید\N'46' به طور خودکار توسط `opam env \N'45'\N'45'switch=SWITCH \N'45'\N'45'set\N'45'switch\N'39' تنظیم می‌شود\N'46' .P \fIOPAMUNLOCKBASE\fR گزینه نصب `\N'45'\N'45'unlock\N'45'base\N'39' را ببینید\N'46' .P \fIOPAMUPGRADECRITERIA\fR ترجیحات (\fIpreferences\fR) کاربر را برای حل وابستگی هنگام انجام ارتقا مشخص می‌کند\N'46' در صورت تنظیم بودن هر دو، در ارتقاها بر \fIOPAMCRITERIA\fR تقدم دارد\N'46' همچنین گزینه \N'45'\N'45'criteria را ببینید\N'46' .P \fIOPAMUSEINTERNALSOLVER\fR گزینه `\N'45'\N'45'use\N'45'internal\N'45'solver\N'39' را ببینید\N'46' .P \fIOPAMUSEOPENSSL\fR در \fB2\N'46'2\fR حذف شد\N'46' .P \fIOPAMUTF8\fR استفاده از نویسه‌های UTF8 در خروجی (یکی از مقادیر \fBalways\fR، \fBnever\fR یا \fBauto\fR)\N'46' پیش‌فرض `auto\N'39' است که از روی locale مشخص می‌شود\N'46' .P \fIOPAMUTF8MSGS\fR استفاده از نویسه‌های گسترش‌یافته UTF8 (شترها) در پیام‌های opam\N'46' مستلزم فعال بودن \fIOPAMUTF8\fR است\N'46' این متغیر به طور پیش‌فرض فقط در macOS فعال است\N'46' .P \fIOPAMVALIDATIONHOOK\fR در صورت تنظیم، از دستور `%{hook%}\N'39' برای اعتبارسنجی به‌روزرسانی مخزن opam استفاده می‌کند\N'46' .P \fIOPAMVERBOSE\fR گزینه `\N'45'\N'45'verbose\N'39' را ببینید\N'46' .P \fIOPAMVERBOSEON\fR گزینه \N'45'\N'45'verbose\N'45'on را ببینید .P \fIOPAMVERSIONLAGPOWER\fR استفاده نکنید\N'46' .P \fIOPAMWITHDEVSETUP\fR گزینه نصب `\N'45'\N'45'with\N'45'dev\N'45'setup\N'39' را ببینید\N'46' .P \fIOPAMWITHDOC\fR گزینه نصب `\N'45'\N'45'with\N'45'doc\N'39' را ببینید\N'46' .P \fIOPAMWITHTEST\fR گزینه نصب `\N'45'\N'45'with\N'45'test\N'46' را ببینید .P \fIOPAMWORKINGDIR\fR گزینه `\N'45'\N'45'working\N'45'dir\N'39' را ببینید\N'46' .P \fIOPAMYES\fR گزینه‌های `\N'45'\N'45'yes\N'39' و `\N'45'\N'45'confirm\N'45'level` را ببینید\N'46' متغیر \fBOPAMYES\fR بر \fBOPAMNO\fR اولویت دارد و در صورت تنظیم بودن \fBOPAMCONFIRMLEVEL\fR نادیده گرفته می‌شود\N'46' .P \fIOPAMVAR_var\fR محتویات متغیر \fIvar\fR را هنگام جایگزینی رشته‌های `%{var}%` در فایل‌های `opam` بازنویسی می‌کند\N'46' .P \fIOPAMVAR_package_var\fR محتویات متغیر \fIpackage:var\fR را هنگام جایگزینی رشته‌های `%{package:var}%` در فایل‌های `opam` بازنویسی می‌کند\N'46'.SH "نسخه خط فرمان (CLI VERSION)" .P همه اسکریپت‌ها و فراخوانی‌های برنامه‌نویسی‌شده opam باید از `\N'45'\N'45'cli\N'39' استفاده کنند تا از کارکرد یکپارچه آن‌ها با نسخه‌های آینده کلاینت opam اطمینان حاصل شود\N'46' علاوه‌براین، پست‌های وبلاگ یا سایر مستندات نیز می‌توانند از آن بهره‌مند شوند، زیرا از قدیمی و نامعتبر شدن اطلاعات جلوگیری می‌کند\N'46' .P اگرچه opam فقط از ریشه‌های (\fI~/\N'46'opam/\fR) برای نسخه فعلی پشتیبانی می‌کند، اما سازگاری با نسخه‌های پیشین را برای رابط خط فرمان خود فراهم می‌آورد\N'46' .P از آنجا که پشتیبانی از نسخه CLI تنها در opam 2\N'46'1 اضافه شد، برای انتخاب پشتیبانی از 2\N'46'0 از \fIOPAMCLI\fR استفاده کنید (چرا که opam 2\N'46'0 صرفاً آن را نادیده می‌گیرد)، و برای نسخه‌های 2\N'46'1 (یا جدیدتر) از `\N'45'\N'45'cli=2\N'46'1\N'39' استفاده نمایید، زیرا متغیر محیطی کنترل‌کننده تجزیه نحو شکننده و آسیب‌پذیر است\N'46' بدین منظور، opam در صورتی که \fIOPAMCLI\fR نسخه‌ای معتبر غیر از 2\N'46'0 را مشخص کرده باشد، و همچنین در صورت مشخص شدن `\N'45'\N'45'cli=2\N'46'0\N'39'، هشداری نمایش می‌دهد\N'46' .P نسخه خط فرمان با استفاده از گزینه `\N'45'\N'45'cli\N'39' یا متغیر محیطی \fIOPAMCLI\fR انتخاب می‌شود\N'46' گزینه `\N'45'\N'45'cli\N'39' ممکن است بیش از یک بار مشخص شود که در این حالت آخرین مورد اولویت دارد\N'46' متغیر \fIOPAMCLI\fR تنها در صورتی بررسی می‌شود که `\N'45'\N'45'cli\N'39' داده نشده باشد\N'46' .SH "وضعیت خروج (EXIT STATUS)" .P به‌عنوان استثنایی بر موارد زیر، دستور `exec\N'39' در صورتی که دستور پیدا نشود یا قابل اجرا نباشد مقدار 127، و در غیر این صورت مقدار خروج همان دستور را بازمی‌گرداند\N'46' .TP 4 0 موفقیت، یا درست (true) برای پرس‌وجوهای بولی\N'46' .TP 4 1 نادرست (False)\N'46' هنگامی که یک مقدار بازگشتی بولی انتظار می‌رود، برای مثال هنگام اجرا با \fB\N'45'\N'45'check\fR، یا برای پرس‌وجوهایی مانند \fBopam lint\fR بازگردانده می‌شود\N'46' .TP 4 2 آرگومان‌های نامعتبر خط فرمان، یا آرگومان‌های خط فرمان که به یک زمینه (context) نامعتبر اشاره دارند (به عنوان مثال فایلی که از قالب مورد انتظار پیروی نمی‌کند)\N'46' .TP 4 5 یافت نشد\N'46' شما چیزی (بسته، نسخه، مخزن و غیره) درخواست کرده‌اید که پیدا نشد\N'46' .TP 4 10 لغو شد\N'46' عملیات نیاز به تأیید داشت که داده نشد\N'46' .TP 4 15 امکان دریافت قفل‌های مورد نیاز برای عملیات وجود نداشت\N'46' .TP 4 20 هیچ راه‌حلی برای درخواست کاربر وجود ندارد\N'46' این حالت می‌تواند به عنوان مثال به دلیل درخواست نصب دو بسته ناسازگار رخ دهد\N'46' .TP 4 30 خطا در تعریف بسته، یا سایر فایل‌های متاداده\N'46' استفاده از \fB\N'45'\N'45'strict\fR این خطا را با احتمال بیشتری ایجاد می‌کند\N'46' .TP 4 31 خطای اسکریپت بسته\N'46' برخی از عملیات‌های بسته ناموفق بودند\N'46' این ممکن است ناشی از خطایی در بسته‌ها یا ناسازگاری با سیستم شما باشد\N'46' این خطا می‌تواند یک خطای جزئی باشد\N'46' .TP 4 40 خطای همگام‌سازی\N'46' دریافت برخی از ریموت‌ها از شبکه امکان‌پذیر نبود\N'46' این خطا می‌تواند یک خطای جزئی باشد\N'46' .TP 4 50 خطای پیکربندی\N'46' پیکربندی سیستم یا opam اجازه اجرای عملیات را نمی‌دهد و نیاز به اصلاح دارد\N'46' .TP 4 60 شکست حل‌کننده (solver)\N'46' حل‌کننده موفق به بازگرداندن پاسخی معتبر نشد\N'46' این می‌تواند به دلیل خرابی حل‌کننده خارجی یا خطایی در پیکربندی حل‌کننده باشد\N'46' .TP 4 99 خطای داخلی\N'46' مشکلی پیش آمد که احتمالاً ناشی از یک باگ در خود opam است\N'46' .TP 4 130 وقفه توسط کاربر\N'46' سیگنال SIGINT دریافت شد، که معمولاً به دلیل فشردن کلیدهای Ctrl\N'45'C توسط کاربر است\N'46' .TP 4 0 در صورت موفقیت\N'46' .TP 4 123 در صورت بروز خطاهای نامشخص گزارش‌شده روی خروجی خطای استاندارد\N'46' .TP 4 124 در صورت بروز خطاهای تجزیه خط فرمان\N'46' .TP 4 125 در صورت بروز خطاهای داخلی غیرمنتظره (باگ‌ها)\N'46' .SH "مستندات بیشتر (FURTHER DOCUMENTATION)" .P به https://opam\N'46'ocaml\N'46'org/doc مراجعه کنید\N'46' .SH "نویسندگان (AUTHORS)" .P David Allsopp .sp -1 .P Vincent Bernardoff .sp -1 .P Raja Boujbel .sp -1 .P Kate Deplaix .sp -1 .P Roberto Di Cosmo .sp -1 .P Thomas Gazagnaire .sp -1 .P Louis Gesbert .sp -1 .P Fabrice Le Fessant .sp -1 .P Anil Madhavapeddy .sp -1 .P Guillem Rieu .sp -1 .P Ralf Treinen .sp -1 .P Frederic Tuong .SH "همچنین ببینید (SEE ALSO)" .P opam(1) .SH "گزارش باگ‌ها (BUGS)" .P گزارش‌های باگ را در https://github\N'46'com/ocaml/opam/issues بررسی کنید\N'46'