نحوه استفاده از dpkg، apt، aptitude، synaptic و tasksel در دبیان

دبیان ابزارهای متعددی برای مدیریت بسته‌های نرم‌افزاری ارائه می‌دهد که هر کدام هدف خاصی در اکوسیستم مدیریت بسته دارند. درک زمان و نحوه استفاده از هر ابزار به شما کمک می‌کند سیستم خود را به طور مؤثر نگهداری کنید.

درک سلسله مراتب مدیریت بسته

در دبیان، مدیریت بسته در لایه‌های مختلفی کار می‌کند و هر ابزار نقش متفاوتی دارد:

  • dpkg ابزار اصلی است که برای نصب، حذف و بررسی مستقیم فایل‌های بسته .deb استفاده می‌شود، اما بسته‌ها را دانلود نمی‌کند یا وابستگی‌ها را مدیریت نمی‌کند.
  • apt و aptitude روی dpkg کار می‌کنند و بسته‌ها را از مخازن آنلاین بازیابی کرده و به طور خودکار وابستگی‌ها را مدیریت می‌کنند که نصب را بسیار آسان‌تر می‌کنند.
  • Synaptic یک رابط گرافیکی (ابزار بصری “شبیه فروشگاه برنامه”) است که به شما امکان می‌دهد قابلیت‌های apt را بدون استفاده از خط فرمان به کار ببرید.
  • tasksel گروه‌هایی از نرم‌افزارهای مرتبط (به نام tasks) را نصب می‌کند، مانند “وب سرور” یا “محیط دسکتاپ”، که شما را از دردسر نصب تک تک بسته‌ها نجات می‌دهد.

از آنجایی که این ابزارها در سطوح مختلفی کار می‌کنند، مکمل یکدیگر هستند نه جایگزین، و موقعیت‌هایی پیش می‌آید که یک ابزار مناسب‌تر از دیگری است.

کار با dpkg

dpkg ابزار سطح پایین برای کار مستقیم با فایل‌های .deb است که از قبل در سیستم شما وجود دارند. این ابزار بسته‌ها را از اینترنت دانلود نمی‌کند و وابستگی‌های مورد نیاز را به طور خودکار نصب نمی‌کند.

بنابراین اگر یک بسته به نرم‌افزار دیگری برای کار کردن نیاز دارد، باید آن وابستگی‌ها را خودتان نصب کنید یا به apt سوئیچ کنید تا آن وابستگی‌ها را به طور خودکار نصب کند.

برای نصب یک فایل بسته که از قبل دانلود کرده‌اید، برای مثال اگر فایل google-chrome-stable_current_amd64.deb را دارید، می‌توانید آن را با استفاده از دستور زیر نصب کنید:

dpkg -i package-name.deb

اگر تمام وابستگی‌های مورد نیاز از قبل موجود باشند، نصب با موفقیت انجام می‌شود. با این حال، اگر برخی بسته‌ها مفقود باشند، ممکن است پیغام خطایی مانند زیر را ببینید:

dependency problems – leaving unconfigured

در این حالت، می‌توانید وابستگی‌های مفقود را با اجرای دستور زیر برطرف کنید، که به apt دستور می‌دهد به طور خودکار هر وابستگی مورد نیاز برای تکمیل نصب را دانلود و نصب کند.

sudo apt -f install

برای حذف یک بسته نصب شده:

dpkg -r package-name

برای فهرست کردن تمام بسته‌های نصب شده در سیستم شما:

dpkg -l

برای بررسی اینکه یک بسته خاص نصب شده است یا خیر:

dpkg -l package-name

از آنجایی که dpkg وابستگی‌ها را به طور خودکار مدیریت نمی‌کند، ممکن است با خطاهایی درباره بسته‌های مفقود مواجه شوید. در چنین مواردی، ابزارهای سطح بالاتر مانند apt ضروری می‌شوند.

