مدیریت بسته با pacman
آشنایی کامل با pacman، مدیر بستهٔ رسمی Arch Linux: نصب، حذف، بهروزرسانی، جستجو و نگهداری بستهها.
pacman مدیر بستهٔ رسمی Arch Linux است؛ ابزاری سریع، سبک و قدرتمند که بستههای باینری را از مخازن رسمی نصب میکند. در این آموزش، تمام قابلیتهای pacman را از پایه تا پیشرفته مرور میکنیم.
pacman چیست؟
pacman مخفف package manager است و توسط Judd Vinet (همان بنیانگذار Arch) نوشته شده است. این ابزار ویژگیهای زیر را ارائه میدهد:
- نصب، حذف و بهروزرسانی بستهها
- مدیریت وابستگیها بهصورت خودکار
- جستجوی بستهها در مخازن
- نگهداری پایگاه دادهٔ بستههای نصبشده
- پشتیبانی از امضای دیجیتال
مخازن رسمی Arch
pacman از چندین مخزن رسمی استفاده میکند:
| مخزن | توضیح | مخاطب |
|---|---|---|
| core | بستههای ضروری برای سیستم پایه | همه |
| extra | بستههای کاربردی بدون نیاز به AUR | همه |
| multilib | بستههای ۳۲ بیتی برای سیستمهای ۶۴ بیتی | گیمرها، Wine |
| testing | بستههای در حال آزمایش | آزمایشگران |
| core-testing, extra-testing | بستههای در حال آزمایش برای core/extra | آزمایشگران |
پیکربندی مخازن در فایل /etc/pacman.conf قرار دارد.
ساختار دستور pacman
pacman با گزینههای اصلی (capital) و فرعی (lowercase) کار میکند:
pacman <operation> [options] [targets]
عملیات اصلی:
-S, --sync همگامسازی/نصب از مخزن
-R, --remove حذف بسته
-Q, --query جستجو در بستههای نصبشده
-U, --upgrade نصب بستهٔ محلی
-D, --database مدیریت پایگاه داده
-F, --files جستجو در فایلهای بستهنصب بستهها
نصب ساده
# نصب یک بسته
sudo pacman -S firefox
# نصب چند بسته
sudo pacman -S firefox thunderbird vlcنصب گروه بسته
بعضی بستهها در گروه قرار دارند (مثلاً base-devel, gnome):
# نصب گروه کامل
sudo pacman -S gnome
# انتخاب تعاملی بستههای گروه
sudo pacman -S base-develنصب فقط اگر نصب نشده
# جلوگیری از نصب مجدد بستههای نصبشده
sudo pacman -S --needed base-develبهروزرسانی سیستم
بهروزرسانی کامل
# همگامسازی مخازن + ارتقای همهٔ بستهها
sudo pacman -Syuهرگز -Sy و -S را با هم قاطی نکنید
دستور pacman -Sy package (بدون u) میتواند وابستگیها را بشکند، چون مخزن را بهروز میکند اما بستههای دیگر را ارتقا نمیدهد. همیشه از -Syu استفاده کنید.
بهروزرسانی فقط یک بسته
# نصب/ارتقای یک بسته بههمراه بهروزرسانی مخزن
sudo pacman -Sy firefoxبررسی بستههای قابل بهروزرسانی
# بدون اجرای بهروزرسانی، فقط نمایش
checkupdatesجستجوی بستهها
جستجو در مخازن
# جستجو با نام یا توضیح
pacman -Ss editor
# جستجو با regex
pacman -Ss "^vim"
# جستجو در یک مخزن خاص
pacman -Ss "^gnome" --repo extraنمایش اطلاعات بسته
# اطلاعات بسته در مخزن
pacman -Si firefox
# اطلاعات بستهٔ نصبشده
pacman -Qi firefox
# فایلهای یک بسته
pacman -Ql firefox
# فایلهای یک بسته در مخزن
pacman -Fl firefoxیافتن بسته صاحب یک فایل
# بستهای که فایل نصبشده را دارد
pacman -Qo /usr/bin/firefox
# بستهای که فایل در مخزن دارد (نیازی به نصب بودن ندارد)
pacman -Fo /usr/bin/firefoxحذف بستهها
حذف ساده
sudo pacman -R firefoxحذف بههمراه وابستگیهای بدون استفاده
# حذف بسته + وابستگیهای بدون نیاز
sudo pacman -Rs firefoxحذف بههمراه فایلهای پیکربندی
# حذف بسته + وابستگیها + فایلهای پیکربندی
sudo pacman -Rns firefoxهمیشه -Rns استفاده کنید
pacman -Rns کاملترین حالت حذف است: بسته، وابستگیهای بدون استفاده، و فایلهای پیکربندی کاربر را پاک میکند. این کار از انباشت بستههای بیمصرف جلوگیری میکند.
جستجو در بستههای نصبشده
# فهرست همهٔ بستههای نصبشده
pacman -Q
# فقط بستههای نصبشده بهصورت دستی (نه بهعنوان وابستگی)
pacman -Qe
# بستههای یتیم (نصبشده بهعنوان وابستگی، اما دیگر لازم نیستند)
pacman -Qdt
# جستجو در بستههای نصبشده
pacman -Qs firefoxپاکسازی کش
pacman تمام بستههای دانلودشده را در /var/cache/pacman/pkg/ نگه میدارد. این کار به شما اجازه میدهد به نسخههای قبلی برگردید، اما دیسک را پر میکند.
# پاکسازی همهٔ بستهها بهجز ۳ نسخهٔ اخیر
sudo paccache -r
# نگهداشتن فقط نسخهٔ نصبشده
sudo paccache -ruk0
# پاکسازی کامل کش
sudo pacman -Sccهرگز کش را کاملاً پاک نکنید
پاک کردن کامل کش با pacman -Scc توصیه نمیشود، چون در صورت خرابی بهروزرسانی، نمیتوانید به نسخهٔ قبلی برگردید. از paccache -r استفاده کنید تا چند نسخهٔ اخیر نگه داشته شود.
اطلاعات پایگاه داده
# بررسی یکپارچگی پایگاه داده
sudo pacman -Dk
# بررسی همهٔ بستهها
sudo pacman -Qk
# علامتگذاری بسته بهعنوان نصبشده بهصورت دستی
sudo pacman -D --asexplicit firefox
# علامتگذاری بهعنوان وابستگی
sudo pacman -D --asdeps firefoxبستههای یتیم
بستههای یتیم بستههایی هستند که بهعنوان وابستگی نصب شدهاند اما بستهٔ وابسته دیگر وجود ندارد:
# فهرست بستههای یتیم
pacman -Qdt
# حذف همهٔ بستههای یتیم
sudo pacman -Rns $(pacman -Qdtq)نگهداری منظم
هر چند وقت یکبار دستور حذف بستههای یتیم را اجرا کنید تا سیستم خود را تمیز نگه دارید. همچنین میتوانید اسکریپتی در crontab قرار دهید تا این کار بهطور خودکار انجام شود.
پیکربندی pacman
فایل اصلی پیکربندی /etc/pacman.conf است:
[options]
HoldPkg = pacman glibc
Architecture = auto
CheckSpace
Color
VerbosePkgLists
ParallelDownloads = 5
[core]
Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
[multilib]
Include = /etc/pacman.d/mirrorlistفعالسازی multilib
اگر بستههای ۳۲ بیتی (مثلاً برای Steam یا Wine) نیاز دارید، خطوط [multilib] را از حالت کامنت خارج کنید:
sudo nano /etc/pacman.conf[multilib]
Include = /etc/pacman.d/mirrorlistسپس مخازن را بهروز کنید:
sudo pacman -Syuفعالسازی رنگ و خروجی زیبا
Color
VerbosePkgLists
ParallelDownloads = 5آینههای (Mirrors) سریع
سرعت دانلود به آینهٔ انتخابشده بستگی دارد. از ابزار reflector برای یافتن سریعترین آینهها استفاده کنید:
# نصب
sudo pacman -S reflector
# انتخاب ۲۰ آینهٔ سریع ایران و اروپا
sudo reflector \
--latest 50 \
--protocol https \
--sort rate \
--save /etc/pacman.d/mirrorlistبهروزرسانی خودکار آینهها
میتوانید سرویس reflector.timer را فعال کنید تا هفتگی آینهها را بهروز کند:
sudo systemctl enable --now reflector.timerمدیریت کلیدهای امضا
pacman بستهها را با کلیدهای GPG تأیید میکند. اگر خطای کلید میگیرید:
# راهاندازی مجدد کلیدها
sudo pacman-key --init
sudo pacman-key --populate archlinux
# بهروزرسانی کلیدها
sudo pacman -Sy archlinux-keyringمعادلهای pacman در توزیعهای دیگر
| کارکرد | pacman | apt (Debian) | dnf (Fedora) |
|---|---|---|---|
| نصب | pacman -S | apt install | dnf install |
| حذف | pacman -Rns | apt remove | dnf remove |
| بهروزرسانی | pacman -Syu | apt update && apt upgrade | dnf upgrade |
| جستجو | pacman -Ss | apt search | dnf search |
| اطلاعات | pacman -Si | apt show | dnf info |
خلاصه
در این آموزش، pacman را بهطور کامل آموختید:
- نصب، حذف و بهروزرسانی بستهها
- جستجو در مخازن و بستههای نصبشده
- پاکسازی کش و حذف بستههای یتیم
- پیکربندی
/etc/pacman.conf - مدیریت آینهها و کلیدها
برای نرمافزارهایی که در مخازن رسمی نیستند، در آموزش بعدی با AUR و yay آشنا میشوید.
پرسشهای رایج
آیا pacman از PPA پشتیبانی میکند؟
خیر، PPA مختص Ubuntu است. در Arch معادل آن AUR است که در آموزش بعدی آن را پوشش میدهیم.
چرا pacman از apt کندتر/سریعتر است؟
pacman معمولاً سریعتر است چون پایگاه دادهٔ سبکتری دارد و بستهها را بهصورت فشرده دانلود میکند. سرعت واقعی به آینهٔ انتخابشده بستگی دارد.
اگر بهروزرسانی بستهای را بشکند چه کنم؟
اولین راه: بررسی Arch News برای وصلههای دستی. دوم: برگرداندن به نسخهٔ قبلی از کش:
sudo pacman -U /var/cache/pacman/pkg/package-1.2.3-1-x86_64.pkg.tar.zstاین صفحه در تاریخ ۹ تیر ۱۴۰۵ بهروزرسانی شده است.