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


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

در پی بروز اختلالات گسترده در اتصال به اینترنت بین‌الملل به‌دلیل شرایط بحرانی کشور، استفاده از میرورهای داخلی جهت دسترسی به مخازن نرم‌افزاری جهانی یک راهکار حیاتی و عملیاتی است. این مقاله نحوه پیکربندی و استفاده از میرورهای مطرح داخلی برای زبان‌ها و ابزارهای توسعه مختلف را شرح می‌دهد تا بدون وابستگی به ارتباطات خارجی، پروژه‌ها و چرخه‌های CI/CD به‌طور پایدار ادامه یابند.
  1. مخزن داکر
  2. مخزن Node.js (npm)
  3. مخزن پایتون (pip - PyPI)
  4. مخزن PHP (Composer)
  5. مخزن Golang
  6. مخزن دات‌نت (NuGet)
  7. مخزن جاوا (Maven)

با توجه به وضعیت فعلی و محدودیت‌های دسترسی به اینترنت آزاد که طبق گزارش نت‌بلاکس به حدود 2 درصد رسیده است، بسیاری از سرویس‌های پایه برای توسعه‌دهندگان نظیر Docker Hub، npm، PyPI و سایر مخازن به‌شدت دچار اختلال شده‌اند. این مشکلات، روند توسعه نرم‌افزار، استقرار سرویس‌ها و ادغام مداوم (CI/CD) را به مخاطره انداخته است. استفاده از میرورهای داخلی باعث می‌شود تا درخواست‌ها به‌جای اینترنت بین‌الملل به زیرساخت‌های پایدار در داخل کشور ارجاع داده شوند و وابستگی به اینترنت محدود حذف شود.

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

1. مخزن داکر

دسترسی به ایمیج‌های داکر برای استقرار سرویس‌ها بسیار حیاتی است. میرور داکر پارس‌پک از طریق ایجاد یک Endpoint داخلی امکان دانلود سریع و پایدار ایمیج‌ها بدون نیاز به ارتباط مستقیم با Docker Hub را فراهم می‌کند.

تنظیم میرور داکر روی سیستم

برای هدایت درخواست‌های داکر به مخزن داخلی، فایل daemon.json را ایجاد یا ویرایش کنید:

sudo bash -c 'cat > /etc/docker/daemon.json < {
  "registry-mirrors": ["https://docker.abrha.net"]
}
EOF'

پس از ذخیره، برای اعمال تنظیمات سرویس داکر را ری‌استارت کنید:

docker logout
sudo systemctl restart docker

اکنون می‌توانید ایمیج‌های داکر را با دستور زیر دریافت کنید:

docker pull

اگر می‌خواهید بدون تغییر در تنظیمات سرویس داکر از میرور استفاده کنید، کافی است دستور زیر را اجرا نمایید:

docker pull docker.abrha.net/

2. مخزن Node.js (npm)

در شرایط اختلال شبکه، نصب پکیج‌های Node.js می‌تواند خطاهای تایم‌اوت ایجاد کند. میرور npm پارس‌پک امکان دریافت پکیج‌ها را با سرعت بالا و بدون وابستگی به اینترنت بین‌الملل فراهم می‌کند.

تنظیم میرورهای npm

برای نصب یک پکیج به صورت موقت با استفاده از میرور داخلی، می‌توانید از فلگ --registry استفاده کنید:

npm install express --registry="https://mirror.abrha.net/repository/npm/"

برای هدایت دائمی و سراسری تمامی درخواست‌های npm در سیستم‌های ویندوز، مک و لینوکس، دستور زیر را اجرا نمایید:

npm config --global set registry https://mirror.abrha.net/repository/npm/

در ادامه می‌توانید با اجرای npm install به‌صورت عادی از میرور داخلی بهره‌مند شوید.

برای بررسی آدرس رجیستری فعلی می‌توانید از دستور زیر استفاده کنید و در صورت نیاز با دستور دیگری به تنظیمات پیش‌فرض بازگردید:

npm config get registry
npm config --global delete registry

3. مخزن پایتون (pip - PyPI)

توسعه‌دهندگان پایتون برای دانلود کتابخانه‌ها از PyPI، می‌توانند با تنظیم میرور داخلی، محدودیت‌های شبکه را دور بزنند و سرعت دریافت پکیج‌ها را افزایش دهند.

تنظیم میرورهای PyPI

برای نصب موقت یک پکیج مانند django از میرور، بدون تغییر در تنظیمات اصلی، از دستور زیر استفاده کنید:

pip install -i https://mirror.abrha.net/repository/pypi/simple django

