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