نکته مهم: این راهنما به طور کامل به بررسی سیستم مدیریت بسته دبیان می‌پردازد و برای کاربران تازه‌کار و حرفه‌ای مفید خواهد بود.

مقدمه‌ای بر سیستم مدیریت بسته دبیان

دبیان به عنوان یکی از پایدارترین و قابل اعتمادترین توزیع‌های لینوکس، سیستم مدیریت بسته بسیار پیشرفته‌ای را ارائه می‌دهد. درک عمیق این سیستم نه تنها به مدیریت بهتر سیستم کمک می‌کند، بلکه در حل مشکلات و عیب‌یابی نیز بسیار کارآمد خواهد بود.

چرا مدیریت بسته مهم است؟

مدیریت بسته قلب تپنده هر سیستم عامل مبتنی بر لینوکس است. در دبیان، این سیستم به شما امکان می‌دهد:

  • نرم‌افزارها را به راحتی نصب و حذف کنید
  • به‌روزرسانی‌های امنیتی را دریافت نمایید
  • وابستگی‌های نرم‌افزاری را به طور خودکار مدیریت کنید
  • سیستمی پایدار و ایمن داشته باشید
  • از یکپارچگی سیستم اطمینان حاصل کنید

سلسله مراتب ابزارهای مدیریت بسته

سیستم مدیریت بسته دبیان به صورت لایه‌ای طراحی شده است. هر ابزار در سطح خاصی عمل می‌کند و درک این سلسله مراتب برای استفاده مؤثر ضروری است.

ابزار سطح کاربرد اصلی مدیریت وابستگی رابط کاربری
dpkg پایین‌ترین سطح مدیریت مستقیم بسته‌های .deb خیر خط فرمان
apt سطح میانی مدیریت روزمره بسته‌ها بله خط فرمان
aptitude سطح پیشرفته حل تعارض وابستگی‌ها بله (پیشرفته) خط فرمان و متنی
synaptic سطح کاربری مدیریت گرافیکی بسته‌ها بله گرافیکی
tasksel سطح وظیفه نصب گروه‌های نرم‌افزاری بله متنی و گرافیکی

کار با dpkg: ابزار پایه‌ای مدیریت بسته

dpkg هسته اصلی سیستم مدیریت بسته دبیان است. این ابزار مستقیماً با فایل‌های .deb کار می‌کند اما قابلیت مدیریت وابستگی‌ها را ندارد.

نصب بسته با dpkg

برای نصب یک بسته محلی با استفاده از dpkg:

# نصب یک بسته
sudo dpkg -i package-name.deb

# نصب با گزینه‌های پیشرفته
sudo dpkg –install –force-all package-name.deb

مدیریت بسته‌های نصب شده

# حذف یک بسته (نگهداری فایل‌های پیکربندی)
sudo dpkg -r package-name

# حذف کامل بسته شامل فایل‌های پیکربندی
sudo dpkg -P package-name

# لیست تمام بسته‌های نصب شده
dpkg -l

# جستجوی بسته خاص
dpkg -l | grep package-name

# مشاهده اطلاعات یک بسته
dpkg -s package-name

# لیست فایل‌های متعلق به یک بسته
dpkg -L package-name

عیب‌یابی با dpkg

# بررسی وضعیت بسته‌ها
dpkg –get-selections

# بازسازی پایگاه داده بسته‌ها
sudo dpkg –configure -a

# رفع مشکلات وابستگی
sudo apt-get install -f

هشدار: استفاده نادرست از dpkg می‌تواند منجر به مشکلات وابستگی شود. همیشه ترجیحاً از apt برای نصب بسته‌ها استفاده کنید.

استفاده از apt: ابزار استاندارد مدیریت بسته

apt (Advanced Package Tool) ابزار اصلی و توصیه شده برای مدیریت بسته در دبیان است. این ابزار به طور خودکار وابستگی‌ها را مدیریت می‌کند و از مخازن آنلاین بسته‌ها را دریافت می‌نماید.

