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

برای نصب بسته‌های نرم‌افزارهای در لینوکس دبیان و یا توزیع‌ها مبتنی بر آن مانند لیبرانت و Knoppix، راههای مختلفی وجود دارند:
-استفاده از یک بسته دبیان : راحت‌ترین و عمومی‌ترین روش نصب نرم‌افزارهای کاربردی می‌باشد.
-استفاده از بسته‌های tar/gz حاوی کدهای منبع: این کار هنگامی صورت می‌گیرد که بسته دبیان یک نرم‌افزار خاص وجود نداشته باشد.
-تبدیل یک بسته از سایر فرمتها مانند rpm به deb: البته این راه ممکن است برخی اوقات مفید باشد، ولی همیشه قابل استفاده نیست.
-استفاده از یک برنامه نصب ثالث: برخی نرم‌افزارهای بازمتن به این صورت و به همراه یک برنامه نصب کننده ارائه می‌شوند. از این نرم‌افزارها می‌توان به مجموعه اداری OpenOffice اشاره نمود. استفاده از این برنامه‌ها بسیار آسان می‌باشد.
به هر صورت از هر روشی که استفاده نمایید، برای نصب یا حذف نرم‌افزار باید بصورت کاربر ریشه وارد شده باشید.

مفهوم بسته‌های نرم‌افزاری
یک بسته نرم‌افزار لینوکس، مجموعه‌ای از فایل‌ها برای نصب آسان نرم‌افزار می‌باشد. هر بسته حاوی یک برنامه و اسکرپت برای نصب، پیکربندی و حذف آن نرم‌افزار می‌باشد. در بیشتر موارد فایل‌های کمک برنامه نیز همراه آن ارائه می‌شوند.
لینوکس دو سیستم عمده برای بسته‌های نرم‌افزاری داراست:
-سیستم بسته‌بندی ردهت یا rpm که توسط ردهت و برخی توزیع‌های دیگر مانند مندریک و زوزه استفاده می‌شود. پسوند بسته‌های آن rpm است.
-سیستم بسته‌بندی دبیان یا deb که توسط لینوکس دبیان و توزیع‌های مبتنی بر آن مانند لیبرانت و Knoppix استفاده می‌شود. پسوند بسته‌های آن deb است. سیستم بسته‌بندی دبیان بدلیل قابلیت‌ها و قابل اعتماد بودن آن شناخته شده است. در این سیستم مشکل وابستگی‌های نرم‌افزار حل شده است و خود سیستم نرم‌افزارهای لازم را بجای یک هشدار ساده نصب می‌کند. حتی شما می‌توانید در همان حین که سیستم شما در حال کار است، با یک دستور ساده آنرا به نسخه جدیدتر ارتقا دهید. در حال حاضر راحت‌ترین و قدرتمندترین سیستم مدیریت بسته‌های نرم‌افزاری، سیستم مدیریت بسته‌های دبیان می‌باشد.

با سیستم مدیریت بسته‌های نرم‌افزاری دبیان مفهوم یکبار نصب برای تمام عمر معنی پیدا می‌کند. آیا نسخه جدیدی ارائه شده است؟ شما نیاز ندارید سیستم خود را از ابتدا نصب نمایید! CD های جدید را به سیستم اضافه نموده و با یک دستور کل سیستم را به بسته‌های با نسخه جدید ارتقا دهید!

برخی اوقات این امکان وجود دارد که از یک بسته rpm روی یک سیستم دبیان و از یک بسته deb روی سیستم‌های مبتنی بر rpm استفاده نمایید. البته این کار توصیه نمی‌شود زیرا ممکن است به سیستم‌عامل شما آسیب وارد نماید. بجای این کار می‌توانید از یک برنامه مبدل مانند alien برای تبدیل بسته‌ها به هم استفاده نموده و سپس عمل نصب را انجام دهید. البته عمل تبدیل ممکن است همیشه موفقیت آمیز نباشد.

بسته‌های نرم‌افزاری دبیان از طریق CD یا از طریق سایت http://www.debian.org موجود است.

ابزارهای مدیریت بسته‌های نرم‌افزاری
دبیان ابزارهای مختلفی برای مدیریت بسته‌های نرم‌افزاری خود ارائه می‌دهد. این ابزارها عبارتند از:
-apt-get : یک ابزار پیشرفته مدیریت بسته‌های نرم‌افزاری.
-dpkg: یک ابزار مدیریت بسته‌های نرم‌افزاری، اما نه به پیشرفتگی apt، ولی دارای قابلیت جستجوی بسته‌ها و محتویات آنها.
-dpkg-deb: یک ابزار مدیریت بسته‌های نرم‌افزاری.
سایر ابزارهایی که موجود هستند، عبارتند از dselect و capt که دو رابط متنی هستند. این دو ابزار در اینجا فقط برای آشنایی ذکر شدند و آنها را بررسی نخواهیم کرد.
تمام این ابزارها با تعدادی از منابع کار می‌کنند. این ابزارها می‌توانند CD یا سایتهای اینترنتی باشند. بسته‌ها از منبع به کامپیوتر شما منتقل می‌شوند. سپس می‌توانید آنها را فورا یا بعدا نصب نمایید.

