dacker

پرسش‌های رایج دربارهٔ مخزن dacker

dacker چیست، چقدر قابل اعتماد است، چه چیزی را پوشش نمی‌دهد، و رفع مشکل‌های رایج مثل ماژول‌های EL 8.

dacker دقیقاً چیست؟

یک مخزن apt و dnf داخل ایران برای بسته‌های شخص ثالث؛ همان بسته‌هایی که مخزن اصلی‌شان از ایران 403 می‌دهد یا خیلی کند است (Docker، Kubernetes، PostgreSQL، HashiCorp و…). مخزن را یک بار اضافه می‌کنید و بعد apt install و dnf install معمولی با سرعت داخلی کار می‌کند.

بسته‌های خود Ubuntu یا AlmaLinux را هم دارد؟

نه. بسته‌های پایهٔ توزیع (مثل glibc، openssl یا python3 پیش‌فرض) همچنان از mirrorهای معمولی و داخلی Ubuntu و AlmaLinux/Rocky نصب می‌شوند. dacker فقط بسته‌هایی را دارد که در آن mirrorها نیستند.

از کجا بدانم بسته‌ها دست‌کاری نشده‌اند؟

  • روی Ubuntu فهرست‌های مخزن با کلید dacker امضا می‌شوند و فایل منبع فقط به همان کلید اعتماد می‌کند (signed-by).
  • روی EL بسته‌ها امضای سازندهٔ اصلی را دارند و dnf با gpgcheck=1 آن را بررسی می‌کند.

اثر انگشت کلید و روش بررسی‌اش در صفحهٔ کلید امضا آمده است.

کدام توزیع‌ها پشتیبانی می‌شوند؟

Ubuntu 24.04 و 22.04، AlmaLinux / Rocky / RHEL 9 و 8 (CentOS Stream 9 از مخزن‌های EL 9 استفاده می‌کند) و CentOS 7 به‌صورت best-effort. فقط معماری x86_64 (amd64). Debian، Ubuntu 20.04 و ARM پشتیبانی نمی‌شوند.

«N/A» و «—» در جدول‌ها یعنی چه؟

  • N/A یعنی سازنده آن نسخه را برای آن توزیع منتشر نمی‌کند یا ساختنش ممکن نیست (مثلاً چون glibc توزیع قدیمی است). دلیل دقیق در صفحهٔ همان محصول آمده.
  • — یعنی آن محصول اصلاً برای آن خانوادهٔ توزیع ارائه نمی‌شود (مثلاً Helm فقط برای Ubuntu).

مخزن هر چند وقت به‌روز می‌شود؟

تقریباً ماهی یک بار. تاریخ آخرین همگام‌سازی پایین صفحهٔ اصلی و در صفحهٔ تغییرات هست. اگر از آخرین همگام‌سازی بیش از ۴۵ روز گذشته باشد، سایت هشدار می‌دهد.

روی EL 8، dnf بسته را پیدا نمی‌کند یا «filtered out by modular filtering» می‌گوید

EL 8 برای بعضی نرم‌افزارها (مثل nginx، PHP، Node.js، MariaDB، MySQL و PostgreSQL) «ماژول» دارد و dnf بسته‌های هم‌نامِ مخزن‌های دیگر را کنار می‌گذارد. فایل‌های .repo مخزن dacker گزینهٔ module_hotfixes=1 را دارند که معمولاً همین مشکل را برطرف می‌کند. اگر باز هم خطا گرفتید، ماژول توزیع را برای همان نرم‌افزار غیرفعال کنید و دوباره نصب کنید:

bash
sudo dnf module list --enabledsudo dnf module disable nginx

به‌جای nginx نام ماژولی را بگذارید که در خروجی دستور اول دیدید و با بستهٔ موردنظرتان هم‌نام است (مثلاً php، nodejs، mariadb، mysql یا postgresql).

imageهای Docker را هم دارد؟

نه. dacker فقط بستهٔ apt و dnf دارد. برای docker pull، راهنمای رفع 403 در docker pull را ببینید.

چطور مخزن را حذف کنم؟

روی Ubuntu فایل منبع محصول و، اگر دیگر هیچ مخزن dacker را لازم ندارید، کلید را پاک کنید:

bash
sudo rm /etc/apt/sources.list.d/dacker-docker.sources /etc/apt/sources.list.d/dacker-docker.listsudo rm /usr/share/keyrings/dacker.gpgsudo apt update

روی EL فایل .repo همان محصول را پاک کنید:

bash
sudo rm /etc/yum.repos.d/dacker-docker.repo

به‌جای docker نام مخزن محصول خودتان را بگذارید. بسته‌های نصب‌شده سر جایشان می‌مانند.