مخازن Parrot OS
ساختار مخازن Parrot، پیکربندی sources.list و مدیریت مخازن شخصی و third-party.
مخازن (Repositories) سرورهایی هستند که بستههای نرمافزاری را برای دانلود در اختیار APT قرار میدهند. در این آموزش، ساختار مخازن Parrot OS را بررسی میکنیم و روش پیکربندی و افزودن مخازن جدید را یاد میگیرید.
ساختار مخازن Parrot
Parrot OS از دو نوع مخزن استفاده میکند:
۱. مخازن Parrot (اختصاصی)
مخازن رسمی Parrot که ابزارهای امنیتی، پیکربندیهای خاص و بستههای اختیاری Parrot را نگه میدارند. این مخازن در deb.parrot.sh میزبانی میشوند.
۲. مخازن Debian (پایه)
مخازن Debian Testing که اکثر بستههای استاندارد لینوکس را فراهم میکنند. Parrot از این مخازن بهعنوان پایه استفاده میکند و بستههای خود را روی آن میسازد.
نام مستعار Parrot
هر نسخهٔ Parrot یک نام مستعار دارد (مانند lory یا lorikeet). این نام در فایل sources.list استفاده میشود تا با نسخهٔ Debian Testing هماهنگ باشد.
فایل sources.list
تنظیمات مخازن Parrot در فایل /etc/apt/sources.list.d/parrot.list قرار دارد:
# مشاهدهٔ فایل sources.list
cat /etc/apt/sources.list.d/parrot.listمحتوای نمونه:
deb https://deb.parrot.sh/parrot/ lory main contrib non-free non-free-firmware
deb https://deb.parrot.sh/parrot/ lory-security main contrib non-free non-free-firmware
deb https://deb.parrot.sh/parrot/ lory-backports main contrib non-free non-free-firmwareاجزای مخزن
هر خط مخزن شامل اجزای زیر است:
| جزء | توضیح |
|---|---|
deb | بستههای باینری |
deb-src | بستههای سورس |
https://deb.parrot.sh/parrot/ | آدرس مخزن |
lory | نام نسخه (کد نام Parrot) |
main | بستههای اصلی (DFSG-compliant) |
contrib | بستههای آزاد با وابستگی غیرآزاد |
non-free | بستههای غیرآزاد |
non-free-firmware | فریمورهای غیرآزاد |
شاخههای مخزن
| شاخه | توضیح |
|---|---|
lory | مخزن اصلی Parrot |
lory-security | بهروزرسانیهای امنیتی فوری |
lory-updates | بهروزرسانیهای معمولی |
lory-backports | نسخههای جدیدتر از شاخهٔ testing |
افزودن مخزن جدید
روش ۱: ویرایش مستقیم فایل
# باز کردن فایل parrot.list با ویرایشگر
sudo nano /etc/apt/sources.list.d/parrot.list
# افزودن یک خط جدید، مثلاً مخزن Docker
# deb [arch=amd64] https://download.docker.com/linux/debian trieste stableروش ۲: استفاده از add-apt-repository
# نصب بستهٔ لازم
sudo apt install software-properties-common
# افزودن مخزن PPA
sudo add-apt-repository ppa:user/ppa-name
# حذف مخزن
sudo add-apt-repository --remove ppa:user/ppa-nameروش ۳: فایل .list جداگانه
بهترین روش برای مخازن third-party، ایجاد فایل جداگانه است:
# ایجاد فایل جداگانه برای Docker
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian trieste stable" | sudo tee /etc/apt/sources.list.d/docker.list
# بهروزرسانی فهرست
sudo apt updateمراقب مخازن ناشناس باشید
افزودن مخازن third-party میتواند امنیت سیستم را بهخطر بیندازد. تنها مخازن معتبر و شناختهشده را اضافه کنید و همیشه کلید GPG آنها را تأیید کنید.
مدیریت کلیدهای GPG
هر مخزن باید با کلید GPG امضا شود تا APT اصالت بستهها را تأیید کند.
روش قدیمی (apt-key)
# دریافت و افزودن کلید (روش قدیمی)
wget -q -O - https://example.com/key.gpg | sudo apt-key add -روش جدید (signed-by)
روش توصیهشده در Parrot 6 و Debian جدیدتر:
# دانلود کلید و ذخیره در keyring
curl -fsSL https://example.com/key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/example-archive-keyring.gpg
# افزودن مخزن با ارجاع به کلید
echo "deb [signed-by=/usr/share/keyrings/example-archive-keyring.gpg] https://example.com/debian stable main" | sudo tee /etc/apt/sources.list.d/example.listتغییر mirror مخزن
اگر سرور رسمی Parrot کند است، میتوانید از mirror دیگری استفاده کنید:
# لیست mirrorهای رسمی
# https://mirrors.parrotsec.org/
# تغییر mirror به mirror آلمانی
sudo sed -i 's|deb.parrot.sh|parrot.mirror.garr.it|g' /etc/apt/sources.list.d/parrot.list
# بهروزرسانی
sudo apt updateانتخاب mirror نزدیک
برای سرعت بهتر، mirror جغرافیایی نزدیک به خود را انتخاب کنید. mirror اروپایی برای کاربران خاورمیانه معمولاً سریعتر است.
جدول mirrorهای رسمی Parrot
| Mirror | کشور | آدرس |
|---|---|---|
| Official | جهانی | deb.parrot.sh |
| GARR | ایتالیا | parrot.mirror.garr.it |
| Yamato | ژاپن | ftp.yz.yamagata-u.ac.jp |
| switch | سوئیس | mirror.switch.ch |
پین کردن بسته (APT Pinning)
گاهی میخواهید بستهای را از مخزن خاصی نصب کنید بدون اینکه کل مخزن فعال شود. این کار با apt pinning انجام میشود:
# ایجاد فایل پین
sudo nano /etc/apt/preferences.d/docker
# محتوا:
# Package: docker*
# Pin: origin download.docker.com
# Pin-Priority: 700| اولویت | رفتار |
|---|---|
> 1000 | نصب نسخههای قدیمیتر هم ممکن است |
990-1000 | اولویت پیشفرض برای نصب |
100-500 | نصب فقط اگر نسخهای نصب نباشد |
< 0 | نصب ممنوع |
< -1 | نصب ممنوع حتی اگر نصب شده باشد |
خطاهای رایج
خطای NO_PUBKEY
W: An error occurred during the signature verification.
GPG error: https://example.com stable InRelease: NO_PUBKEY ABC123DEF456راهحل:
# دریافت کلید گمشده
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ABC123DEF456
# یا روش جدید
gpg --keyserver keyserver.ubuntu.com --recv-keys ABC123DEF456
gpg --export ABC123DEF456 | sudo tee /usr/share/keyrings/example.gpg > /dev/nullخطای 404 در مخزن
E: The repository 'https://deb.parrot.sh/parrot lory Release' does not have a Release file.راهحل:
# بررسی نام نسخه
cat /etc/os-release | grep VERSION_CODENAME
# اصلاح sources.list با نام صحیح
sudo nano /etc/apt/sources.list.d/parrot.list
sudo apt updateمخزن غیرامن (insecure)
W: Conflicting distribution: https://example.com stable InRelease (expected stable but got oldstable)راهحل: نام نسخه را در sources.list اصلاح کنید یا مخزن را حذف کنید.
خطای Duplicate source
W: Target Packages is configured multiple times in /etc/apt/sources.list.d/parrot.list:1 and /etc/apt/sources.list:5راهحل: خط تکراری را از یکی از فایلها حذف کنید:
# مشاهدهٔ خطوط تکراری
grep -rn "deb.parrot.sh" /etc/apt/sources.list /etc/apt/sources.list.d/خلاصه و مرحلهٔ بعد
مخازن Parrot از پایهٔ Debian Testing و بستههای اختصاصی Parrot تشکیل شدهاند. با درک ساختار sources.list و نحوهٔ افزودن مخازن و کلیدهای GPG، میتوانید سیستم خود را با نرمافزارهای موردنیاز گسترش دهید.
بهعنوان گام بعدی:
- آموزش APT و مدیریت بسته را برای یادگیری دستورات APT ببینید
- آموزش بهروزرسانی سیستم را برای روتین نگهداری دنبال کنید
- آموزش عیبیابی را برای حل مشکلات APT بخوانید
این صفحه در تاریخ ۵ تیر ۱۴۰۵ بهروزرسانی شده است.