
آموزش نصب پکیج ها در دبیان Debian (راهنمای جامع apt، dpkg و مخازن)
سیستم عامل دبیان (Debian) به عنوان مادر توزیع های محبوبی مثل اوبونتو، لینوکس مینت و کالی لینوکس، یکی از پایدارترین سیستم عامل های جهان برای راه اندازی سرورهای لینوکسی است. دلیل اصلی این پایداری کم نظیر، سیستم مدیریت بسته یا همان پکیج منیجر (Package Manager) بسیار دقیق آن است که تمام وابستگی ها، کتابخانه ها و فایل های پیکربندی را با نظم خاصی روی هارد دیسک مدیریت می کند.
اما کار کردن با دبیان خام (به ویژه در نسخه های Debian ۱۲ Bookworm و Debian ۱۳ Trixie) با توزیع های دسکتاپ کمی تفاوت دارد. بسیاری از مدیران سرور و برنامه نویسان در ابتدای کار با خطاهایی مثل پیدا نشدن بسته در مخازن (Unable to locate package)، قفل شدن فایل lock-frontend یا شکستن پیش نیازها هنگام نصب فایل های محلی .deb روبرو می شوند. در این راهنمای عملی از مجله فنی نگارنوین، تمامی روش های استاندارد نصب پکیج ها در دبیان، مدیریت مخازن و تکنیک های عیب یابی خط فرمان را بر اساس تجربه واقعی کار با سرور بررسی می کنیم.
تفاوت ابزارهای apt، apt-get و dpkg در معماری دبیان
وقتی وارد محیط ترمینال SSH در دبیان می شوید، با سه دستور مختلف برای مدیریت نرم افزارها روبرو هستید. شناخت تفاوت این سه ابزار به شما کمک می کند در هر سناریو، دستور درست را انتخاب کنید:
- ابزار سطح پایین dpkg: این برنامه هسته اصلی مدیریت بسته های با پسوند
.debدر دبیان است. ابزارdpkgمستقیما فایل نصبی را باز کرده و روی سیستم کپی می کند، اما به اینترنت و مخازن دسترسی ندارد؛ یعنی اگر برنامه ای برای نصب به ۳ کتابخانه دیگر نیاز داشته باشد،dpkgنمی تواند آن ها را خودش دانلود کند. - ابزار سنتی apt-get و apt-cache: این ابزارها به عنوان یک لایه هوشمند روی
dpkgساخته شدند تا به مخازن آنلاین متصل شوند، پیش نیازها را به صورت خودکار دانلود کنند و سپس نصب نهایی را بهdpkgبسپارند. امروزه ازapt-getبیشتر در داخل اسکریپت های اتوماسیون (Bash Scripts) و فایل های Dockerfile استفاده می شود چون خروجی آن همیشه ثابت است. - ابزار مدرن apt: دستور
aptترکیب بهینه شده ای از دستورات قدیمیapt-getوapt-cacheاست که مخصوص کاربری روزمره مدیران سرور در ترمینال طراحی شده است. نمایش نوار پیشرفت (Progress Bar) رنگی در پایین صفحه و خلاصه سازی واضح تغییرات، کار با آن را بسیار راحت تر کرده است.
روش اول: آموزش نصب و مدیریت پکیج ها با دستور apt (روش استاندارد)
در ۹۰ درصد مواقع، برنامه ای که به دنبال آن هستید در مخازن رسمی خود دبیان وجود دارد و امن ترین راه، نصب مستقیم آن از طریق دستور apt است.
۱. بروزرسانی فهرست مخازن (گام اجباری در سرورهای خام)
وقتی یک سرور مجازی دبیان را تازه تحویل می گیرید، کش محلی مخازن در مسیر /var/lib/apt/lists/ کاملا خالی است. اگر بلافاصله دستور نصب برنامه ای را بزنید، سیستم خطا می دهد که چنین بسته ای وجود ندارد! بنابراین همیشه اولین دستور شما باید دریافت آخرین لیست پکیج ها از سرورهای دبیان باشد:
sudo apt update۲. جستجوی نام دقیق پکیج و بررسی جزئیات آن
گاهی اوقات شما نام کلی یک ابزار را می دانید اما نام دقیق بسته نصبی آن در دبیان متفاوت است (مثلا ابزار شبکه ifconfig داخل بسته ای به نام net-tools قرار دارد). برای پیدا کردن نام دقیق بسته و مشاهده نسخه و حجم آن پیش از نصب، از دو دستور زیر استفاده کنید:
# جستجوی یک عبارت در نام و توضیحات پکیج ها
apt search htop
# مشاهده جزئیات فنی، نسخه، حجم دانلود و پیش نیازهای یک پکیج
apt show htop۳. نصب تکی و گروهی پکیج ها
پس از پیدا کردن نام بسته، می توانید یک یا چند پکیج را با قرار دادن یک فاصله بین نام آن ها نصب کنید. اضافه کردن سوییچ -y باعث می شود سیستم سوال تایید (Y/n) را نپرسد و بلافاصله نصب را انجام دهد:
sudo apt install curl git htop tmux -yنکته کاربردی برای سرورهای سبک: دبیان به صورت پیش فرض علاوه بر پیش نیازهای اصلی (Depends)، یک سری بسته های پیشنهادی (Recommends) را هم همراه برنامه نصب می کند. اگر می خواهید هارد سرور شما با پکیج های جانبی پر نشود، از سوییچ زیر استفاده کنید تا فقط فایل های ضروری نصب شوند:
sudo apt install --no-install-recommends nginx
۴. نصب مجدد (Reinstall) و ارتقای بسته ها
اگر فایل کانفیگ یا باینری یک سرویس را به اشتباه خراب کرده اید و می خواهید بدون پاک کردن کل برنامه، فایل های اصلی آن دوباره جایگزین شوند، از سوییچ --reinstall استفاده کنید. همچنین برای آپدیت کردن یک برنامه خاص یا کل سیستم عامل، دستورات زیر کاربرد دارند:
# بازگردانی و نصب مجدد فایل های یک پکیج آسیب دیده
sudo apt install --reinstall openssh-server
# آپدیت کردن فقط یک پکیج خاص بدون دست زدن به بقیه سیستم
sudo apt install --only-upgrade nginx
# ارتقای تمام پکیج های نصب شده روی سرور به آخرین نسخه
sudo apt upgrade -yروش دوم: نصب فایل های محلی .deb با دستور dpkg و رفع خطای پیش نیازها
بسیاری از نرم افزارهای تجاری یا تخصصی (مثل دیتابیس های خاص، پنل های مدیریتی، گوگل کروم یا ابزارهای مانیتورینگ) در مخازن پیش فرض دبیان قرار ندارند و شرکت سازنده، فایل نصبی آن ها را با پسوند .deb برای دانلود مستقیم ارائه می دهد.
۱. روش سنتی با dpkg و ترمیم وابستگی های شکسته
فرض کنید یک فایل با نام package.deb را با دستور wget در سرور خود دانلود کرده اید. برای نصب آن با ابزار پایه dpkg از سوییچ -i (مخفف install) استفاده می شود:
sudo dpkg -i package.debدر اغلب موارد، بعد از زدن این دستور با خطای معروف dpkg: dependency problems prevent configuration روبرو می شوید؛ زیرا همان طور که گفتیم، dpkg توانایی دانلود پیش نیازهای کسری را ندارد. در این لحظه، پکیج در حالت نیمه کاره (Unconfigured) باقی می ماند. برای اینکه دبیان به صورت خودکار به اینترنت وصل شود، پیش نیازهای جا مانده را دانلود کند و نصب آن فایل .deb را تکمیل نماید، بلافاصله دستور زیر را وارد کنید:
sudo apt --fix-broken install -y
# یا به صورت خلاصه:
sudo apt install -f -y۲. روش مدرن و حرفه ای (نصب فایل .deb مستقیما با دستور apt)
یک ترفند عالی که بسیاری از کاربران از آن بی خبرند این است که در نسخه های جدید دبیان، اصلا نیازی به استفاده از دستور دو مرحله ای dpkg -i و apt -f ندارید! شما می توانید مسیر فایل محلی .deb را مستقیما به خود دستور apt install بدهید.
تنها نکته فنی این است که حتما باید قبل از نام فایل، علامت مسیر فعلی یعنی نقطه و اسلش (./) را قرار دهید تا apt متوجه شود منظور شما یک فایل روی هارد است نه نام یک بسته در اینترنت:
sudo apt install ./package.debبا اجرای این دستور، apt ابتدا فایل محلی شما را بررسی می کند، تمام پیش نیازهای آن را از مخازن رسمی دبیان دانلود می کند و در نهایت خود فایل را بدون هیچ خطایی نصب می نماید.

