</>

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

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

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

Command Palette

Search for a command to run...

مخازن Debian

ساختار مخازن Debian، پیکربندی sources.list، دسته‌های main/contrib/non-free، Backports، Security و افزودن مخازن شخصی.

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

مخازن (Repositories) منابعی هستند که APT از آن‌ها بسته‌ها را دریافت می‌کند. در این آموزش، ساختار مخازن Debian، نحوهٔ پیکربندی sources.list و افزودن مخازن اضافی را به‌طور کامل بررسی می‌کنیم.

مخازن رسمی Debian#

مخزن رسمی Debian در deb.debian.org قرار دارد و چندین mirror آن در سراسر جهان موجود است:

آدرسنوعتوضیح
http://deb.debian.org/debianاصلیمخزن اصلی با mirror خودکار
http://security.debian.org/debian-securityامنیتیبه‌روزرسانی‌های امنیتی
http://deb.debian.org/debianBackportsنرم‌افزار جدیدتر برای Stable

deb.debian.org بهترین گزینه

آدرس deb.debian.org به‌صورت خودکار به نزدیک‌ترین mirror جغرافیایی هدایت می‌شود. نیازی به انتخاب mirror دستی نیست.

فایل sources.list#

فایل پیکربندی مخازن در /etc/apt/sources.list قرار دارد. محتوای پیش‌فرض Debian 12 (Bookworm):

# مشاهدهٔ محتوای فعلی sources.list
cat /etc/apt/sources.list
 
# خروجی پیش‌فرض Debian 12:
# deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
# deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
# deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
# deb-src http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware

ساختار خط مخزن

هر خط مخزن با deb (باینری) یا deb-src (سورس) شروع می‌شود. سپس آدرس مخزن، نسخه (suite) و دسته‌ها (components) قرار می‌گیرند:

deb URL suite component1 component2 ...

مثال: deb http://deb.debian.org/debian bookworm main contrib non-free

از نسخهٔ ۱۲ به بعد: فرمت deb822#

در Debian 12 به بعد، فایل جدیدی به‌نام /etc/apt/sources.list.d/debian.sources با فرمت deb822 معرفی شده است:

# /etc/apt/sources.list.d/debian.sources
Types: deb deb-src
URIs: http://deb.debian.org/debian
Suites: bookworm bookworm-updates bookworm-backports
Components: main contrib non-free non-free-firmware
 
Types: deb deb-src
URIs: http://security.debian.org/debian-security
Suites: bookworm-security
Components: main contrib non-free non-free-firmware

مزایای فرمت deb822:

  • خوانایی بهتر
  • امکان گروه‌بندی چند suite در یک بلوک
  • پشتیبانی از signed-by و سایر گزینه‌ها

دسته‌های بسته‌ها (Components)#

هر مخزن Debian شامل چندین دسته است:

دستهتوضیحمثال
mainبسته‌های آزاد منطبق با DFSGnmap, vim, apache2
contribبسته‌های آزاد که به بسته‌های غیرآزاد وابسته‌اندبرخی درایورها
non-freeبسته‌های غیرآزادfirmware-iwlwifi, nvidia-driver
non-free-firmwareفریم‌ورهای غیرآزاد برای سخت‌افزارfirmware-realtek, firmware-misc-nonfree

تفاوت non-free و non-free-firmware

از Debian 12 به بعد، فریم‌ورهای غیرآزاد به دستهٔ جداگانه‌ای به نام non-free-firmware منتقل شدند. این کار به این دلیل انجام شد که فریم‌ورها برای کارکرد سخت‌افزار ضروری‌اند و باید به‌طور پیش‌فرض فعال باشند، در حالی که بسته‌های non-free اختیاری‌تر هستند.

مخزن Backports#

Backports شامل بسته‌هایی است که از Testing یا Unstable برای Stable بازکامپایل شده‌اند. این مخزن برای دسترسی به نرم‌افزار جدیدتر بدون ترک Stable مناسب است:

# افزودن backports به sources.list
deb http://deb.debian.org/debian bookworm-backports main contrib
# نصب بسته از backports
sudo apt update
sudo apt install -t bookworm-backports linux-image-amd64
 
# یا با اولویت پایین‌تر
sudo apt install -t bookworm-backports blender

Backports امن است

بسته‌های Backports به‌صورت رسمی توسط تیم Debian پشتیبانی می‌شوند و پایداری Stable را حفظ می‌کنند. اما همیشه آخرین نسخه را ندارند؛ نسخه‌ای ارائه می‌شود که کاربران درخواست داده‌اند.

مخزن Security#

به‌روزرسانی‌های امنیتی در مخزن جداگانه‌ای نگهداری می‌شوند:

deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware

این مخزن به‌محض انتشار به‌روزرسانی امنیتی، فعال می‌شود و نیازی به انتظار برای نسخهٔ Stable بعدی نیست.

فعال‌سازی Source Packages#

برای دریافت سورس بسته‌ها (مثلاً برای کامپایل یا بررسی کد):

# فعال‌سازی deb-src (حذف علامت کامنت)
sudo sed -i 's/^# deb-src/deb-src/' /etc/apt/sources.list
 
