</>

لینوکس‌پارسی

مرجع فارسی آموزش لینوکس

Gentoo • Arch • Debian • Ubuntu • Kali • Parrot
پرش به محتوای اصلی

Command Palette

Search for a command to run...

APT — مدیریت بسته در Debian

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

مقدماتی۹ دقیقه مطالعهآخرین بروزرسانی: ۹ تیر ۱۴۰۵ویرایش در گیت‌هاب

APT (Advanced Package Tool) سیستم مدیریت بستهٔ Debian است و قلب تپندهٔ این توزیع به‌شمار می‌رود. APT نصب، حذف، به‌روزرسانی و حل وابستگی‌های بسته‌های با پسوند .deb را بر عهده دارد. در این آموزش با دستورات و امکانات APT آشنا می‌شوید.

APT چیست؟#

APT لایه‌ای بالاتر از dpkg (مدیریت بستهٔ سطح پایین Debian) است که کارهای پیچیده را ساده می‌کند:

  • حل خودکار وابستگی‌ها
  • دانلود بسته‌ها از مخازن شبکه‌ای
  • تأیید امضای GPG بسته‌ها
  • مدیریت چند مخزن به‌صورت همزمان
  • ارتقای هوشمند سیستم

apt در برابر apt-get

دستور apt (جدیدتر، با خروجی رنگی و پیشرفت کاربرپسند) برای استفادهٔ تعاملی طراحی شده، در حالی که apt-get و apt-cache برای اسکریپت‌ها مناسب‌ترند. در اسکریپت‌های پایدار از apt-get استفاده کنید، اما در ترمینال apt راحت‌تر است.

دستورات پایهٔ APT#

۱. به‌روزرسانی فهرست بسته‌ها#

# دریافت فهرست بسته‌های جدید از مخازن
sudo apt update
 
# خروجی نمونه:
# Hit:1 http://deb.debian.org/debian bookworm InRelease
# Hit:2 http://deb.debian.org/debian bookworm-updates InRelease
# Get:3 http://deb.debian.org/debian-security bookworm-security InRelease
# Reading package lists... Done
# Building dependency tree... Done
# Reading state information... Done
# All packages are up to date.

تفاوت update و upgrade

apt update فقط فهرست بسته‌ها را به‌روز می‌کند و هیچ بسته‌ای نصب نمی‌کند. apt upgrade بسته‌های نصب‌شده را به نسخه‌های جدید ارتقا می‌دهد. این دو را با هم اشتباه نگیرید.

۲. نصب بستهٔ جدید#

# نصب یک بسته
sudo apt install nmap
 
# نصب چند بسته همزمان
sudo apt install nmap wireshark tcpdump
 
# نصب بدون پرسش تأیید
sudo apt install -y nmap
 
# نصب نسخهٔ خاص
sudo apt install nmap=7.93+git20240122-1
 
# نصب از مخزن خاص
sudo apt install -t bookworm-backports linux-image-amd64

۳. به‌روزرسانی بسته‌ها#

# ارتقای بسته‌های نصب‌شده (حذف هیچ بسته‌ای انجام نمی‌شود)
sudo apt upgrade
 
# ارتقای کامل (ممکن است بسته‌های قدیمی را حذف کند)
sudo apt full-upgrade
 
# ارتقا با تأیید خودکار
sudo apt upgrade -y
دستوررفتارمناسب برای
apt upgradeنصب نسخه‌های جدید، حذف نمی‌کندبه‌روزرسانی روزانه
apt full-upgradeممکن است بسته‌ها را حذف/جایگزین کندارتقای بزرگ، توزیع

۴. جستجوی بسته#

# جستجو در فهرست بسته‌ها
apt search nmap
 
# خروجی:
# nmap/stable 7.93+git20240122-1 amd64
#   The Network Mapper
# nmapnc/stable 7.93+git20240122-1 all
#   ...

۵. نمایش اطلاعات بسته#

# اطلاعات کامل یک بسته
apt show nmap
 
