در این مطلب از سری مطالب آموزش CentOS 7 در آذرآنلاین با آموزش رفع خطای مخزن EPEL در CentOS 7 خدمت شما دوستان گرامی خواهیم بود.
مخزن EPEL یا همان Extra Packages for Enterprise Linux یک مخزن متن باز است که در ابتدا بر پایه فدورا ایجاد شد و بعداً برای ردهت و همچنین CentOS توسعه یافت. این مخزن دارای پکیجهای پیشرفته و ابزارهای متنوعی است که عموماً در مخازن پیشفرض سیستم عامل CentOS 7 وجود ندارد و کاربران باید برای استفاده از آن به نصب آن نیز بپردازند.
حال ممکن است پس از نصب این پکیج و در هنگام استفاده از آن برای نصب سایر کتابخانهها و یا نرمافزارهای دیگر ، دچار مشکل شوند و با خطا روبهرو شوند.
در این مطلب ما قصد داریم ابتدا به نصب این پکیج به صورت مستقیم از سایت فدورا پرداخته و سپس به عیبیابی آن نیز بپردازیم.
با آموزش رفع خطای مخزن EPEL در CentOS 7 همراه ما باشید.
آموزش رفع خطای مخزن EPEL در CentOS 7
در ابتدا برای نصب این پکیج میتوان از دو طریق زیر اقدام کرد.
روش اول:
yum install -y EPEL
روش دوم:
wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
- پس از نصب شما میتوانید با وارد کردن دستور زیر ، هم مخازن خود را یک بار رفرش کنید و هم لیستی از آنها مشاهده نمایید.
yum list
حال در صورت وجود مشکل در مخزن EPEL با خطایی مشابه عبارات زیر برخورد خواهید کرد.
Loaded plugins: fastestmirror
Determining fastest mirrors
Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again
این خطا عموماً برای Certificates مخازن مختلف از جمله EPEL بوده و برای رفع آن شما باید SSL مربوطه را آپدیت نمایید.
- برای آپدیت گواهینامه امنیتی مخزن EPEL دستور زیر را وارد کرده تا مشکل بوجود آمده حل شود.
yum upgrade ca-certificates --disablerepo=epel
در دستور بالا ، درخواست آپگرید گواهینامه امنیتی ارسال شده و در پایان نیز ذکر شده که مخزن EPEL را در هنگام اجرای این دستور غیرفعال نماید.
پس از وارد کردن دستور بالا ، مشکلات و خطاهای مخازن در صورت وجود مشکل SSL حل خواهد شد و شما میتوانید به استفاده از آنها بپردازید.
نکته: در صورت وارد کردن دستورالعمل بالا و عدم حل مشکل ، تاریخ ، ساعت و TimeZone لینوکس CentOS خود را چک کنید. برای این امر شما نیز میتوانید به آموزش تنظیم ساعت و تاریخ در CentOS 7 نیز مراجعه نمایید.
امیدواریم در پایان از مطلب آموزش رفع خطای مخزن EPEL در CentOS 7 استفاده لازم را برده باشید.
در بخش قبلی با فهرست Repository در لینوکس آشنا شدید که میتوانستید بیابید که در حال حاضر چه مخازنی روی سرور لینوکس شما نصب هستند. اما اگر خواسته باشید یک مخزن را حذف کنیم یا آن را برای مدتی غیرفعال کنیم، باید چه کار کنیم؟ سوالی که قصد توضیح دادن آن را در اینجا خدمت شما دارم.
در قسمت قبلی با استفاده از دستور yum توانستیم فهرست مخازن نرم افزاری که روی لینوکس ما فعال هستند را به دست بیاوریم. اما این دستور کاربردی برای حذف کردن یک مخزن ندارد. همانطور که گفته شد، فایل اصلی مخازن لینوکس در مسیر /etc/yum.repos.d/ قرار دارد که هم به صورت دستی میتوانید اقدام به حذف یا غیرفعال کردن مخازن نرم افزاری لینوکس کنید، هم اینکه از دستور rpm استفاده کنید.
در زیر شما یک نمونه از محتویات یک پروندۀ Repository لینوکس را میتوانید ببینید. شناخت جزئیات محتویات این پرونده ضروری ولی ساده است.
[kde] name=kde mirrorlist=http://apt.kde-redhat.org/apt/kde-redhat/fedora/mirrors-stable gpgkey=http://apt.kde-redhat.org/apt/kde-redhat/kde-redhat.RPM-GPG-KEY enabled=1
حذف یک مخزن یا Repository
قبل از اینکه خواسته باشید یک Repository را حذف کنید، بهتر است یک بررسی کنید ببینید اصلاً چنین مخزنی نصب شده یا خیر. پس از دستور زیر استفاده کنید. به جای repo-name باید نام مخزن را بنویسید.
rpm -qa |grep -i repo-name
اگر چنین مخزنی وجود داشته باشد، موردی با همین نام به شما نشان داده خواهد شد. متن زیر یک نمونه خروجی از دستور بالا است:
rpm -qa |grep -i rpmfusion rpmfusion-nonfree-release-13-2.noarch rpmfusion-free-release-13-2.noarch
حالا اگر توانستید چنین مخزنی را پیدا کنید، با دستور زیر میتوانید آن را حذف کنید. به جای some-repository-rpm-package باید نام کامل بسته را بنویسید که از دستور قبلی به دست آمد. مثلاً : rpmfusion-free-release-13-2.noarch
rpm -e some-repository-rpm-package
اگر بستۀ RMP را نتوانستید پیدا کنید، به سادگی قادرید فایل مخزن را به صورت دستی حذف کنید. دستور rm که آشنای حضور شما هست؟
rm /etc/yum.repos.d/repo-file.repo
یا میتوانید تغییر نامش دهید که اگر دفعۀ بعدی خواستید، دوباره بتوانید از آن استفاده کنید.
mv /etc/yum.repos.d/repo-file.repo /etc/yum.repos.d/repo-file.repo.bak
غیرفعال کردن یک مخزن یا Repository
روش اول این است که پروندۀ مخزن yum را ویرایش کنید. در بالاترین قسمت این صفحه یک نمونه از محتویات چنین فایلی را به شما نشان دادم. باید مقدار مقابل عبارت enabled را به ۰ تغییر دهید.
enabled=0
اما همین کار را هم با دستور yum میتوانید انجام دهید. به نمونه دستور زیر دقت کنید.
yum --disablerepo=some-repository install some-package
برای فعال کردن یک مخزن نرم افزاری هم میتوانید از دستور yum زیر استفاده کنید.
yum --enablerepo=some-disabled-repository install some-package
در هر دو کد بالا باید به جای some-repository نام مخزن و به جای some-package نام بسته های نرم افزاری را بنویسید که البته دلخواهی است.
نکته: زمانی که شما از دستور yum install برای نصب بستۀ نرم افزاری استفاده میکنید، سیستم شما از درون مخازن فعال به دنبال آن بسته میگردد. اگر آن مخزن در حال حاضر غیرفعال باشد، یا نصب نشده باشد، دستور yum به شما خواهد گفت که چنین بستۀ نرم افزاری را پیدا نکرده است که طبیعتاً امکان نصبش هم وجود نخواهد داشت.
بدین ترتیب شما با نحوۀ غیرفعال کردن یا حذف کردن یک مخزن یا Repository لینوکس آشنا شدید. ما این کار را انجا دادیم به این دلیل که در خیلی از مواقع ما نیاز داریم بستههای نرم افزاری را از مخازن دیگری از نرم افزارهای لینوکس نصب کنیم. در قسمت بعدی با نصب یکی از پرکابردترین مخازن نرم افزاری لینوکس آشنا خواهید شد، تا مبحث مدیریت بسته های نرم افزاری لینوکس کامل شود.