مدیریت بسته‌های دبیان
قبل از نصب، حذف یا ارتقا نرم‌افزار، شما باید چیزهایی یاد بگیرید:
-سیکل حیاتی یک بسته
-اطلاعات درون بسته‌ها شامل:
-محتویات بسته‌ها
-نام بسته‌ها
-اولویت‌ها
-وابستگی‌های نرم‌افزاری
-وضعیت‌ها
-پرچم‌های بسته‌ها

سیکل حیاتی یک بسته
مدیریت بسته‌های دبیان از اصطلاحات خاصی برای شرح اعمال انجام شده با بسته‌ها استفاده می‌کند:
-دانلود شده (Downloaded): بسته‌ها از روی CD یا اینترنت به روی دستگاه شما منتقل شده‌اند.
-بازشده (Unpacked): فایلهای بسته باز شده‌اند، ولی هنوز آماده استفاده نیستند.
-کامپایل شده (Compiled): یک کد اجرایی از بسته حاوی کدهای منبع ایجاد شده است.
-پیکربندی شده (Configured): بسته آماده برای استفاده روی سیستم است، ولی هنوز نصب نشده است.
-نصب شده (Installed): بسته آماده استفاده است.
-برداشته شده (Deinstalled): بسته بجز فایلهای پیکربندی آن، از روی کامپیوتر حذف شده است.
-حذف شده (Purged): کل بسته شامل فایلهای پیکربندی از روی کامپیوتر حذف شده است.

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

محتویات بسته‌ها
بسته‌های دبیان ممکن است حاوی کد اجرایی یا کدهای منبع باشند. یک بسته حاوی کد اجرایی، دارای یک برنامه کامپایل شده است که می‌توانید بلافاصله پس از نصب آنرا اجرا نمایید. بسته‌های حاوی کدهای منبع قبل از استفاده باید کامپایل شوند. یک بسته حاوی کدهای اجرایی حاوی اقلام زیر می‌باشد:
-برنامه نرم‌افزاری.
-فایل conffiles که حاوی لیست فایلهای پیکربندی بسته می‌باشند.
-فایلهای پیکربندی که برا ینصب و برداشتن بسته مورد نیاز می‌باشند.
-اسکریپتهای نصب که هنگام استفاده از ابزارهای بسته‌های نرم‌افزاری به طور خودکار اجرا می‌شوند. برخی از آنها ممکن است به ورودی‌های کاربر نیاز داشته باشند. اسکریپتها معمولا در مسیر var/lib/dpkg/inf قرار دارند و به طور عام ۴ عدد هستند:
-preinst: قبل از نصب بسته اجرا می‌شود.
-postinst: بعد از نصب بسته اجرا می‌شود.
-prerm: قبل از حذف بشته اجرا می‌شود.
-postrm: بعد از حذف بسته اجرا می‌شود.
-فایلهای man و info که حاوی کمک برنامه هستند.
-فایل کنترل که حاوی خلاصه‌ای از کتابخانه‌های مورد نیاز بسته، نام و نسخه بسته، اولویت بسته، اندازه نصب شده آن، تهیه کننده آن و سایر اطلاعات اولیه می‌باشد.

نام بسته‌های نرم‌افزاری
برای نصب یا حذف یک بسته، شما تنها به نام آن نیاز دارید. در سایر موارد، ممکن است به نام کامل بسته نیاز داشته باشید. ساختار نامگذاری بسته‌های نرم‌افزاری دبیان بصورت program_version-revision_processor.deb می‌باشد. به عبارت دیگر:
-نام بسته که برخی اوقات یک نام مخفف است.
-شماره نسخه
-شماره اصلاحیه
-نوع پردازنده مانند i386 برای ماشینهای اینتل
-پسوند deb که نشانگر یک بسته دبیان است. البته توزیع‌های مبتنی بر دبیان نیز از این پسوند ممکن است استفاده کنند.

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