# خروجی:
# Package: nmap
# Version: 7.93+git20240122-1
# Priority: optional
# Section: net
# Maintainer: Debian Security Tools <team+pkg-security@tracker.debian.org>
# Depends: libc6 (>= 2.34), libgcc-s1 (>= 3.0), liblua5.3-0, ...
# Description: The Network Mapper
#  Nmap is a utility for network exploration or security auditing.

۶. حذف بسته#

# حذف بسته (نگه‌داشتن فایل‌های پیکربندی)
sudo apt remove nmap
 
# حذف کامل بسته و فایل‌های پیکربندی
sudo apt purge nmap
 
# حذف بسته‌های یتیم (وابستگی‌های غیرضروری)
sudo apt autoremove
 
# حذف کامل + یتیم‌ها
sudo apt purge --auto-remove nmap

جدول دستورات رایج APT#

دستورتوضیح
sudo apt updateبه‌روزرسانی فهرست بسته‌ها
sudo apt upgradeارتقای بسته‌های نصب‌شده
sudo apt full-upgradeارتقای کامل با حذف در صورت نیاز
sudo apt install pkgنصب بسته
sudo apt install -y pkgنصب بدون پرسش تأیید
sudo apt remove pkgحذف بسته
sudo apt purge pkgحذف کامل بسته و تنظیمات
sudo apt autoremoveحذف وابستگی‌های یتیم
sudo apt autocleanپاک‌سازی کش بسته‌های قدیمی
sudo apt cleanپاک‌سازی کامل کش
apt search nameجستجوی بسته
apt show pkgنمایش اطلاعات بسته
apt list --installedلیست بسته‌های نصب‌شده
apt list --upgradableبسته‌های قابل ارتقا
apt depends pkgوابستگی‌های بسته
apt rdepends pkgبسته‌هایی که به این وابسته‌اند
dpkg -L pkgلیست فایل‌های یک بسته
dpkg -S fileبستهٔ صاحب یک فایل

مدیریت کش APT#

APT بسته‌های دانلودشده را در /var/cache/apt/archives/ نگه می‌دارد. با گذشت زمان، این پوشه می‌تواند فضای زیادی اشغال کند:

# مشاهدهٔ حجم کش
sudo du -sh /var/cache/apt/archives/
 
# پاک‌سازی بسته‌های قدیمی (نسخه‌های قبلی)
sudo apt autoclean
 
# پاک‌سازی کامل کش
sudo apt clean

پاک‌سازی دوره‌ای

پس از هر apt upgrade یا نصب نرم‌افزار بزرگ، sudo apt autoremove && sudo apt clean را اجرا کنید تا فضای دیسک اشغال نشود.

نصب بستهٔ .deb دستی#

اگر بستهٔ .deb را مستقلاً دانلود کرده‌اید:

# روش پیشنهادی: apt با حل خودکار وابستگی‌ها
sudo apt install ./package.deb
 
# روش قدیمی dpkg (بدون حل وابستگی)
sudo dpkg -i package.deb
sudo apt install -f   # رفع وابستگی‌های گم‌شده

علامت ./ مهم است

در apt install ./package.deb علامت ./ به APT می‌گوید که این یک فایل محلی است، نه نام بسته. بدون این علامت، APT به‌دنبال بسته‌ای به نام package.deb در مخازن می‌گردد.

لیست بسته‌های نصب‌شده#

# لیست تمام بسته‌های نصب‌شده
apt list --installed | head
 
# جستجوی بستهٔ خاص
apt list --installed | grep nmap
 
# ذخیرهٔ لیست برای پشتیبان‌گیری
apt list --installed > installed-packages.txt
 
# بازیابی روی سیستم دیگر
sudo apt install $(awk -F/ '/^nmap/{print $1}' installed-packages.txt)

قفل‌کردن نسخهٔ بسته (Hold)#

گاهی لازم است نسخهٔ یک بسته را ثابت نگه دارید تا با به‌روزرسانی ارتقا نیابد:

# قفل‌کردن نسخهٔ یک بسته
sudo apt-mark hold linux-image-amd64
 
