پارس دیتا
کد: KB-WP-C2-FA-339
زمان انتشار: چهارشنبه 17 بهمن 1403

رفع مشکل آپدیت نشدن CentOS

"CentOS" یک توزیع تحت سیستم عامل لینوکس است که از کد منابع سیستم عامل "Red Hat" مشتق گردیده است. این توزیع که بر روی هسته لینوکس ساخته شده است، اغلب برای توسعه و استقرار نرم افزار استفاده می گردد و مدل توزیع ندارد.

CentOS

"Yellowdog Updater Modified (YUM)" یک ابزار خط فرمان برای مدیریت پکیج های نرم افزاری رایگان و منبع باز رایانه هایی است که از سیستم عامل لینوکس با استفاده از "RPM Package Manager" استفاده می نماید. اگر دستور "yum" به دلایل مختلف اجرا نشود، به‌روز رسانی و نصب و حذف بسته "yum" کار دشواری خواهد بود. "yum" دارای مزایای بسیاری از قبیل نصب خودکار و به‌روز رسانی آسان سیستم‌عامل و "plugin" ها و بسته های نرم افزاریست.

مشکلات احتمالی در به‌روزرسانی "CentOS":

1- تنظیمات "Yum Repository" در دسترس نیست.

برخی از توزیع های سیستم عامل "CentOS" به طور پیش فرض تنظیمات "repository" یا مخزن مربوط به "yum" را انجام نمی‌دهند، در اینصورت ابزار "yum" قادر به نصب یا به‌روز‌رسانی بسته نیست. می‌توانید با ورود به فولدر زیر :

etc/yum.repos.d 

یا با اجرای دستور زیر بررسی نمایید که آیا فایل‌ها وجود دارند یا خیر.

yum repolist all

یکی از راهکارهای حل این خطا ویرایش فایل موجود در "etc/yum.repos.d" است، اگر با این روش مشکل همچنان برقرار باشد، باید "repository" معیوب را به صورت کامل غیر فعال نماییم.

2- "Repository" غیر فعال است.

یکی دیگر از مسائل احتمالی این است که تنظیمات "repository" انجام گردیده، اما وضعیت آن غیرفعال است.

برای مثال اگر "epel repository" غیر فعال گردد، تلاش برای نصب یک بسته نرم افزاری مانند "htop" ناموفق خواهد بود، زیرا نرم افزار "yum" قادر به پیدا نمودن مخازن آن نیست.

در این مثال نمونه‌ای از "repository" غیر فعال در فایل "etc/yum.repos.d/epel.repo" نشان داده گردیده است:

[epel]
name=Extra Packages for Enterprise Linux 7 – $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

به آسانی درخطی که دستور "enabled" قرار دارد، مقدار یک را با استفاده از ویرایشگر متن در فایل بالا قرار دهید. سپس آپدیت "yum" را اجرا نمایید تا بسته ها به‌روز گردد و سپس بسته نرم‌افزاری مورد نیاز خود را نصب نمایید.

بسته‌های مستقل نیز می‌توانند از آپدیت حذف گردند، این بسته‌ها در فایل"etc/yum.conf" تنظیم می گردند.

3- "repository" معیوب است.

یکی دیگر از مشکلات رایج، وجود "repository" معیوب است که می‌تواند تمامی فرآیند آپدیت "yum" را از بین ببرد.

دلایل مختلفی از جمله وجود نواقص، در فایل تنظیمات مخزن یا مخازنی که دیگر در دسترس نیستند یا "URL" هایشان تغییر کرده است، باعث بروز این مسئله می‌شوند، تشخیص این مشکل آسان است زیرا برنامه خطایی را نمایش می‌دهد که نشان دهنده‌ی "repository" معیوب است. یکی از راهکارهای حل این خطا ویرایش فایل موجود در "etc/yum.repos.d" است که در صورت وجود مشکل باید "repository" معیوب را به صورت کامل غیر فعال نماییم.

4- افزونه ها تداخل دارند.

"yum" به طور خودکار تمام افزونه‌ها را نصب و به‌روز‌رسانی می نماید. اما مواردی وجود دارتد که نمی‌توان بسته‌ای ‌را نصب نمود زیرا افزونه یا "plugin" یافت نمی گردد، یا نسخه نرم افزار اشتباه است که هیچ راه حلی برای آن وجود ندارد.

5- مشکلات"Caching".

به منظور بهبود سرعت روند کار ، مدیریت بسته "yum" را می‌توان طوری تنظیم نمود تا پس از نصب، داده‌ها را روی دیسک نگهداری گرداند. به طور پیش فرض، محلی که داده‌ها ذخیره‌سازی می گردند، فولدر زیر است:

var/cache 

گاهی اوقات "cache" می‌تواند خراب باشد یا دستور موفق اجرا نگردد، در این حالت می‌توانید تمام محتویات پوشه "cache" را به صورت دستی حذف نمایید یا از دستور "yum" برای پاک نمودن آن استفاده نمایید :

yum clean all

دستور بالا تمام داده‌ها را در پوشه حذف می نماید، گزینه دیگر اجبار "yum" برای چک کردن "Cache" بدون پاک کردن آن است:

yum expire-cache

6- مشکلات پایگاه داده.

سیستم‌ عامل "CentOs 7" دو بسته پایگاه داده مختلف را روی دیسک نگهداری می نماید، که هر دو آن‌ها می‌توانند خراب شده و منجر به خطا گردند. هنگامی که پایگاه داده "RPM" خراب گردد، "yum" این دستور را نمایش می‌دهد:

"Fatal error, run database recovery"

که در این صورت باید پایگاه داده را به صورت دستی حذف و سپس آن را با دستورات زیر مجدد تنظیم و پایگاه داده جدید را ایجاد نمایید:

rm -f /var/lib/rpm/__db*
rpm –rebuilddb
yum clean all
yum update

دیتابیس اطلاعات بسته های "yum" را در پوشه "var / lib / yum / yumdb /" ذخیره می نماید و می‌تواند با استفاده از دستور "yumdb" قابل دسترسی باشند.

وقتی که پایگاه داده خراب می گردد ، توسط "yum" این پیغام خطا نمایش داده می گردد :

"database disk image is malformed"

در بیشتر موارد، این مسئله با دستور زیر رفع می گردد:

yum clean dbcache

برای بازسازی کردن دیتابیس "RPM" می‌توانید با استفاده از دستور زیر مشکل را حل نمایید:

rpm –rebuilddb

بعد از آن، زمانی که اقدام به آپدیت سرور با دستور "yum update" می نماییم در صورت داشتن فضای کافی در دیسک باید آپدیت ما بدون مشکل انجام گردد، حال اگر پس از انجام مراحل بالا باز هم به‌روزرسانی ناموفق بود، احتمالا مجبور می‌شویم در ابتدا پایگاه داده "RPM" را دوباره بسازیم و "yum"را نیز یکبار دیگر‌ حذف نماییم.

آخرین بروزرسانی: یکشنبه 21 بهمن 1403 13:41:28