پرش به محتویات

102.4 - مدیریت بسته‌ها در Debian (Debian Package Management)

اهداف یادگیری

در این فصل با موارد زیر آشنا می‌شوید:

  • نصب، ارتقا و حذف بسته‌های باینری Debian
  • جستجوی بسته‌ها و فایل‌های مرتبط
  • بررسی اطلاعات بسته‌ها (نسخه، محتوا، وابستگی‌ها، وضعیت نصب)
  • آشنایی با apt

کلیدواژه‌ها

apt-get, apt-cache, dpkg, /etc/apt/sources.list, dpkg-reconfigure


مفهوم سیستم مدیریت بسته‌ها

برخی فکر می‌کنند که در GNU/Linux باید همه نرم‌افزارها را دستی کامپایل کنیم. این در 99% موارد درست نیست و هرگز در 20 سال گذشته درست نبوده است. GNU/Linux پیشرو چیزی است که امروزه App Store می‌نامیم. همه توزیع‌های بزرگ آرشیوهای بزرگی از نرم‌افزارهای از پیش کامپایل‌شده به نام repositories دارند و نوعی نرم‌افزار package manager که مسئول جستجو در این repositories، نصب نرم‌افزار از آنها، یافتن وابستگی‌ها، نصب آنها، حل تعارض‌ها و به‌روزرسانی سیستم و نرم‌افزارهای نصب شده است. توزیع‌های مبتنی بر Debian از فایل‌های .deb به عنوان "بسته‌ها" استفاده می‌کنند و از ابزارهایی مانند apt-get, dpkg, apt و ابزارهای دیگر برای مدیریت آنها استفاده می‌کنند.

بسته‌های Debian نام‌هایی مانند NAME-VERSION-RELEASE_ARCHITECTURE.deb دارند؛ مثلاً tmux_3.2a-4build1_amd64.deb.

نکته

بسته‌های Debian با پسوند .deb شناخته می‌شوند.


مخازن (Repositories)

اما این بسته از کجا آمده است؟ چگونه OS می‌داند کجا به دنبال این بسته deb بگردد؟ پاسخ Repositories است. هر توزیع repository بسته‌های خود را دارد. می‌تواند روی دیسک، درایو شبکه، مجموعه DVDها یا معمولاً آدرس شبکه روی اینترنت باشد.

در سیستم‌های debian، مکان‌های پیکربندی اصلی عبارتند از:

  • /etc/apt/sources.list
  • /etc/apt/sources.list.d/

نمونه:

deb http://us.archive.ubuntu.com/ubuntu/ jammy main restricted
deb http://security.ubuntu.com/ubuntu jammy-security universe

به‌روزرسانی اطلاعات مخازن

apt-get update
  • فقط اطلاعات بسته‌ها را به‌روز می‌کند.
  • بسته‌ها را ارتقا نمی‌دهد.

نکته

این فقط اطلاعات بسته‌ها را به‌روز می‌کند و نه خود بسته‌ها.


نصب بسته‌ها

فرض کنید درباره این multiplexer ترمینال شگفت‌انگیز به نام tmux شنیده‌اید و می‌خواهید آن را امتحان کنید.

$ tmux
The program 'tmux' is currently not installed. You can install it by typing:
sudo apt-get install tmux
$ which tmux
$ type tmux
bash: type: tmux: not found

پس بیایید آن را نصب کنیم. اگر در repositories باشد، کافی است به package manager بگویید آن را نصب کند:

apt-get install tmux

نکته

  • apt-get install ممکن است از شما برای ادامه تأیید (Y/N) بخواهد.
  • apt-get وابستگی‌ها را به‌صورت خودکار حل و نصب می‌کند؛ این تفاوت اصلی آن با برخی ابزارهای محلی است.
  • بسته‌های Debian با فرمت .deb ارائه می‌شوند.

اگر فقط می‌خواهید dry-run/simulation:

apt-get install --dry-run tmux

ارتقا بسته‌ها

برای ارتقا بسته‌ها:

apt-get upgrade

این همه بسته‌های نصب شده را ارتقا می‌دهد اگر نسخه جدیدتری در repositories موجود باشد.

برای ارتقای توزیع:

apt-get dist-upgrade

حذف بسته‌ها

apt-get remove tmux

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

apt-get purge tmux

یا

apt-get remove --purge tmux

جستجو و اطلاعات بسته‌ها

جستجوی بسته‌ها

apt-cache search tmux

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