# به‌روزرسانی
sudo apt update
 
# دانلود سورس یک بسته
apt source nmap

مدیریت کلیدهای مخزن#

Debian از کلید GPG برای امضای بسته‌ها استفاده می‌کند. کلیدها در /etc/apt/trusted.gpg.d/ و /etc/apt/keyrings/ نگهداری می‌شوند:

# نمایش کلیدهای نصب‌شده
ls /etc/apt/trusted.gpg.d/
# خروجی:
# debian-archive-bookworm-automatic.gpg
# debian-archive-bookworm-security-automatic.gpg
# debian-archive-bookworm-stable.gpg
 
# نصب مجدد کلید رسمی Debian
sudo apt install -y debian-archive-keyring

افزودن کلید مخزن شخصی (روش صحیح)#

# ساخت دایرکتوری keyrings
sudo install -d /etc/apt/keyrings
 
# دریافت کلید (مثلاً برای Docker)
curl -fsSL https://download.docker.com/linux/debian/gpg | \
  sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
 
# افزودن مخزن با ارجاع به کلید
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list
 
# به‌روزرسانی
sudo apt update

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

apt-key add در نسخه‌های اخیر منسوخ شده و ممکن است در آینده حذف شود. همیشه از روش signed-by با کلید در /etc/apt/keyrings/ استفاده کنید. این روش امن‌تر است چون کلید فقط برای آن مخزن خاص اعتبار دارد.

افزودن مخزن شخصی (محلی)#

برای نصب بسته‌های محلی یا آزمایشی، می‌توانید مخزن شخصی بسازید:

# ساخت دایرکتوری مخزن
sudo mkdir -p /opt/local-repo
 
# کپی بسته‌های .deb
sudo cp my-package.deb /opt/local-repo/
 
# ساخت Packages index
cd /opt/local-repo
sudo dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
 
# افزودن به sources.list
echo "deb [trusted=yes] file:///opt/local-repo ./" | \
  sudo tee /etc/apt/sources.list.d/local.list
 
# به‌روزرسانی
sudo apt update

بررسی نسخهٔ بسته و mirror#

# مشاهدهٔ mirror استفاده‌شده برای هر بسته
apt-cache policy nmap
 
# خروجی:
# nmap:
#   Installed: 7.93+git20240122-1
#   Candidate: 7.93+git20240122-1
#   Version table:
#  *** 7.93+git20240122-1 500
#         500 http://deb.debian.org/debian bookworm/main amd64 Packages
#         100 /var/lib/dpkg/status
#      7.94+git20240122-1~bpo12+1 100
#         100 http://deb.debian.org/debian bookworm-backports/main amd64 Packages

تست اتصال به mirror#

# تست اتصال به مخزن
curl -I http://deb.debian.org/debian/dists/bookworm/InRelease
 
# در صورت عدم اتصال، DNS را بررسی کنید
nslookup deb.debian.org
 
# تغییر mirror
sudo sed -i 's|deb.debian.org|ftp.de.debian.org|g' /etc/apt/sources.list
sudo apt update

خطاهای رایج#

۱. NO_PUBKEY#

مشکل: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 0E98404D386FA1D9.

راه‌حل:

# نصب مجدد keyring رسمی
sudo apt install -y debian-archive-keyring
 
# یا وارد کردن کلید دستی (روش قدیمی)
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0E98404D386FA1D9
 
# روش جدید با gpg
sudo gpg --keyserver keyserver.ubuntu.com --recv-keys 0E98404D386FA1D9
sudo gpg --export 0E98404D386FA1D9 | sudo tee /etc/apt/trusted.gpg.d/debian.gpg > /dev/null

۲. Hash Sum mismatch#

مشکل: Hash Sum mismatch هنگام apt update.

راه‌حل:

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

۳. Repository is not signed#

مشکل: The repository 'xxx' is not signed.

راه‌حل: برای مخازن رسمی، کلید را نصب کنید. برای مخازن شخصی، گزینهٔ trusted=yes در خط مخزن اضافه کنید:

deb [trusted=yes] file:///opt/local-repo ./

هرگز مخازن غیررسمی را اعتماد نکنید

استفاده از trusted=yes برای مخازن ناشناس خطرناک است؛ زیرا APT دیگر امضای بسته‌ها را بررسی نمی‌کند. تنها برای مخازن محلی شخصی از این گزینه استفاده کنید.

۴. Failed to fetch#

مشکل: Failed to fetch http://deb.debian.org/debian/....

راه‌حل:

# تست اتصال
ping -c 3 deb.debian.org
 
# بررسی DNS
nslookup deb.debian.org
 
# تغییر mirror
sudo sed -i 's|deb.debian.org|ftp.fr.debian.org|g' /etc/apt/sources.list
sudo apt update

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

مخازن Debian به‌صورت پیش‌فرض پیکربندی شده‌اند و برای اکثر کاربران نیازی به تغییر ندارند. اما برای کاربران پیشرفته، امکان اضافه کردن Backports، مخازن شخصی و مخازن شخص ثالث وجود دارد. همیشه از روش signed-by برای افزودن کلیدهای شخص ثالث استفاده کنید.

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

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

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