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
بهروزرسانی اطلاعات مخازن¶
- فقط اطلاعات بستهها را بهروز میکند.
- بستهها را ارتقا نمیدهد.
نکته
این فقط اطلاعات بستهها را بهروز میکند و نه خود بستهها.
نصب بستهها¶
فرض کنید درباره این 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ممکن است از شما برای ادامه تأیید (Y/N) بخواهد.apt-getوابستگیها را بهصورت خودکار حل و نصب میکند؛ این تفاوت اصلی آن با برخی ابزارهای محلی است.- بستههای Debian با فرمت
.debارائه میشوند.
اگر فقط میخواهید dry-run/simulation:
ارتقا بستهها¶
برای ارتقا بستهها:
این همه بستههای نصب شده را ارتقا میدهد اگر نسخه جدیدتری در repositories موجود باشد.
برای ارتقای توزیع:
حذف بستهها¶
برای حذف کامل با فایلهای پیکربندی:
یا
جستجو و اطلاعات بستهها¶
جستجوی بستهها¶
نمایش اطلاعات بسته¶
این نسخه، وابستگیها، توضیحات و غیره را نشان میدهد.
یافتن بستهای که فایل خاصی را فراهم میکند¶
یا
dpkg¶
dpkg ابزار سطح پایینتر است.
نصب بسته deb¶
لیست بستههای نصب شده¶
اطلاعات بسته¶
حذف بسته¶
لیست فایلهای بسته¶
dpkg-reconfigure¶
برای پیکربندی مجدد بستهها:
apt¶
apt نسخه جدیدتر apt-get است.
تمرینها¶
تمرین 1: بهروزرسانی لیست بستهها¶
تمرین 2: نصب بسته¶
تمرین 3: جستجوی بسته¶
تمرین 4: بررسی وضعیت بسته¶
تمرین 5: حذف بسته¶
خلاصه¶
در این فصل یاد گرفتیم:
- مفهوم 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/ ذخیره میشوند.
حذف بستهها¶
هشدار
حذف یک بسته وابستگیهایش را حذف نمیکند، مگر با autoremove.
جستجوی بستهها¶
ارتقا بستهها¶
upgrade: ارتقای بستههای نصبشدهdist-upgrade: ارتقای نسخهی توزیع
پیکربندی مجدد بستهها¶
کار با 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: نصب یک بسته¶
تمرین 2: بررسی فایلهای یک بسته¶
تمرین 3: جستجوی بستههای مرتبط با شبکه¶
تمرین 4: پیکربندی مجدد یک بسته¶
خلاصه¶
در این فصل یاد گرفتیم:
- مفهوم مخازن و فایلهای پیکربندی
/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