مدیریت بستهها (Package Management) یکی از مهمترین مهارتها در لینوکس است. بستهها شامل نرمافزارها، کتابخانهها و ابزارهای مختلف هستند که با استفاده از مدیر بسته میتوانید آنها را نصب، حذف، بهروزرسانی و جستجو کنید. این مقاله به صورت گامبهگام و با زبانی ساده، شما را با مفاهیم و ابزارهای مدیریت بسته در توزیعهای مختلف لینوکس آشنا میکند.
۱. بسته و مدیر بسته چیست؟
بسته (Package) یک فایل آرشیو شده شامل فایلهای اجرایی، کتابخانهها، فایلهای پیکربندی و مستندات یک نرمافزار است. مدیر بسته (Package Manager) ابزاری است که این بستهها را مدیریت میکند؛ وابستگیها را بررسی میکند، فایلها را در مسیرهای صحیح قرار میدهد و نصب/حذف را آسان میسازد.
در لینوکس، دو خانواده اصلی مدیر بسته وجود دارد:
- Debian-based: از بستههای
.debو ابزارaptاستفاده میکنند (مانند Ubuntu، Debian، Linux Mint). - Red Hat-based: از بستههای
.rpmو ابزارهایyumیاdnfاستفاده میکنند (مانند Fedora، RHEL، CentOS). - Arch-based: از بستههای
.pkg.tar.xzو ابزارpacmanاستفاده میکنند (مانند Arch Linux، Manjaro).
علاوه بر این، ابزارهای مدرنتری مانند Snap، Flatpak و AppImage نیز وجود دارند که نصب نرمافزار را مستقل از توزیع ممکن میکنند.
۲. مدیریت بسته با APT (Debian/Ubuntu)
APT (Advanced Package Tool) محبوبترین مدیر بسته در توزیعهای مبتنی بر دبیان است. با APT میتوانید به راحتی نرمافزارها را از مخازن رسمی نصب کنید.
بهروزرسانی لیست بستهها
قبل از هر کاری، لیست بستههای موجود در مخازن را بهروز کنید:
sudo apt update
بهروزرسانی بستههای نصب شده
برای بهروزرسانی همه بستههای نصب شده به جدیدترین نسخه:
sudo apt upgrade
برای بهروزرسانی کامل سیستم (شامل هسته و وابستگیها):
sudo apt full-upgrade
نصب یک بسته جدید
sudo apt install package_name
مثلاً برای نصب ویرایشگر Vim:
sudo apt install vim
حذف یک بسته
sudo apt remove package_name
برای حذف کامل به همراه فایلهای پیکربندی:
sudo apt purge package_name
جستجوی بسته
apt search keyword
نمایش اطلاعات یک بسته
apt show package_name
apt برای کاربران سطح بالا طراحی شدهاند. اگر به ابزارهای سطح پایینتر نیاز دارید، از apt-get و apt-cache استفاده کنید.
۳. مدیریت بسته با DNF و YUM (Fedora/RHEL)
DNF (Dandified YUM) نسخه جدیدتر YUM است و در توزیعهای مبتنی بر Red Hat استفاده میشود. دستورات DNF مشابه APT هستند.
بهروزرسانی لیست بستهها
در DNF، نیازی به بهروزرسانی جداگانه لیست نیست، اما برای همگامسازی مخازن:
sudo dnf makecache
بهروزرسانی بستهها
sudo dnf upgrade
نصب یک بسته جدید
sudo dnf install package_name
حذف یک بسته
sudo dnf remove package_name
جستجو و اطلاعات بسته
dnf search keyword
dnf info package_name
گروههای نرمافزاری
در DNF میتوانید گروههای نرمافزاری را نصب کنید (مثلاً گروه "Development Tools"):
sudo dnf groupinstall "Development Tools"
۴. مدیریت بسته با Pacman (Arch Linux)
Pacman مدیر بسته سریع و قدرتمند Arch Linux است. دستورات آن کمی متفاوت است اما بسیار کارآمد.
همگامسازی مخازن و بهروزرسانی سیستم
sudo pacman -Syu
این دستور مخازن را همگامسازی کرده و همه بستهها را بهروز میکند.
نصب یک بسته جدید
sudo pacman -S package_name
حذف یک بسته
sudo pacman -R package_name
برای حذف بسته به همراه وابستگیهای غیرضروری:
sudo pacman -Rs package_name
جستجوی بسته
pacman -Ss keyword
نمایش اطلاعات بسته
pacman -Qi package_name
۵. ابزارهای مدرن: Snap، Flatpak و AppImage
این ابزارها نرمافزارها را به صورت مستقل از توزیع ارائه میدهند و وابستگیها را همراه خود دارند.
Snap
Snap توسط Canonical (سازنده Ubuntu) توسعه داده شده است. نصب با Snap:
sudo snap install package_name
Flatpak
Flatpak یک پلتفرم مستقل برای توزیع نرمافزار است که در بسیاری از توزیعها پشتیبانی میشود.
flatpak install flathub package_name
AppImage
AppImage یک فایل اجرایی واحد است که بدون نیاز به نصب اجرا میشود. فقط کافی است آن را دانلود کرده و مجوز اجرا دهید:
chmod +x appimage-file.AppImage
./appimage-file.AppImage
۶. مخازن نرمافزاری
مخزن (Repository) مجموعهای از بستههای نرمافزاری است که مدیر بسته از آنها استفاده میکند. افزودن مخازن جدید به شما امکان نصب نرمافزارهای بیشتری را میدهد.
در Debian/Ubuntu، مخازن در فایل /etc/apt/sources.list تعریف میشوند. برای افزودن یک مخزن جدید:
sudo add-apt-repository ppa:repository-name
sudo apt update
۷. مدیریت بستههای منفرد با dpkg و rpm
گاهی نیاز دارید یک بسته .deb یا .rpm را مستقیماً نصب کنید (بدون مخزن).
dpkg (برای بستههای .deb)
sudo dpkg -i package.deb
اگر با خطای وابستگی مواجه شدید، از apt برای رفع آن استفاده کنید:
sudo apt install -f
rpm (برای بستههای .rpm)
sudo rpm -ivh package.rpm
.deb یا .rpm ممکن است وابستگیها را برطرف نکند. بهتر است تا حد امکان از مدیر بسته اصلی توزیع خود استفاده کنید.
۸. مثالهای کاربردی
مثال ۱: نصب یک مجموعه کامل از ابزارهای توسعه
# Debian/Ubuntu
sudo apt install build-essential git curl wget vim
# Fedora/RHEL
sudo dnf install @development-tools git curl wget vim
# Arch
sudo pacman -S base-devel git curl wget vim
مثال ۲: پیدا کردن و نصب یک کتابخانه خاص
# جستجوی کتابخانه libxml2
apt search libxml2
# نصب
sudo apt install libxml2-dev
مثال ۳: حذف بستههای استفاده نشده (تمیزکاری)
# Debian/Ubuntu - حذف بستههای غیرضروری
sudo apt autoremove
# Fedora/RHEL
sudo dnf autoremove
# Arch
sudo pacman -Rns $(pacman -Qdtq)
۹. مقایسه دستورات مدیر بسته
| عملیات | APT (Debian) | DNF (Fedora) | Pacman (Arch) |
|---|---|---|---|
| نصب بسته | apt install | dnf install | pacman -S |
| حذف بسته | apt remove | dnf remove | pacman -R |
| بهروزرسانی | apt update && apt upgrade | dnf upgrade | pacman -Syu |
| جستجو | apt search | dnf search | pacman -Ss |
| اطلاعات بسته | apt show | dnf info | pacman -Qi |
| حذف وابستگیهای غیرضروری | apt autoremove | dnf autoremove | pacman -Rns $(pacman -Qdtq) |
جمعبندی و گامهای بعدی
در این مقاله با مفاهیم و ابزارهای مدیریت بستهها در لینوکس آشنا شدید. حالا میتوانید به راحتی نرمافزارهای مورد نیاز خود را نصب، حذف و بهروزرسانی کنید. برای پیشرفت بیشتر:
- با مخازن مختلف و نحوه افزودن آنها آشنا شوید.
- ابزارهای Snap و Flatpak را برای نصب نرمافزارهای جدید امتحان کنید.
- با دستورات پیشرفتهتر مانند
aptitudeیاyumex(نسخه گرافیکی) کار کنید. - کتاب «The Linux Command Line» (ترجمه فارسی در کتابخانه لینوکس) را برای یادگیری عمیقتر بخوانید.