# مشاهدهٔ بسته‌های قفل‌شده
apt-mark showhold
 
# رفع قفل
sudo apt-mark unhold linux-image-amd64

احتیاط با hold

قفل‌کردن نسخهٔ بسته‌ها می‌تواند به‌روزرسانی‌های امنیتی را مسدود کند. فقط در صورت ضرورت از این قابلیت استفاده کنید و بسته‌های قفل‌شده را به‌طور منظم بررسی کنید.

مشاهدهٔ بسته‌های قابل ارتقا#

# پس از apt update، بسته‌های قابل ارتقا را ببینید
apt list --upgradable
 
# خروجی نمونه:
# firefox-esr/stable-security 115.8.0esr-1~deb12u1 amd64 [upgradable from: 115.7.0esr-1~deb12u1]
# openssl/stable-security 3.0.13-1~deb12u1 amd64 [upgradable from: 3.0.11-1~deb12u2]

جستجوی پیشرفته#

# جستجو در نام بسته‌ها فقط
apt search --names-only nmap
 
# جستجو با regex
apt search '^nmap$'
 
# لیست بسته‌های موجود در دستهٔ خاص
apt list "nmap*"
 
# مشاهدهٔ سیاست نسخه‌ها
apt-cache policy nmap

خطاهای رایج APT#

۱. خطای lock#

E: Could not get lock /var/lib/dpkg/lock-frontend
   It is held by process 12345 (apt)

دلیل: یک فرآیند APT دیگر در حال اجراست. راه‌حل:

# صبر کنید تا فرآیند قبلی تمام شود
# یا در صورت یخ‌زدگی، فرآیند را متوقف کنید
sudo kill 12345
# یا اگر نشد:
sudo killall apt apt-get dpkg
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock-frontend
sudo dpkg --configure -a

۲. وابستگی‌های شکسته#

The following packages have unmet dependencies:
  nmap : Depends: liblinear3 (>= 1.6) but it is not installable
E: Unable to correct problems, you have held broken packages.

راه‌حل:

# تلاش برای رفع خودکار وابستگی‌ها
sudo apt --fix-broken install
 
# اگر حل نشد، مخازن را بررسی و به‌روز کنید
sudo apt update
sudo apt full-upgrade
 
# بررسی بسته‌های قفل‌شده
apt-mark showhold

۳. خطای GPG در مخزن#

W: An error occurred during the signature verification.
   GPG error: ... NO_PUBKEY 0E98404D386FA1D9

راه‌حل:

# نصب مجدد keyring رسمی Debian
sudo apt install -y debian-archive-keyring
 
# یا وارد کردن کلید دستی
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0E98404D386FA1D9

apt-key منسوخ شده است

از Debian 12 به بعد، apt-key add منسوخ شده است. روش صحیح، قرار دادن کلیدها در /etc/apt/keyrings/ و ارجاع به آن‌ها در خط مخزن است. برای جزئیات به آموزش مخازن مراجعه کنید.

۴. فضای دیسک ناکافی#

E: You don't have enough free space in /var/cache/apt/archives/

راه‌حل:

# پاک‌سازی کش
sudo apt clean
 
# بررسی فضای دیسک
df -h
 
# پاک‌سازی بسته‌های یتیم
sudo apt autoremove --purge

۵. Hash Sum mismatch#

E: Failed to fetch ... Hash Sum mismatch

راه‌حل:

# پاک‌سازی cache
sudo rm -rf /var/lib/apt/lists/*
sudo apt update

خلاصه و مرحلهٔ بعد#

APT سیستم قدرتمند و انعطاف‌پذیر مدیریت بسته در Debian است. با یادگیری چند دستور پایه، می‌توانید تمام نیازهای نرم‌افزاری خود را برطرف کنید. به‌خاطر داشته باشید که apt update فقط فهرست را به‌روز می‌کند و apt upgrade بسته‌ها را ارتقا می‌دهد.

به‌عنوان گام بعدی:

اشتراک‌گذاری:

این صفحه در تاریخ ۹ تیر ۱۴۰۵ به‌روزرسانی شده است.