.TH namcap 1 "Aug 24, 2025" "namcap 3.6.0" "User Commands" .SH "نام (NAME)" namcap \- ابزار تحلیل و بررسی بسته‌ها .SH "خلاصه دستور (SYNOPSIS)" \fBnamcap [options] [package|PKGBUILD] ... .SH "توضیحات (DESCRIPTION)" .PP دستور \fBnamcap\fP ابزاری برای \fIتحلیل بسته\fP است که اشکالات و ایرادات موجود در بسته‌های Arch Linux یا فایل‌های PKGBUILD آن‌ها را جستجو می‌کند. این ابزار می‌تواند قوانین را روی فهرست فایل‌ها، خود فایل‌ها یا تک‌تک فایل‌های PKGBUILD اعمال کند. .PP قوانین فهرستی از پیام‌ها را بازمی‌گردانند. هر پیام می‌تواند یکی از سه نوع باشد: خطا (error)، هشدار (warning) یا اطلاعاتی (information) (می‌توانید آن‌ها را به عنوان یادداشت یا توضیح در نظر بگیرید). خطاها (مشخص‌شده با 'E:') مواردی هستند که namcap کاملاً مطمئن است نادرست بوده و باید اصلاح شوند. هشدارها (مشخص‌شده با 'W:') مواردی هستند که namcap معتقد است باید تغییر کنند، اما اگر می‌دانید چه کاری انجام می‌دهید می‌توانید آن‌ها را به همان صورت رها کنید. پیام‌های اطلاعاتی (مشخص‌شده با 'I:') تنها زمانی نمایش داده می‌شوند که از آرگومان info استفاده کنید. پیام‌های اطلاعاتی نکاتی را ارائه می‌دهند که ممکن است مفید باشند اما نشان‌دهنده چیزی که نیاز به تغییر داشته باشد نیستند. .SH "گزینه‌ها (OPTIONS)" .TP \fB\-e\fR RULELIST, \fB\-\-exclude=\fRRULELIST عدم اجرای قوانین موجود در RULELIST روی بسته .TP .B "\-i, \-\-info" نمایش پیام‌های اطلاعاتی .TP .B "\-L, \-\-list" بازگرداندن فهرستی از قوانین معتبر و توضیحات آن‌ها .TP .B "\-m, \-\-machine\-readable" نمایش برچسب‌های (tags) به‌سادگی قابل‌تجزیه namcap به جای توضیحات معمولیِ خوانا برای انسان؛ به عنوان مثال استفاده از non-fhs-man-page به جای \(lqNon-FHS man page (%s) found. Use /usr/share/man instead\(rq. فهرست کاملی از برچسب‌های namcap به همراه توضیحات خوانای آن‌ها در مسیر /usr/share/namcap/tags موجود است. .TP \fB\-r\fR RULELIST, \fB\-\-rules=\fRRULELIST تنها اعمال قوانین RULELIST روی بسته .IP مقدار RULELIST فهرستی از نام‌های قوانین است که با ویرگول انگلیسی (comma) جدا شده‌اند. .TP .B "\-v, \-\-version" چاپ نسخه و خروج .SH "قوانین (RULES)" .TP .B arrays بررسی می‌کند که متغیرهای آرایه واقعاً آرایه باشند و نه رشته .TP .B badbackups بررسی می‌کند که ورودی‌های پشتیبان (backup) با / شروع نشوند .TP .B carch ارجاعات به i686 و i586 را جستجو کرده و اعلام می‌کند به جای آن‌ها از $CARCH استفاده شود .TP .B capsnames فایل PKGBUILD را بررسی می‌کند تا مطمئن شود نام بسته شامل حروف بزرگ نیست .TP .B capsnamespkg بسته را بررسی می‌کند تا مطمئن شود نام بسته شامل حروف بزرگ نیست .TP .B checksums اطمینان حاصل می‌کند که PKGBUILD شامل چِک‌سام‌های (checksums) معتبر است .TP .B depends این ماژول ldd را روی تمامی فایل‌های اجرایی اجرا می‌کند، وابستگی‌های سطح پیوند (link-level) را دریافت کرده، کوچک‌ترین زیرمجموعه از وابستگی‌ها را که وابستگی‌های سطح پیوند را پوشش می‌دهند می‌یابد و آن فهرست را با آرایه depends بسته مقایسه می‌کند. این ماژول در سه حالت پیام بازمی‌گرداند: وابستگی شناسایی شده اما گنجانده نشده است، وابستگی گنجانده شده اما از قبل برآورده شده است، و وابستگی گنجانده شده اما نیازی به آن نیست. این پیشنهادها صرفاً راهنما هستند و تمامی سازندگان بسته باید این موضوع را در نظر داشته باشند (یعنی شما باهوش‌تر از namcap هستید) برخی مواردی که namcap در آن‌ها با مشکل مواجه می‌شود dlopen() و پیوندهای مبهم هستند. کتابخانه‌هایی که از طریق dlopen() بارگذاری می‌شوند نشان داده نمی‌شوند زیرا در زمان اجرا بارگذاری می‌گردند: در مورد برنامه‌ای که پلاگین‌ها را بارگذاری می‌کند. پیوندهای مبهم مواردی هستند که تنها بخش کوچکی از بسته برای اجرا به چیزی نیاز دارد؛ معمولاً به آن بخش کوچک دسترسی پیدا نمی‌شود مگر آنکه آن مؤلفه نصب شده باشد (مثلاً یک پلاگین جاوا برای mozilla که در بسته java گنجانده شده است). .TP .B directoryname نام دایرکتوری‌ها در فهرست فایل‌های بسته را برای دایرکتوری‌های استاندارد (مانند /etc، /usr/bin، /usr/lib) بررسی می‌کند. تمام فایل‌های موجود در دایرکتوری‌های غیراستاندارد گزارش می‌شوند .TP .B elffiles در صورتی که فایل‌های ELF (دودویی) خارج از مسیرهای استاندارد (/bin، /usr/bin و غیره) پیدا شوند، خطا می‌دهد .TP .B emptydir دایرکتوری‌هایی را در بسته که شامل هیچ فایلی نیستند جستجو می‌کند .TP .B extravars بررسی می‌کند که متغیرهای اضافی با یک خط زیر (underscore) شروع شوند .TP .B fhsinfopages نصب صحیح صفحات info را بررسی می‌کند .TP .B fhsmanpages نصب صحیح صفحات راهنما (man pages) را بررسی می‌کند .TP .B fileownership بررسی می‌کند که مالکیت تمامی فایل‌ها متعلق به root:root باشد و نه کاربر یا گروه دیگری .TP .B gnomemime فایل‌های mime تولیدشده برای GNOME را بررسی می‌کند .TP .B hicoloricons بررسی می‌کند که آیا حافظه موقت (cache) آیکون hicolor هنگامی که بسته فایل‌هایی را در /usr/share/icons/hicolor نصب می‌کند، به‌روزرسانی می‌شود یا خیر .TP .B infodirectory بررسی می‌کند که بسته شامل فایل دایرکتوری info در مسیر (/usr/share/info/dir) نباشد .TP .B invalidstartdir هر PKGBUILD که به فایل‌های موجود در $startdir ارجاع دهد نادرست است .TP .B libtool در صورت وجود فایل‌های libtool (*.la) هشدار می‌دهد .TP .B license بررسی می‌کند که متغیر licenses در یک PKGBUILD مقداردهی شده باشد .TP .B licensepkg بررسی می‌کند که متغیر licenses در یک بسته مقداردهی شده باشد. برای بسته‌هایی با مجوز سفارشی (custom)، بررسی می‌کند که آیا فایل مجوز در مسیر /usr/share/licenses/$pkgname/ نصب شده است یا خیر .TP .B perllocal فایل perllocal.pod را جستجو می‌کند. فایل perllocal.pod فایلی زائد و مزاحم است که در زمان نصب اکثر ماژول‌های perl ایجاد و گنجانده می‌شود .TP .B permissions مجوزهای اولیه فایل و دایرکتوری را بررسی می‌کند. در صورت تنظیم نبودن بیت‌های قابل‌خواندن همگانی (world readable)، تنظیم بودن بیت‌های قابل‌نوشتن همگانی (world writable)، یا تنظیم نبودن بیت اجرایی همگانی (world executable) برای دایرکتوری‌ها هشدار بازمی‌گرداند .TP .B rpath در صورتی که متغیر RPATH یک فایل باینری روی چیزی غیر از /usr/lib تنظیم شده باشد، خطا می‌دهد .TP .B runpath در صورتی که متغیر RUNPATH یک فایل باینری روی چیزی غیر از /usr/lib یا /usr/lib32 تنظیم شده باشد، خطا می‌دهد .TP .B scrollkeeper بررسی می‌کند که هیچ دایرکتوری scrollkeeper وجود نداشته باشد .TP .B sfurl اگر یک PKGBUILD به جای آدرس عمومی downloads.sourceforge.net از یک آیینه (mirror) خاص در sourceforge دانلود کند، هشدار می‌دهد .TP .B symlink پیوندهای نمادین (symbolic) و سختی (hard) را که به مسیر معتبری در بسته اشاره نمی‌کنند شناسایی می‌کند .TP .B tags برای نگه‌دارندگان بسته، این ماژول بررسی می‌کند که اضافه کردن کامنت‌های Maintainer و Contributor فراموش نشده باشد .TP .B url بررسی می‌کند که متغیر url در PKGBUILD تنظیم شده باشد .TP .B urlpkg بررسی می‌کند که متغیر url در فایل بسته تنظیم شده باشد .SH "مثال‌ها (EXAMPLES)" .TP .B namcap foo.pkg.tar.gz اعمال تمامی قوانین روی foo.pkg.tar.gz .TP .B namcap -r depends,symlink foo.pkg.tar.gz اعمال قوانین depends و symlink روی foo.pkg.tar.gz .TP .B namcap PKGBUILD اعمال تمامی قوانین مبتنی بر PKGBUILD روی فایل PKGBUILD .TP .B namcap --list فهرست کردن تمامی قوانین موجود .SH "کپی‌رایت و تکثیر (COPYRIGHT)" حق نشر \(co 2003-2023 مشارکت‌کنندگان Namcap، برای جزئیات به AUTHORS مراجعه کنید. .PP این یک نرم‌افزار آزاد است؛ برای شرایط رونوشت‌برداری به سورس‌کد مراجعه کنید. هیچ تضمینی وجود ندارد؛ حتی برای قابلیت فروش یا تناسب برای یک هدف خاص. .fi