اولویت یک بسته نرم‌افزاری در فایل کنترل آن لیست شده است. اولویت نشانگر حد اهمیت بسته برای سیستم‌عامل است:
-Requires: بسته باید حتما بطور صحیح کار کند. به عبارت دیگر بسته یکی از اجرای پایه‌ای سیستم عامل است.
-Important: سیستم بصورت حیاتی به بسته نیاز ندارد، ولی قابلیتهایی پایه‌ای به سیستم اضافه می‌کند. بسیاری از بسته‌های رده Important، بعنوان بخشی از سیستم‌عامل نصب می‌شوند.
-Standard: سیستم از وجود این بسته سود خواهد برد.
-Optional: بیشتر سیستم‌ها دارای این بسته هستند.
-Extra: یا سیستم به این بسته نیازی ندارد و یا با بسته‌ای از اولویتهای بالاتر تداخل دارد. این بسته‌ها باید با مطالعه و تحقیق دقیق‌تری نصب شوند.

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

وابستگی‌های یک بسته نرم‌افزاری در فایل کنترل آن لیست شده‌اند. وابستگی‌های نرم‌افزاری نشانگر چگونگی تعامل یک بسته با یسته‌های دیگر نرم‌افزاری و کتابخانه‌های برنامه نویسی هستند.
-Depends: بسته به یسته یا بسته‌های دیگری برای عملکرد صحیح نیاز دارد. ممکن است به نسخه خاصی از یک برنامه دیگر نیاز داشته باشد. این نوع وابستگی معمولا در مورد فایلهای کتابخانه‌ای رواج دارد.
-Recommends: بسته با یک بسته دیگر بهتر کار خواهد کرد ولی به طور اساسی به آن نیازی ندارد.
-Suggests: در بیشتر موارد بسته با بسته دیگری بهتر کار خواهد کرد.
-Conflicts: بسته با یک بسته دیگر کار نخواهد کرد. دو بسته به همراه هم نباید نصب شوند زیرا یکی یا هردوی آنها از کار خواهند افتاد.
-Replaces: بسته هنگام نصب بسته یا بسته‌هایی را جایگزین خواهد کرد. تحقیق کنید که در چنین مواردی مشکلی برای سیستم‌عامل یا سایر برنامه‌ها رخ ندهد.
-Provides: بسته حاوی بسته دیگری است یا حداقل دارای همان کارکرد می‌باشد.
-Predepends: بسته به بسته دیگری برای اجرا نیاز دارد. باید بسته مورد نظر را قبل از نصب این بسته نصب کنید.

فایلهای مدیریت بسته‌های نرم‌افزاری
فایلهای مهم مدیریت بسته‌های نرم‌افزاری عبارتند از:
-فایل etc/apt/sources.list : منابع اینترنتی برای استفاده به همراه apt و gnome-apt-pkgset.
-فایلvar/state/apt/cdroms.list : لیست درایوهای CD قابل استفاده با apt.
-فایل etc/apt/apt.conf : فایل پیکربندی apt.
-فایل var/lib/dpkg/available : لیست بسته‌های موجود روی سیستم.
-فایل var/lib/dpkg/status : لیست وضعیت بسته‌های موجود روی سیستم.

وضعیت بسته‌ها (Package Statuses)
هنگامی که از ابزارهای مدیریت بسته‌ها استفاده می‌کنید، یک بسته نرم‌افزاری ممکن است دارای وضعیتهای زیر باشد:
-Config-Files: تنها فایلهای پیکربندی بسته روی سیستم وجود دارند.
-Half-configured: پیکربندی شروع شده ولی ناقص مانده است.
-Half-installed: نصب بسته شروع شده ولی ناقص مانده است.
-Installed: یسته بازشده، پیکربندی شده و نصب شده‌است.
-Not-installed: هیچ بخشی از بسته نصب نشده است.
-Unpacked: بسته باز شده‌است، ولی پیکربندی نشده است.

وضعیت‌های انتخاب (Selection States)

با توجه به اینکه شما مایلید چه کاری با یک بسته انجام دهید، آن بسته می‌تواند وضعیتهای مختلفی داشته باشد. وضعیت بسته‌ها را می‌توانید با استفاده از دستور dpkg مشاهده نمایید:
-Install: بسته برای پیکربندی و نصب انتخاب شده‌است.
-Deinstall: تمام فایل‌های بسته بجز فایل‌های پیکربندی آن برای حذف شدن انتخاب شده‌است.
-Purge: تمام فایل‌های یک بسته و حتی فایل‌های پیکربندی آن برای حذف شدن انتخاب شده‌است.
-Hold: بر روی نسخه جاری بسته، نوشته نخواهد شد.
-Unknown: بسته هنوز باز نشده است.