مدیریت مخازن دبیان (فعال سازی بخش های contrib و non-free)
فلسفه سیستم عامل دبیان بر پایه نرم افزارهای ۱۰۰ درصد آزاد و متن باز است. به همین دلیل، در نصب اولیه دبیان فقط مخزن main فعال است. اگر بخواهید برنامه ای مثل unrar (برای باز کردن فایل های فشرده RAR)، کدک های صوتی و تصویری یا درایورهای سخت افزاری را نصب کنید، با خطای E: Package 'unrar' has no installation candidate مواجه می شوید.
برای دسترسی به تمام پکیج ها، باید دو بخش contrib و non-free (به همراه non-free-firmware در دبیان ۱۲ به بعد) را در فایل مخازن فعال کنید. فایل مخازن را با ویرایشگر نانو باز کنید:
sudo nano /etc/apt/sources.listخطوط استاندارد مخازن در دبیان ۱۲ (Bookworm) پس از اضافه کردن این بخش ها باید به شکل زیر باشند:
deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware(نکته: در دبیان ۱۲ و ۱۳ در برخی ایمیج های ابری، فایل مخازن به فرمت جدید DEB822 در مسیر /etc/apt/sources.list.d/debian.sources منتقل شده است که در آن جا هم می توانید این عبارات را جلوی ردیف Components: اضافه کنید). پس از ذخیره فایل با Ctrl+O، حتما دستور sudo apt update را اجرا نمایید.
نحوه افزودن مخازن خارجی در دبیان جدید (جایگزین دستور منسوخ شده apt-key)
اگر قصد نصب نسخه جدید نرم افزارهایی مثل Docker، Node.js یا PHP (مخزن Sury) را روی دبیان دارید، توجه داشته باشید که دستور قدیمی apt-key add به دلایل امنیتی در دبیان ۱۲ و ۱۳ به طور کامل حذف شده است. روش استاندارد امروزی، ذخیره کردن کلید GPG در پوشه /etc/apt/keyrings/ و ارجاع به آن با پارامتر signed-by است:
# ۱. ایجاد پوشه استاندارد کلیدها و دانلود کلید مخزن خارجی
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://example.com/repo-key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/custom.gpg
# ۲. معرفی مخزن به همراه مسیر کلید اختصاصی آن
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/custom.gpg] https://example.com/debian bookworm main" | sudo tee /etc/apt/sources.list.d/custom.list
# ۳. بروزرسانی لیست و نصب پکیج
sudo apt updateحذف اصولی پکیج ها، پاکسازی کش و قفل کردن نسخه نرم افزار
مدیریت پکیج در سرور فقط به نصب کردن خلاصه نمی شود؛ گاهی لازم است یک سرویس را به طور کامل با تمام تنظیماتش پاک کنید و یا برعکس، جلوی آپدیت شدن ناخواسته یک سرویس حساس را بگیرید.
تفاوت remove و purge در حذف پکیج ها
وقتی دستور sudo apt remove nginx را می زنید، فایل های اجرایی برنامه پاک می شوند اما فایل های کانفیگ داخل پوشه /etc/nginx دست نخورده باقی می مانند. اگر می خواهید برنامه به همراه تمام فایل های تنظیمات و لاگ هایش از ریشه حذف شود و همچنین کتابخانه های اضافی که دیگر هیچ برنامه ای به آن ها نیاز ندارد پاک شوند، از ترکیب زیر استفاده کنید:
# حذف کامل پکیج به همراه تمام فایل های کانفیگ آن
sudo apt purge nginx -y
# حذف کتابخانه های یتیم و بدون استفاده (Orphaned Packages)
sudo apt autoremove --purge -y
# خالی کردن پوشه کش فایل های دانلود شده در /var/cache/apt/archives
sudo apt cleanقفل کردن نسخه یک پکیج خاص با دستور apt-mark hold
به عنوان مدیر سرور، فرض کنید نسخه خاصی از دیتابیس MariaDB، داکر یا کرنل لینوکس را روی سرور کانفیگ کرده اید و نمی خواهید وقتی دستور کلی apt upgrade را می زنید، این بسته خاص آپدیت شود و سازگاری پروژه شما به هم بریزد. برای قفل کردن نسخه یک پکیج، از ابزار apt-mark استفاده کنید:
# قفل کردن پکیج برای جلوگیری از آپدیت خودکار
sudo apt-mark hold mariadb-server
# مشاهده لیست تمام پکیج هایی که در حال حاضر قفل شده اند
apt-mark showhold
# خارج کردن پکیج از حالت قفل در صورت نیاز به آپدیت
sudo apt-mark unhold mariadb-serverجدول خلاصه دستورات مدیریت پکیج در دبیان
در جدول زیر، پرکاربردترین دستورات مدیریت بسته در توزیع دبیان به صورت مقایسه ای گردآوری شده اند:
| عملیات مورد نظر در سرور | دستور استاندارد در ترمینال | توضیحات فنی |
|---|---|---|
| بروزرسانی لیست مخازن | sudo apt update | دانلود آخرین ایندکس بسته ها از فایل sources.list |
| نصب پکیج از مخزن یا فایل محلی | sudo apt install pkg_name | برای فایل محلی از فرمت ./file.deb استفاده شود |
| مشاهده لیست پکیج های نصب شده | apt list --installed (یا dpkg -l) | قابل ترکیب با دستور grep برای یافتن یک بسته خاص |
| مشاهده فایل های داخل یک پکیج | dpkg -L package_name | نشان می دهد پکیج در کدام پوشه های لینوکس فایل کپی کرده است |
| ترمیم نصب های ناقص و وابستگی ها | sudo apt --fix-broken install | رفع خطای پیش نیازها پس از اجرای دستور dpkg -i |
| حذف کامل پکیج و وابستگی های اضافی | sudo apt autopurge pkg_name | ترکیب همزمان دستورات purge و autoremove |
عیب یابی ۳ خطای رایج هنگام نصب پکیج در دبیان
در محیط عملیاتی سرور، گاهی فرآیند نصب با خطا متوقف می شود. در ادامه، روش اصولی رفع سه مورد از پرتکرارترین ارورهای دبیان را مرور می کنیم:
۱. رفع خطای Could not get lock /var/lib/dpkg/lock-frontend
این خطا زمانی رخ می دهد که یا یک پروسه آپدیت خودکار در پس زمینه دبیان (سرویس unattended-upgrades) در حال کار است، و یا نشست قبلی SSH شما در حین نصب قطع شده و فایل قفل (Lock) باز مانده است.
راه حل اصولی: هرگز در ثانیه اول فایل های lock را با دستور rm پاک نکنید؛ چون اگر واقعا برنامه ای در حال نوشتن روی دیتابیس dpkg باشد، سیستم عامل آسیب می بیند. ابتدا با دستور زیر چک کنید که آیا پروسه ای فعال است یا خیر:
ps aux | grep -i aptاگر هیچ پروسه فعالی وجود نداشت و سیستم قفل مانده بود، با دستورات زیر قفل را آزاد کرده و دیتابیس بسته ها را بازسازی کنید:
sudo rm -f /var/lib/dpkg/lock-frontend /var/lib/dpkg/lock /var/cache/apt/archives/lock
sudo dpkg --configure -a۲. پیدا کردن اینکه یک فایل یا دستور خاص در کدام پکیج قرار دارد (ابزار apt-file)
گاهی اوقات هنگام کامپایل یک برنامه یا اجرای یک اسکریپت با خطایی روبرو می شوید که می گوید فایل هدر یا دستور خاصی (مثلا nslookup یا add-apt-repository) روی سیستم یافت نشد، اما نمی دانید این دستور کوچک داخل کدام پکیج دبیان بسته بندی شده است! برای حل این مشکل، ابزار فوق العاده apt-file را نصب کنید:
sudo apt install apt-file -y
sudo apt-file update
# جستجو کردن اینکه دستور nslookup داخل کدام پکیج است
apt-file search bin/nslookup
# خروجی: dnsutils: /usr/bin/nslookup۳. خطای عدم دسترسی به مخازن یا کندی شدید دانلود در سرورهای داخل ایران
اگر هنگام زدن دستور apt update با خطای Temporary failure resolving 'deb.debian.org' یا تایم اوت مواجه شدید، ابتدا فایل /etc/resolv.conf سرور را بررسی کنید و از تنظیم بودن DNS های معتبر مطمئن شوید. همچنین اگر روی سرور نیاز به دانلود پکیج هایی دارید که روی آی پی ایران محدود شده اند، استفاده از سرویس های رفع تحریم DNS یا تنظیم پروکسی موقت برای apt (از طریق ایجاد فایل در مسیر /etc/apt/apt.conf.d/proxy.conf) مشکل را برطرف می کند.
عملکرد سریع پکیج منیجر در سرورهای مجازی دبیان نگارنوین
فرآیند دانلود، باز کردن فایل های فشرده (Unpacking) و پیکربندی پکیج ها در دبیان به دو عامل زیرساختی وابسته است: پهنای باند شبکه سرور در ارتباط با مخازن جهانی و سرعت خواندن و نوشتن تصادفی (IOPS) روی دیسک. روی سرورهایی که از هاردهای قدیمی یا شبکه های پر نوسان استفاده می کنند، اجرای یک دستور ساده apt upgrade می تواند دقایق طولانی در مرحله Unpacking متوقف بماند.
در زیرساخت ابری نگارنوین، سرورهای مجازی و اختصاصی لینوکس با آخرین نسخه های رسمی Debian ۱۲ و ۱۳ بر بستر دیسک های Enterprise NVMe و پورت های شبکه پرسرعت عرضه می شوند. این معماری باعث می شود دانلود پیش نیازهای سنگین (مانند ایمیج های داکر، کتابخانه های پایتون و کامپایلرها) و استخراج آن ها توسط dpkg در چند ثانیه انجام شود تا زمان شما در محیط ترمینال تلف نشود.
سوالات متداول کاربران (FAQ)
۱. تفاوت دستور apt upgrade با دستور apt full-upgrade در دبیان چیست؟
دستور apt upgrade بسیار محافظه کار است؛ این دستور پکیج های فعلی را آپدیت می کند اما هرگز برای آپدیت کردن یک برنامه، پکیج دیگری را از روی سیستم حذف نمی کند. در مقابل، دستور apt full-upgrade (معادل apt-get dist-upgrade قدیمی) در صورتی که نسخه جدید یک نرم افزار یا کرنل نیازمند حذف کتابخانه های قدیمی و جایگزینی آن ها با بسته های جدید باشد، این کار را به صورت هوشمند انجام می دهد.
۲. چگونه یک فایل .deb را فقط دانلود کنیم بدون اینکه روی سیستم نصب شود؟
اگر می خواهید فایل نصبی یک برنامه را از مخازن رسمی دبیان دانلود کنید تا آن را به یک سرور آفلاین دیگر منتقل نمایید، کافی است از دستور apt download package_name استفاده کنید. با این کار، فایل .deb مستقیما در پوشه فعلی شما ذخیره می شود.
۳. آیا می توانیم پکیج های جدیدتر را بدون ارتقای کل دبیان نصب کنیم (مخزن Backports)؟
بله. از آنجایی که دبیان به خاطر حفظ پایداری، نسخه نرم افزارها را در طول عمر هر توزیع ثابت نگه می دارد، گاهی ممکن است به نسخه جدیدتری از کرنل یا یک برنامه خاص نیاز داشته باشید. برای این کار می توانید خط مربوط به مخزن رسمی bookworm-backports را به فایل sources.list اضافه کنید و با دستور sudo apt -t bookworm-backports install package_name فقط همان برنامه را از مخزن جدیدتر نصب نمایید.
جمع بندی
مدیریت اصولی بسته ها در دبیان بر پایه درک صحیح ابزار apt برای ارتباط با مخازن آنلاین و ابزار dpkg برای کنترل بسته های محلی استوار است. با فعال سازی بخش های contrib و non-free در فایل مخازن، استفاده از فرمت sudo apt install ./file.deb برای نصب بی دردسر فایل های دانلودی و به کارگیری apt-mark hold برای محافظت از سرویس های حساس، می توانید سرور دبیان خود را بدون کوچک ترین تداخلی مدیریت کنید. اگر در نصب پکیج خاصی روی سرور دبیان با خطای وابستگی یا مخزن روبرو شده اید، متن خطا را در بخش نظرات بنویسید تا راه حل دقیق آن را بررسی کنیم.
منبع آموزشی: نگارنوین ( negarnovin.com )
آموزش نصب پکیج ها در debian دبیان — نگارنوین (https://negarnovin.com/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%d9%86%d8%b5%d8%a8-%d9%be%da%a9%db%8c%d8%ac-%d9%87%d8%a7-%d8%af%d8%b1-debian-%d8%af%d8%a8%db%8c%d8%a7%d9%86/)، آخرین بهروزرسانی 2026-10-30