به‌روزرسانی سیستم

# به‌روزرسانی فهرست بسته‌ها
sudo apt update

# به‌روزرسانی بسته‌های نصب شده
sudo apt upgrade

# به‌روزرسانی کامل سیستم (شامل ارتقای نسخه)
sudo apt full-upgrade

نصب و حذف بسته‌ها

# نصب یک بسته
sudo apt install package-name

# نصب چندین بسته به طور همزمان
sudo apt install package1 package2 package3

# حذف بسته (نگهداری پیکربندی)
sudo apt remove package-name

# حذف کامل بسته
sudo apt purge package-name

# حذف بسته‌های غیرضروری
sudo apt autoremove

جستجو و اطلاع‌رسانی

# جستجوی بسته
apt search keyword

# نمایش اطلاعات بسته
apt show package-name

# لیست بسته‌های قابل ارتقا
apt list –upgradeable

# لیست تمام بسته‌های موجود
apt list

مدیریت مخازن

# پاکسازی کش
sudo apt clean

# پاکسازی کش جزئی
sudo apt autoclean

# ویرایش مخازن (با احتیاط)
sudo apt edit-sources

نکته حرفه‌ای: همیشه قبل از نصب بسته‌های جدید، دستور sudo apt update را اجرا کنید تا از آخرین نسخه‌ها مطلع شوید.

aptitude: ابزار هوشمند مدیریت بسته

aptitude یک ابزار پیشرفته‌تر است که قابلیت‌های بیشتری نسبت به apt ارائه می‌دهد، به ویژه در مدیریت وابستگی‌های پیچیده.

استفاده از رابط متنی aptitude

# راه‌اندازی رابط متنی
sudo aptitude

# استفاده از خط فرمان شبیه apt
sudo aptitude update
sudo aptitude install package-name
sudo aptitude remove package-name

قابلیت‌های پیشرفته aptitude

# جستجوی پیشرفته
aptitude search “~dweb server”

# نمایش بسته‌های نصب شده دستی
aptitude search “~i!~M”

# حل خودکار مشکلات
sudo aptitude safe-upgrade

# ارتقای تهاجمی (با احتیاط)
sudo aptitude full-upgrade

Synaptic: مدیر بسته گرافیکی

برای کاربرانی که محیط گرافیکی را ترجیح می‌دهند، Synaptic یک رابط کاربری قدرتمند ارائه می‌دهد.

نصب و راه‌اندازی Synaptic

# نصب synaptic
sudo apt install synaptic

# راه‌اندازی
sudo synaptic

ویژگی‌های کلیدی Synaptic

  • مرور دسته‌بندی شده بسته‌ها
  • جستجوی پیشرفته
  • مشاهده اطلاعات کامل بسته‌ها
  • مدیریت مخازن گرافیکی
  • تاریخچه عملیات

tasksel: نصب گروه‌های نرم‌افزاری

tasksel برای نصب گروه‌های منطقی از بسته‌ها طراحی شده است.

# راه‌اندازی رابط tasksel
sudo tasksel

# نمایش وظایف موجود
tasksel –list-tasks

# نصب یک وظیفه خاص
sudo tasksel install task-name

مدیریت مخازن پیشرفته

ساختار فایل sources.list

# مشاهده مخازن فعلی
cat /etc/apt/sources.list

# ساختار یک خط مخزن
deb http://ftp.debian.org/debian bookworm main contrib non-free
deb-src http://ftp.debian.org/debian bookworm main contrib non-free

افزودن مخازن شخصی

# افزودن مخزن از طریق دستور
sudo add-apt-repository ppa:repository-name

# افزودن مخزن دستی
echo “deb http://example.com/debian stable main” | sudo tee -a /etc/apt/sources.list

امنیت در مدیریت بسته

امضای GPG مخازن

# وارد کردن کلید GPG
sudo apt-key add keyfile.asc

# به‌روزرسانی کلیدها
sudo apt update