برای تنظیم دائمی و کاربری بر روی ابزار pip که تمام پکیج‌ها را از میرور داخلی دریافت کند، دستورات زیر را وارد نمایید:

pip config --user set global.index https://mirror.abrha.net/repository/pypi/simple
pip config --user set global.index-url https://mirror.abrha.net/repository/pypi/simple
pip config --user set global.trusted-host mirror.abrha.net

برای حذف تنظیمات و بازگشت به حالت پیش‌فرض، کافی است دستورات زیر اجرا شود:

pip config --user unset global.index
pip config --user unset global.index-url
pip config --user unset global.trusted-host

4. مخزن PHP (Composer)

برای مدیریت وابستگی‌های پروژه‌های PHP (مخزن Packagist)، می‌توانید کامپوزر را به گونه‌ای تنظیم کنید که از میرور داخلی پارس‌پک استفاده نماید و در شرایط اختلالات اینترنت، استقرار بدون مشکل انجام شود.

تنظیم میرورهای Composer

برای اعمال میرور فقط در پروژه فعلی (لوکال)، از دستور زیر استفاده کنید:

composer config repo.packagist composer https://mirror.abrha.net/repository/composer/

برای تنظیمات سراسری و استفاده در همه پروژه‌ها، دستور زیر وارد شود:

composer config --global repo.packagist composer https://mirror.abrha.net/repository/composer/

برای مشاهده وضعیت کنونی تنظیمات میرور کافی است این دستور اجرا شود:

composer config --global --list | grep packagist

و برای حذف تنظیمات میرور و بازگشت به حالت پیش‌فرض:

composer config --global --unset repos.packagist

5. مخزن Golang

برای دریافت ماژول‌های زبان Go بدون خطا و با سرعت مناسب، کافی است متغیرهای محیطی پروکسی به میرور داخلی تنظیم شود.

تنظیم میرورهای Golang

دستورات زیر را برای پیکربندی میرور اجرا نمایید:

go env -w GOPROXY=https://mirror.abrha.net/repository/go/,direct
go env -w GOSUMDB=off

برای مشاهده وضعیت تنظیمات میرور فعلی، مقدار متغیر GOPROXY را بررسی کنید و در صورت نیاز با دستورات زیر بازگردانی انجام دهید:

go env -u GOPROXY
go env -u GOSUMDB

6. مخزن دات‌نت (NuGet)

میرور داخلی پارس‌پک امکان بازگردانی (Restore) پکیج‌های دات‌نت را بدون خطا فراهم می‌کند و توسعه‌دهندگان می‌توانند از سرعت و پایداری بالاتری بهره‌مند شوند.

تنظیم میرورهای NuGet

برای استفاده موقت از میرور هنگام بازگردانی پکیج‌ها، دستور زیر مناسب است:

nuget restore packages.config -Source https://mirror.abrha.net/repository/nuget/index.json -PackagesDirectory ./packages

برای اضافه‌کردن میرور به سورس‌های پیش‌فرض سیستم به‌صورت دائمی:

dotnet nuget add source https://mirror.abrha.net/repository/nuget/index.json --name ParspackMirror

برای مشاهده میرورهای اضافه‌شده:

dotnet nuget list source

و برای حذف میرور و بازگشت به حالت اولیه:

dotnet nuget remove source ParspackMirror

7. مخزن جاوا (Maven)

در مواقع اختلال اینترنت، پروژه‌های جاوا با استفاده از میرور Maven داخلی می‌توانند بدون توقف و خطا بیلد شوند. کافی است فایل تنظیمات settings.xml را به روز کنید.

تنظیم میرورهای Maven

در فایل settings.xml (معمولاً در مسیر conf/settings.xml یا ~/.m2/settings.xml) قطعه‌کد زیر را در بخش اضافه کنید:


  
    local-maven-mirror
    Local Maven Mirror
    https://mirror.abrha.net/repository/maven/
    central
  

برای بررسی تنظیمات موثر Maven دستور زیر را اجرا کنید:

mvn help:effective-settings

برای بازگرداندن به حالت اولیه، قطعه‌کد افزوده شده به بخش را حذف کنید.

این روش‌ها سبب افزایش سرعت دانلود و پایداری در فرآیندهای توسعه به‌ویژه در شرایط محدودیت شدید اینترنت می‌شوند. حتماً پس از اعمال تغییرات، تست‌های کاربردی را برای اطمینان از صحت عملکرد انجام دهید.
دقت داشته باشید که برخی از دستورها نیاز به دسترسی ریشه (sudo) دارند و همچنین ممکن است لازم باشد سرویس‌های مربوطه پس از تغییر کانفیگ‌ها راه‌اندازی مجدد شوند.