رفع مشکل مخزن EPEL با سرور داخلی بدون تحریم و کاهش سرعت
مخزن EPEL (Extra Packages for Enterprise Linux) یک مخزن نرمافزاری متنباز است که توسط پروژه Fedora برای توزیعهای لینوکسی Enterprise مانند RHEL (Red Hat Enterprise Linux)، CentOS، راکی لینوکس Rocky Linux و آلمالینوکس AlmaLinux ارائه شده است. هدف اصلی این مخزن، فراهم کردن بستههای اضافی و کاربردی برای این توزیعهاست که در مخازن رسمی وجود ندارند.
EPEL چیست؟
EPEL یک منبع گسترده از نرمافزارها و ابزارهایی است که برای استفاده در محیطهای لینوکسی سازمانی طراحی شدهاند. این مخزن، بستههایی را که توسط جامعه کاربری Fedora توسعه یافتهاند، در دسترس کاربران توزیعهای RHEL و مبتنی بر آن قرار میدهد. بستههای موجود در EPEL با استانداردهای بالا ساخته شدهاند و با سیستمهای لینوکسی سازگار هستند.
چه کاربردی دارد؟
- افزایش امکانات پیشفرض لینوکس سازمانی:
توزیعهای RHEL و مشابههای آن برای استفاده در محیطهای تجاری و سازمانی طراحی شدهاند و فقط ابزارها و بستههای ضروری در مخازن رسمی آنها وجود دارد. EPEL به کاربران اجازه میدهد ابزارها و بستههای اضافی موردنیاز خود را بدون ایجاد مشکل در پایداری سیستم، نصب کنند. - دسترسی به نرمافزارهای متنباز محبوب:
بسیاری از ابزارهای متنباز که بهطور گسترده توسط توسعهدهندگان، مدیران سیستم و کاربران استفاده میشوند، مانند htop، nginx، fail2ban، ansible و غیره، از طریق EPEL در دسترس هستند. - رفع نیاز به کامپایل دستی نرمافزارها:
بدون استفاده از EPEL، کاربران باید بسیاری از نرمافزارها را بهصورت دستی کامپایل کنند، که زمانبر است و ممکن است به مشکلات وابستگیها (dependencies) برخورد کنند.
زیرساخت ها و نرم افزاهایی که در EPEL وجود دارد:
- ابزارهای توسعهدهنده: مانند git ،vim-enhanced و build-essential
- نرمافزارهای مانیتورینگ و مدیریت سیستم: مانند nagios ،zabbix-agent و net-tools
- کتابخانههای برنامهنویسی و ماژولها: مانند python-pip ،perl-modules و nodejs
- سرورها و ابزارهای تحت وب: مانند nginx ،haproxy و phpMyAdmin
- ابزارهای شبکه: مانند iperf3 ،tcpdump و wireshark
دلایل نیاز به EPEL:
- گستره وسیع بستهها:
مخازن رسمی RHEL، CentOS یا AlmaLinux شامل بستههای محدود و پایهای هستند. برای دسترسی به ابزارهای اضافی، EPEL ضروری است. - پایداری و سازگاری:
تمام بستههای موجود در EPEL مطابق با استانداردهای Fedora ساخته شدهاند، بنابراین قابل اعتماد بوده و با سیستمهای لینوکسی Enterprise سازگارند. - مدیریت وابستگیها:
با استفاده از EPEL، مشکلات مربوط به وابستگی نرمافزارها به حداقل میرسد زیرا تمام نیازمندیهای یک بسته بهصورت خودکار از مخزن نصب میشوند. - بهروزرسانی منظم:
بستههای موجود در EPEL بهطور مرتب بهروزرسانی میشوند و آخرین نسخههای پایدار نرمافزارها را ارائه میدهند.
برخی از برنامههای ضروری داخل EPEL:
- Ansible: ابزاری برای اتوماسیون مدیریت سیستم.
- Htop: ابزار مانیتورینگ و مشاهده منابع سیستم.
- Fail2ban: برای محافظت از سرور در برابر حملات brute force.
- Nginx: بهعنوان یک وبسرور یا پروکسی معکوس.
- Certbot: برای دریافت و مدیریت گواهیهای SSL از LetsEncrypt.
چگونه EPEL را فعال کنیم؟
فعالسازی EPEL بسیار ساده است. برای فعال کردن این مخزن در سیستمهای لینوکسی مبتنی بر RHEL (مانند CentOS و AlmaLinux)، میتوانید دستور زیر را اجرا کنید اما پس از اجرای این دستور در سرورهای داخل کشور ، اقدام به نصب و با به روزرسانی از این مخزن با خطا مواجه خواهد شد زیرا Fedora آدرسهای IP ایران را تحریم کرده است و باید با استفاده از ابزارهایی که برای دور زدن تحریم طراحی شده اند این موارد را دور بزنید که متاسافانه دارای سرعت بسیار پائینی هستند و بهره وری و سرعت انجام کار را بسیار زیاد می کند.
1 |
dnf install epel-release |
در همین راستا زاگریو به منظور رفاه حال همکاران و استفاده کنندگان سیستم ها و سرورهای لینوکسی؛ اقدام به راه اندازی مخازن متن باز لینوکس در ایران کرده است و همچنین یک کپی از مخزن epel در داخل کشور بر روی شبکه نیمبها با سرعت 100Gbit/s نموده است.
مشخصات سرور EPEL در ایران بدون تحریم:
آدرس اصلی مخزن که در اصل یک رونوشت از مخزن اصلی به آدرس ذیل است:
1 |
https://epel.mirrors.zagrio.net/ |
این مخزن بر روی آدرسها و پروتکلهای HTTP, rsync و FTP نیز در دسترس است:
1 2 3 |
http://epel.mirrors.zagrio.net/ rsync://mirrors.zagrio.net/epel/ ftp://mirrors.zagrio.net/epel/ |
یکی از مهمترین مزایای استفاده از این محزن، نیم بها بودن تعرفه اینترنت شما خواهد بود.
به دلیل محدودیت فضا، صرفا برنامه های مربوط به نسخه 7 به بالا در این مخزن وجود دارد و نسخ 4، 5 و 6 در این مخزن وجود نداند.
نحوه نصب مخزن EPEL زاگریو
نصب کلید GPG
ابتدا باید کلید مربوط به نسخه سرور خود را نصب کنید، نسخه سرور خود را با دستور cat /etc/redhat-release پیدا کنید.
نصب کلید برای سرورهای نسخه 7
1 2 |
curl -o /usr/src/RPM-GPG-KEY-EPEL-7 https://epel.mirrors.zagrio.net/RPM-GPG-KEY-EPEL-7 rpm --import /usr/src/RPM-GPG-KEY-EPEL-7 |
نصب کلید برای سرورهای نسخه 8
1 2 |
curl -o /usr/src/RPM-GPG-KEY-EPEL-8 https://epel.mirrors.zagrio.net/RPM-GPG-KEY-EPEL-8 rpm --import /usr/src/RPM-GPG-KEY-EPEL-8 |
نصب کلید برای سرورهای نسخه 9
1 2 |
curl -o /usr/src/RPM-GPG-KEY-EPEL-9 https://epel.mirrors.zagrio.net/RPM-GPG-KEY-EPEL-9 rpm --import /usr/src/RPM-GPG-KEY-EPEL-9 |
نصب کلید برای سرورهای نسخه 10
1 2 |
curl -o /usr/src/RPM-GPG-KEY-EPEL-10 https://epel.mirrors.zagrio.net/RPM-GPG-KEY-EPEL-10 rpm --import /usr/src/RPM-GPG-KEY-EPEL-10 |
تغییر فایلهای Repository (برای REHL9)
حالا باید فایلهایی که مربوط به مسیردهی مخزن هست را تغییر داد. برای انجام این کار چندین روش وجود دارد. این فایلهای در مسیر etc/yum.repos.d/
قرار دارند و در این فایلهای مقداری برای مسیر اتصال به مخزن ها تعریف شده است که metalink نام دارد. این مسیر لیستی از مخازن هستند که بر اساس موقعیت جغرافیایی و سرعت شبکه شما، به بهترین آنها متصل می شوید و عملیات دانلود از آن سرور انجام می شود.
یک نوع مسیردهی یگر با نام baseurl وجود دارد که می توانید با استفاده از آن مسیر سرور مخزن را مشخصا تعیین کنید. شما باید آدرس سرور ما که در بالا آمده است را بصورتی تنظیم کنید که مانند تصویر به سرورهای ما متصل شده باشند.
با استفاده از یکی از روشهای ذیل این تغییر را می توانید انجام دهید:
- بصورت دستی با ویرایشگر دلخواه خود مانند
nano
فایلهایetc/yum.repos.d/epel.repo/
وetc/yum.repos.d/epel-testing.repo/
را ویرایش کنید و یک#
در ابتدای خطوطی که داریmetalink
هستند اضافه کنید و#
را از ابتدایbaseurl
حذف کنید و مقدار ذیل را بجای آن تنظیم کنید:
1 |
baseurl=https://epel.mirrors.zagrio.net/$releasever/Everything/source/tree/ |
- با استفاده از دستورات ذیل، فایلهای مخزن را حذف و نسخه تنظیم شده توسط ما را جایگزین آنها کنید: (روش پیشنهادی)
1 2 |
curl -o /etc/yum.repos.d/epel.repo https://repo.zagrio.net/linux/yum/epel-9.repo curl -o /etc/yum.repos.d/epel-testing.repo https://repo.zagrio.net/linux/yum/epel-testing-9.repo |
- محتوای فایلهای epel.repo و epel-testing.repo را با دستورات ذیل حذف و بصورت دستی جایگزین کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
rm /etc/yum.repos.d/epel.repo -f echo '[epel]'> /etc/yum.repos.d/epel.repo echo 'name=Extra Packages for Enterprise Linux $releasever - $basearch'>> /etc/yum.repos.d/epel.repo echo '# It is much more secure to use the metalink, but if you wish to use a local mirror'>> /etc/yum.repos.d/epel.repo echo '# place its address here.'>> /etc/yum.repos.d/epel.repo echo 'baseurl=https://epel.mirrors.zagrio.net/$releasever/Everything/$basearch/'>> /etc/yum.repos.d/epel.repo echo '#metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-$releasever&arch=$basearch&infra=$infra&content=$contentdir'>> /etc/yum.repos.d/epel.repo echo 'enabled=1'>> /etc/yum.repos.d/epel.repo echo 'gpgcheck=1'>> /etc/yum.repos.d/epel.repo echo 'countme=1'>> /etc/yum.repos.d/epel.repo echo 'gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$releasever'>> /etc/yum.repos.d/epel.repo echo ''>> /etc/yum.repos.d/epel.repo echo '[epel-debuginfo]'>> /etc/yum.repos.d/epel.repo echo 'name=Extra Packages for Enterprise Linux $releasever - $basearch - Debug'>> /etc/yum.repos.d/epel.repo echo '# It is much more secure to use the metalink, but if you wish to use a local mirror'>> /etc/yum.repos.d/epel.repo echo '# place its address here.'>> /etc/yum.repos.d/epel.repo echo 'baseurl=https://epel.mirrors.zagrio.net/$releasever/Everything/$basearch/debug/'>> /etc/yum.repos.d/epel.repo echo '#metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-$releasever&arch=$basearch&infra=$infra&content=$contentdir'>> /etc/yum.repos.d/epel.repo echo 'enabled=0'>> /etc/yum.repos.d/epel.repo echo 'gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$releasever'>> /etc/yum.repos.d/epel.repo echo 'gpgcheck=1'>> /etc/yum.repos.d/epel.repo echo ''>> /etc/yum.repos.d/epel.repo echo '[epel-source]'>> /etc/yum.repos.d/epel.repo echo 'name=Extra Packages for Enterprise Linux $releasever - $basearch - Source'>> /etc/yum.repos.d/epel.repo echo '# It is much more secure to use the metalink, but if you wish to use a local mirror'>> /etc/yum.repos.d/epel.repo echo '# place its address here.'>> /etc/yum.repos.d/epel.repo echo 'baseurl=https://epel.mirrors.zagrio.net/$releasever/Everything/source/tree/'>> /etc/yum.repos.d/epel.repo echo '#metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-source-$releasever&arch=$basearch&infra=$infra&content=$contentdir'>> /etc/yum.repos.d/epel.repo echo 'enabled=0'>> /etc/yum.repos.d/epel.repo echo 'gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$releasever'>> /etc/yum.repos.d/epel.repo echo 'gpgcheck=1'>> /etc/yum.repos.d/epel.repo rm /etc/yum.repos.d/epel-testing.repo -f echo '[epel-testing]' > /etc/yum.repos.d/epel-testing.repo echo 'name=Extra Packages for Enterprise Linux $releasever - Testing - $basearch' >>/etc/yum.repos.d/epel-testing.repo echo '# It is much more secure to use the metalink, but if you wish to use a local mirror' >>/etc/yum.repos.d/epel-testing.repo echo '# place its address here.' >>/etc/yum.repos.d/epel-testing.repo echo 'baseurl=https://epel.mirrors.zagrio.net/testing/$releasever/Everything/$basearch/' >>/etc/yum.repos.d/epel-testing.repo echo '#metalink=https://mirrors.fedoraproject.org/metalink?repo=testing-epel$releasever&arch=$basearch&infra=$infra&content=$contentdir' >>/etc/yum.repos.d/epel-testing.repo echo 'enabled=0' >>/etc/yum.repos.d/epel-testing.repo echo 'gpgcheck=1' >>/etc/yum.repos.d/epel-testing.repo echo 'countme=1' >>/etc/yum.repos.d/epel-testing.repo echo 'gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$releasever' >>/etc/yum.repos.d/epel-testing.repo echo '' >>/etc/yum.repos.d/epel-testing.repo echo '[epel-testing-debuginfo]' >>/etc/yum.repos.d/epel-testing.repo echo 'name=Extra Packages for Enterprise Linux $releasever - Testing - $basearch - Debug' >>/etc/yum.repos.d/epel-testing.repo echo '# It is much more secure to use the metalink, but if you wish to use a local mirror' >>/etc/yum.repos.d/epel-testing.repo echo '# place its address here.' >>/etc/yum.repos.d/epel-testing.repo echo 'baseurl=https://epel.mirrors.zagrio.net/testing/$releasever/Everything/$basearch/debug/' >>/etc/yum.repos.d/epel-testing.repo echo '#metalink=https://mirrors.fedoraproject.org/metalink?repo=testing-debug-epel$releasever&arch=$basearch&infra=$infra&content=$contentdir' >>/etc/yum.repos.d/epel-testing.repo echo 'enabled=0' >>/etc/yum.repos.d/epel-testing.repo echo 'gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$releasever' >>/etc/yum.repos.d/epel-testing.repo echo 'gpgcheck=1' >>/etc/yum.repos.d/epel-testing.repo echo '' >>/etc/yum.repos.d/epel-testing.repo echo '[epel-testing-source]' >>/etc/yum.repos.d/epel-testing.repo echo 'name=Extra Packages for Enterprise Linux $releasever - Testing - $basearch - Source' >>/etc/yum.repos.d/epel-testing.repo echo '# It is much more secure to use the metalink, but if you wish to use a local mirror' >>/etc/yum.repos.d/epel-testing.repo echo '# place its address here.' >>/etc/yum.repos.d/epel-testing.repo echo 'baseurl=https://epel.mirrors.zagrio.net/testing/$releasever/Everything/source/tree/' >>/etc/yum.repos.d/epel-testing.repo echo '#metalink=https://mirrors.fedoraproject.org/metalink?repo=testing-source-epel$releasever&arch=$basearch&infra=$infra&content=$contentdir' >>/etc/yum.repos.d/epel-testing.repo echo 'enabled=0' >>/etc/yum.repos.d/epel-testing.repo echo 'gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$releasever' >>/etc/yum.repos.d/epel-testing.repo echo 'gpgcheck=1' >>/etc/yum.repos.d/epel-testing.repo |
غیرفعال کردن مخزن epel-cisco
در نهایت باید دستور زیر را در هر یک از روش فوق بزنید تا مخزن epel-cisco-openh264 را که از طرف سیسکو برای توزیع Codec H264 پیاده سازی شده است را غیرفعال کنید:
1 |
dnf config-manager --disable epel-cisco-openh264 |
جمعبندی:
مخزن EPEL یک ابزار حیاتی برای مدیران سیستمها و توسعهدهندگان است که نیازمند دسترسی به بستههای اضافی بدون به خطر انداختن پایداری سیستم هستند. این مخزن شامل طیف وسیعی از ابزارها و کتابخانههای متنباز است و به دلیل سازگاری بالا و مدیریت ساده، استفاده از آن برای هر سیستم لینوکسی سازمانی توصیه میشود.
بدون دیدگاه