برای تشخیص نصب بودن یک بسته در لینوکس، پایگاه داده مدیر بسته همان توزیع را بررسی کنید. وجود یک فایل در PATH یا فعالبودن یک سرویس، پاسخ سؤال دیگری است. مثالهای این راهنما فقط وضعیت را میخوانند؛ عبارتهای PACKAGE و COMMAND را با نام واقعی بسته و فرمان جایگزین کنید و علامتهای < و > را تایپ نکنید.
اوبونتو و دبیان: dpkg-query
dpkg-query -W -f='${binary:Package} ${Status} ${Version}
' PACKAGE
اگر وضعیت شامل install ok installed باشد، بسته نصب شده است. باقیماندن فقط فایل تنظیمات با نصب کامل فرق دارد. برای نمونه میتوانید بهجای PACKAGE از curl استفاده کنید. apt policy PACKAGE نیز نسخه Installed و Candidate را نشان میدهد؛ Candidate نسخه قابل نصب است، نه اثبات نصب فعلی.
خانواده RPM: Fedora، RHEL، AlmaLinux و Rocky
rpm -q PACKAGE
dnf list --installed PACKAGE
دستور rpm برای جستوجوی نام دقیق بسته مناسب است. خروجی «not installed» یعنی بسته با آن نام در پایگاه داده RPM نیست. بسته ممکن است نام متفاوت، پسوند معماری یا چند مؤلفه داشته باشد؛ با جستوجوی مدیر بسته نام را تأیید کنید. برای پرسش خواندنی نیازی به sudo نیست.
Arch و openSUSE
# Arch Linux
pacman -Q PACKAGE
# openSUSE / SUSE
zypper search --installed-only --match-exact PACKAGE
مدیر بسته متناسب با توزیع را به کار ببرید. نصب APT روی یک توزیع RPM، پایگاه داده بستههای اصلی آن را به APT تبدیل نمیکند. برای دیدن نسخه سیستم، محتوای /etc/os-release را بررسی کنید.
فایل اجرایی و سرویس را جدا بررسی کنید
command -v COMMAND
systemctl status SERVICE --no-pager
فرمان اول میگوید shell چه فایلی را اجرا میکند؛ ممکن است فایل از نصب دستی، محیط مجازی یا مسیر شخصی آمده باشد. فرمان دوم فقط در سیستمهای مبتنی بر systemd و برای نام سرویس درست کاربرد دارد. نصب یک بسته به معنی فعال یا enable بودن سرویس نیست. بعضی برنامهها اصلاً سرویس ندارند.
برای فهمیدن اینکه یک فایل به کدام بسته تعلق دارد، در دبیان از dpkg-query -S /path/to/file و در RPM از rpm -qf /path/to/file استفاده کنید. نتیجه منفی ممکن است به نصب خارج از مدیر بسته اشاره کند؛ فایل را بدون شناخت کاربردش حذف نکنید.
Flatpak، Snap و کانتینرها
برنامههای Flatpak با flatpak list --app و بستههای Snap با snap list بررسی میشوند. ابزار باید روی سیستم نصب باشد. نصب برنامه داخل کانتینر یا محیط مجازی لزوماً در میزبان دیده نمیشود؛ بررسی را در همان محیط اجرا کنید. برای Python، خروجی pip در یک محیط مجازی را با بسته سیستمی Python یکی ندانید.
برای تهیه گزارش، نام میزبان، توزیع، محیط اجرا، نام دقیق بسته و نسخه را ثبت کنید. از جستوجوی ساده با grep بهعنوان اثبات قطعی استفاده نکنید؛ ممکن است نام مشابه یا یک بسته حذفشده با تنظیمات باقیمانده را پیدا کند.
منابع و دامنه راهنما
این راهنما بر پایه مستندات رسمی زیر بازبینی شده است. نام گزینهها و امکانات ممکن است با نسخه نرمافزار یا سطح دسترسی سرویس شما تفاوت داشته باشد.