apt-cache show tmux

این نسخه، وابستگی‌ها، توضیحات و غیره را نشان می‌دهد.

یافتن بسته‌ای که فایل خاصی را فراهم می‌کند

apt-file search /bin/tmux

یا

dpkg -S /bin/tmux

dpkg

dpkg ابزار سطح پایین‌تر است.

نصب بسته deb

dpkg -i package.deb

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

dpkg -l

اطلاعات بسته

dpkg -I package.deb
dpkg -s package_name

حذف بسته

dpkg -r package_name

لیست فایل‌های بسته

dpkg -L package_name

dpkg-reconfigure

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

dpkg-reconfigure tzdata

apt

apt نسخه جدیدتر apt-get است.

apt update
apt install tmux
apt remove tmux
apt search tmux
apt show tmux

تمرین‌ها

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

sudo apt-get update

تمرین 2: نصب بسته

sudo apt-get install htop

تمرین 3: جستجوی بسته

apt-cache search editor

تمرین 4: بررسی وضعیت بسته

dpkg -s vim

تمرین 5: حذف بسته

sudo apt-get remove htop

خلاصه

در این فصل یاد گرفتیم:

  • مفهوم repositories و بسته‌های .deb
  • پیکربندی /etc/apt/sources.list
  • استفاده از apt-get برای نصب، ارتقا و حذف
  • جستجو با apt-cache
  • ابزار dpkg برای مدیریت سطح پایین
  • تفاوت apt و apt-get

نکات کلیدی برای آزمون

  • ساختار فایل sources.list
  • تفاوت apt-get update و upgrade
  • حل وابستگی‌ها
  • استفاده از dpkg برای بسته‌های محلی
  • جستجوی فایل‌ها در بسته‌ها

نصب بسته‌ها

apt-get install tmux
apt-get install -s tmux          # شبیه‌سازی نصب
apt-get install --download-only tmux
apt-get download tmux

نکته

بسته‌ها پس از دانلود در مسیر /var/cache/apt/archive/ ذخیره می‌شوند.


حذف بسته‌ها

apt-get remove tmux
apt-get autoremove tmux

هشدار

حذف یک بسته وابستگی‌هایش را حذف نمی‌کند، مگر با autoremove.


جستجوی بسته‌ها

apt-cache search "tiny window"
apt search grub2

ارتقا بسته‌ها

apt-get upgrade
apt-get dist-upgrade
  • upgrade: ارتقای بسته‌های نصب‌شده
  • dist-upgrade: ارتقای نسخه‌ی توزیع

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

dpkg-reconfigure tzdata

کار با dpkg

dpkg -i package.deb        # نصب بدون وابستگی‌ها
dpkg -s bzr                # وضعیت بسته
dpkg -L bzr                # فایل‌های نصب‌شده
dpkg -S /path/to/file      # بسته مالک فایل
dpkg --contents package.deb # محتوای بسته

گزینه‌های پرکاربرد apt-get

  • update → به‌روزرسانی اطلاعات بسته‌ها
  • upgrade → ارتقای همه بسته‌ها
  • install → نصب یا ارتقا بسته‌ها
  • remove → حذف بسته‌ها
  • dist-upgrade → ارتقای نسخه توزیع
  • clean → پاک‌سازی کش بسته‌ها

تمرین‌های عملی

تمرین 1: نصب یک بسته

sudo apt-get install htop

تمرین 2: بررسی فایل‌های یک بسته

dpkg -L htop

تمرین 3: جستجوی بسته‌های مرتبط با شبکه

apt-cache search network

تمرین 4: پیکربندی مجدد یک بسته

dpkg-reconfigure tzdata

خلاصه

در این فصل یاد گرفتیم:

  • مفهوم مخازن و فایل‌های پیکربندی /etc/apt/sources.list
  • تفاوت apt-get update و apt-get upgrade
  • نصب، حذف و جستجوی بسته‌ها با apt-get و apt-cache
  • استفاده از dpkg برای بررسی و مدیریت بسته‌ها
  • پیکربندی مجدد بسته‌ها با dpkg-reconfigure

نکات کلیدی برای آزمون

  • تفاوت update و upgrade
  • مسیرهای پیکربندی مخازن (/etc/apt/sources.list)
  • دستورهای apt-get, apt-cache, dpkg
  • مفهوم autoremove و نقش آن در حذف وابستگی‌ها
  • ساختار نام بسته‌های Debian با پسوند .deb