بررسی یکپارچگی بسته‌ها

# بررسی هش بسته‌ها
apt-get –print-uris download package-name

# اعتبارسنجی بسته‌های نصب شده
debsums -c

عیب‌یابی و حل مشکلات متداول

مشکلات وابستگی

# رفع مشکلات وابستگی
sudo apt –fix-broken install
sudo dpkg –configure -a
sudo apt autoremove

مشکلات مخزن

# پاکسازی کش مخزن
sudo apt clean
sudo rm -rf /var/lib/apt/lists/*
sudo apt update

اسکریپت‌نویسی برای مدیریت بسته

اسکریپت به‌روزرسانی خودکار

#!/bin/bash
# اسکریپت به‌روزرسانی خودکار سیستم
echo “Starting system update…”
sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y
echo “System update completed!”

مانیتورینگ بسته‌ها

#!/bin/bash
# مانیتور بسته‌های قابل ارتقا
upgrades=$(apt list –upgradeable 2>/dev/null | wc -l)
echo “Packages available for upgrade: $((upgrades-1))”

نتیجه‌گیری

مدیریت بسته در دبیان یک سیستم قدرتمند و انعطاف‌پذیر است که با درک صحیح از سلسله مراتب ابزارهای مختلف، می‌توانید سیستم خود را به طور مؤثر مدیریت کنید. هر ابزار جایگاه خاص خود را دارد و استفاده صحیح از هر یک می‌تواند در موقعیت‌های مختلف مفید واقع شود.

استفاده از apt برای مدیریت روزمره بسته

در حالی که dpkg مستقیماً با فایل‌های .deb کار می‌کند، apt ابزاری است که بیشتر اوقات از آن استفاده خواهید کرد زیرا به طور خودکار بسته‌ها را از مخازن آنلاین دبیان دانلود کرده و هر وابستگی که نیاز دارند را نصب می‌کند، که apt را به ابزار ترجیحی برای نصب، حذف و به‌روزرسانی روزمره نرم‌افزار تبدیل می‌کند.

ابزار apt برای عملیات نصب و حذف به دسترسی superuser نیاز دارد، بنابراین باید از sudo استفاده کنید یا این دستورات را به عنوان root اجرا کنید.

قبل از نصب هر نرم‌افزاری، ایده خوبی است که فهرست بسته‌های خود را به‌روز کنید تا سیستم شما از آخرین نسخه‌های موجود مطلع شود:

sudo apt update

برای نصب یک بسته و تمام وابستگی‌های مورد نیاز آن، استفاده کنید:

sudo apt install package-name

برای حذف یک بسته در حالی که فایل‌های پیکربندی آن باقی می‌مانند:

sudo apt remove package-name

اگر می‌خواهید فایل‌های پیکربندی را نیز حذف کنید (حذف تمیزتر)، استفاده کنید:

sudo apt purge package-name

برای ارتقای تمام بسته‌های نصب شده به آخرین نسخه‌های آنها:

sudo apt upgrade

اگر از نام دقیق بسته مطمئن نیستید، می‌توانید با کلیدواژه جستجو کنید، که فهرستی از بسته‌های مطابق همراه با توضیحات کوتاه نمایش می‌دهد.

apt search keyword

apt فایل‌های بسته دانلود شده را در سیستم شما نگه می‌دارد در صورتی که دوباره مورد نیاز باشند. با گذشت زمان، این کش می‌تواند بزرگ شود و برای آزاد کردن فضای دیسک، اجرا کنید:

sudo apt clean

مدیریت بسته‌ها با ابزار aptitude

در حالی که apt معمولاً برای اکثر مدیریت‌های روزمره بسته کافی است، اما aptitude ویژگی‌های اضافی ارائه می‌دهد و اغلب می‌تواند موقعیت‌های پیچیده وابستگی را مدیریت کند. در برخی موارد، که apt در حل تضادهای بسته یا ارتقا مشکل دارد، aptitude می‌تواند راه‌حل‌های بهتری پیشنهاد دهد.

می‌توانید aptitude را از خط فرمان بسیار شبیه به apt استفاده کنید:

sudo aptitude update
sudo aptitude install package-name
sudo aptitude remove package-name
aptitude search keyword

با این حال، یکی از مزایای کلیدی aptitude این است که همچنین شامل یک رابط متنی تعاملی است که می‌توانید با دستور زیر آن را باز کنید:

sudo aptitude

رابط متنی aptitude
رابط متنی aptitude

مرور سازمان‌یافته بسته با aptitude
مرور سازمان‌یافته بسته با aptitude

مزیت دیگر این است که aptitude پیگیری می‌کند که کدام بسته‌ها به صورت دستی نصب شده‌اند و کدام به طور خودکار به عنوان وابستگی نصب شده‌اند. به همین دلیل، اغلب در تصمیم‌گیری اینکه کدام بسته‌ها برای حذف ایمن هستند هنگام حذف نرم‌افزار بهتر عمل می‌کند، که به شما کمک می‌کند از حذف accidental چیزی مهم جلوگیری کنید.

استفاده از Synaptic برای مدیریت بسته گرافیکی

اگر ترجیح می‌دهید با یک رابط گرافیکی به جای خط فرمان کار کنید، Synaptic یک مدیر بسته کامل ارائه می‌دهد که روی apt ساخته شده است.

برای نصب Synaptic، اجرا کنید:

sudo apt install synaptic

پس از نصب، می‌توانید آن را از منوی برنامه‌های خود راه‌اندازی کنید، یا با اجرای:

sudo synaptic-pkexec

Synaptic Package Manager

وقتی Synaptic باز می‌شود، دسته‌های بسته را در سمت چپ و فهرستی از بسته‌ها را در سمت راست خواهید دید. Selecting a package will display details in the lower panel, including what the package does, which version is available, and what other packages it depends on.

خواندن اطلاعات بسته از طریق Synaptic

برای نصب یک بسته، روی آن راست-کلیک کنید و “Mark for Installation” را انتخاب کنید، که به طور خودکار any required dependencies را انتخاب می‌کند. پس از علامت‌گذاری تمام بسته‌های مورد نظرتان، روی “Apply” کلیک کنید تا نصب آغاز شود.

نصب بسته‌ها با استفاده از Synaptic

از آنجایی که Synaptic بازخورد بصری درباره تضادهای بسته و تغییرات وابستگی قبل از نصب anything ارائه می‌دهد، به کاربران اجازه می‌دهد به وضوح effects of their actions را ببینند.

نصب گروه‌های بسته با tasksel

برخلاف ابزارهایی که روی بسته‌های فردی تمرکز می‌کنند، tasksel entire sets of related software at once نصب می‌کند، که به نام tasks, نامیده می‌شوند، و هر task شامل تمام بسته‌های مورد نیاز برای انجام یک نقش خاص در سیستم شما می‌شود، such as a web server, desktop environment, or mail server.

برای راه‌اندازی منوی تعاملی انتخاب task، اجرا کنید:

sudo tasksel

This will open a menu where you can browse available tasks and use the arrow keys to move around and the spacebar to select or deselect a task.

استفاده از منوی تعاملی Tasksel
استفاده از منوی تعاملی Tasksel

اگر می‌خواهید tasks available را بدون باز کردن منو مشاهده کنید، استفاده کنید:

tasksel –list-tasks

مشاهده وظایف موجود
مشاهده وظایف موجود

برای نصب یک task خاص مستقیماً از خط فرمان، اجرا کنید:

sudo tasksel install task-name

در حالی که tasksel به طور less frequently during normal daily package management استفاده می‌شود، during system setup or when you want to install a full software environment in one step بسیار مفید است.

✍️ نویسنده: حسین سیلانی

🔗 درباره من: seilany.ir

📢 نویسندگی و مشارکت در وبلاگ: t.me/seilany