پرچم‌های بسته‌ها (Package Flags)
بسته‌ها ممکن است به دو صورت نشانه گذاری شده باشند. برای نمایش پرچم یک بسته می‌توانید از دستور dpkg استفاده نمایید:
-Hold: هیچکاری با بسته انجام نخواهد شد مگر اینکه گزینه force-hold همراه با apt استفاده شود.
-Reinst-required: بسته شکسته شده و نیاز به نصب مجدد دارد. امکان حذف بستته تنها با گزینه force-reinstreq همراه با apt وجود دارد.

نصب و برداشتن بسته‌ها با استفاده از فرمان apt-get

ابزار apt-get یا A Package Tool و یا Advanced Package Tool یکی از قدرتمندترین ابزارهای شناخته شده برای بسته‌های نرم‌افزاری می‌باشد. با اینکه هنوز در حال توسعه می‌باشد، می‌تواند با یک دستور سیستم شما را از طریق اینترنت بروز کرده و یا در یک حرکت کلیه بسته‌های نرم‌افزاری موجود روی سیستم شما را بروز نماید.
apt-get را می‌توانید از خط فرمان اجرا نمایید و یا در برنامه قدیمی متنی مدیریت بسته‌های dselect در دبیان، آنرا به عنوان یک منبع انتخاب کنید.
ابزار apt-get تنها یک دستور نیست، بلکه خود شامل مجموعه‌ای از دستورات است. به طوری که شما علاوه بر ارسال گزینه به آن، باید دستورات خود را نیز ارسال نمایید. نحوه استفاده از آن بصورت زیر است:


کد:
apt-get options command package_name

دستورات عمومی apt-get عبارتند از:
-install : این گزینه بسته را دریافت نموده، آنرا باز کرده و روی سیستم نصب می‌کند.
-remove: این گزینه بسته را از روی سیستمتان حذف می‌کند.
توجه داشته باشید که:
-هنگام نصب ممکن است از شما سوالاتی پرسیده شود که آنها را باید با کلیدهای y و n جواب دهید.
-برخی دستورات را می‌توانید بدون وارد کردن نام بسته ارسال نمایید. در این صورت دستور در مورد کل سیستم اعمال خواهد شد. برای مثال دستور upgrade از این دستورات است. ولی سایر دستورات نیاز دارند تا نام بسته را مشخص نمایید.
-برخی گزینه‌ها را می‌توانید همراه دستور ارسال نمایید و یا در فایل etc/apt/apt.conf تنظیم کنید. گزینه‌هایی که در فایلهای پیکربندی وارد می‌کنید، را می‌توانید با قرار دادن گزینه دیگری در خط فرمان بی اثر نمایید.

گزینه‌های دستور apt-get
-b ، --build، --compile: بسته‌های حاوی کدهای منبع را پس از دریافت کامپایل می‌کند.
d، --download-only-: بسته را دانلود می‌کند، ولی آنرا باز نخواهد کرد.
f، --fix-broken-: وابستگی‌های نرم‌افزاری مورد نیازی را که نصب نشده‌اند، نصب می‌کند.
force-yes--: یک عمل را با اعمال زور انجام می‌دهد.
Ignore-hold--: پرچم Hold یک بسته را نادیده خواهد گرفت.
m، --ignore-missing، --fix-missing-: بسته‌هایی را که وجود ندارند و یا خراب هستند را نادیده خواهد گرفت.
no-download--: از انجام دانلود جلوگیری خواهد نمود.
no-upgrade--: از ارتقا بسته‌ها جلوگیری خواهد نمود.
u، --show-upgraded-: بسته‌هایی را که ارتقا خواهند یافت، نشان می‌دهد.
y، --yes، --assume-yes-: به تمام سوالات پرسیده شده با بله جواب خواهد داد.

فرامین دستور apt-get
autoclean: فایل‌های بسته‌هایی را که امکان دانلود آنها دیگر از منابع وجود ندارد را حذف می‌کند.
check: لیست بسته‌ها را بروز کرده و برای وجود بسته‌های خراب جستجو می‌کند.
clean: لیست‌های محلی فایل‌های بسته‌های دریافتی را پاک می‌کند.
dist-upgrade: آخرین نسخه‌های تمام بسته‌های نصب شده را بهمراه وابستگی‌های نرم‌افزاری آنها را نصب خواهد نمود.
install: بسته مشخص شده را نصب می‌کند.
remove: بسته مشخص شده را حذف می‌کند.
source: کد منبع بسته مشخص شده را پیدا کرده و دانلود می‌کند.
upgrade: آخرین نسخه‌های تمام بسته‌های نصب شده روی سیستم را دریافت و نصب خواهد کرد.