سیستم عامل CentOS یکی از محبوبترین توزیعها از دستهی سیستم عاملهای لینوکسی می باشد. این سیستم عامل به خاطر مزیتهایی همچون امنیت بسیار بالا، ثبات نرم افزاری و چرخهی نگهداری طولانی مدت به شدت مورد توجه کاربران قرار گرفته است. یکی از مهمترین مباحث در نگهداری از این سیستم عامل بهروز نگهداشتن و آپدیت به موقع آن میباشد؛ به همین دلیل در مقالهای که در ادامه به آن میپردازیم به بررسی و رفع مشکل آپدیت نشدن CentOS در برخی موارد میپردازیم.
مشکلات احتمالی در بهروزرسانی CentOS
همانطور که میدانید YUM یکی از ابزارهای مهم در سیستم عامل CentOS میباشد. اگر این دستور به دلایل مختلفی اجرا نشود، بهروزرسانی و حذف بستهها کار بسیار دشواری میشود؛ به همین دلیل ما در ادامه به رایجترین مشکلات در این خصوص و نحوهی رفع آنها میپردازیم.
برای خرید هاست لینوکس و سرور مجازی لینوکس میتوانید با کارشناسان فروش مبین هاست تماس بگیرید.
تداخل افزونهها
یکی از مشکلات شایع در آپدیت نشدن سیستم، تداخل افزونهها در بستههای نرم افزاری است. ما میدانیم که YUM به طور خودکار تمام افزونهها را نصب و بهروزرسانی میکند اما گاهی اوقات هنگام نصب به مشکل بر میخوریم که یکی از راهکارها نصب آن افزونه به صورت دستی و سپس اجرای دوبارهی دستور است. یک راه حل دیگر برای جلوگیری از تداخل نسخهها پاک کردن بسته در سیستم میباشد که با انجام این کار مشکل ما رفع میگردد.
مشکلات پایگاه داده
در سیستمهای CentOS هنگامی که پایگاه دادههای RPM خراب میشوند با خطای زیر روبهرو میشویم:
” Fatal error, run database recovery”
برای حل این خطا ما باید پایگاه داده را به صورت دستی پاک کرده و سپس با استفاده از دستورات زیر دوباره یک پایگاه داده جدید ایجاد کنیم.
rm -f /var/lib/rpm/__db*
rpm –rebuilddb
yum clean all
yum update
بعد از انجام دستورات بالا دیتابیس اطلاعات بسته مدیریت YUM را در پوشه var / lib / yum / yumdb /
ذخیره میکند و میتوان با استفاده از دستور yumdb
قابل دسترسی شود.
البته برای بازسازی کردن دیتابیس RPM میتوانیم با استفاده از دستور زیر مشکل را حل کنیم.
root@rasanegar:/ # rpm --rebuilddb
بعد از آن زمانی که اقدام به آپدیت سرور با دستور yum update میکنیم در صورت داشتن فضای کافی در دیسک باید آپدیت ما بدون مشکل انجام شود. (نمونه کدهای اجرایی بعد از انجام این دستورات در ادامه نوشته می شود.)
root@rasanegar:/backup/linux # yum update
Loaded plugins: fastestmirror
Determining fastest mirrors
epel/x86_64/metalink | 7.0 kB 00:00:00
* base: mirror.radoreservers.com
* epel: mirror.rasanegar.com
* extras: mirror.radoreservers.com
* rpmforge: mirror1.hs-esslingen.de
* updates: mirror.centos.jt.iq
base | 3.6 kB 00:00:00
epel | 5.4 kB 00:00:00
extras | 2.9 kB 00:00:00
rpmforge | 1.9 kB 00:00:00
updates ...
خطای بعدی که در صورت خراب بودن دیتابیس ممکن است به نمایش درآید خطای:
” database disk image is malformed
است که برای حل این مشکل ما میتوانیم به راحتی با نوشتن دستور زیر به حل آن بپردازیم.
yum clean dbcache
در بیشتر اوقات با انجام این دو روش مشکلات مربوط به پایگاه داده حل می شود اما با این حال اگر پس از انجام مراحل بالا باز هم بهروزرسانی ناموفق بود، احتمالا مجبور میشویم در ابتدا پایگاه داده RPM را دوباره بسازیم و yum را نیز یکبار دیگر پاک کنیم.
غیر فعال بودن repository
یک مشکل شایع در هنگام آپدیت، غیر فعال بودن repository است. در این حالت به دلیل نمایش ندادن خطا پیدا کردن مشکل و رفع ایراد آن بسیار دشوار است. برای مثال اگر در فایل etc/yum.repos.d/epel.repo/ ، repository
غیر فعال باشد کد های زیر نمایش داده میشود:
[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، بستهی مورد نظر بهروز شده و نرم افزار مورد نیاز به آسانی نصب میشود.
معیوب بودن repository
در ادامهی مشکلات مرتبط با repository از معیوب بودن آن نیز میتوان به عنوان یک مشکل جدی در بهروزرسانی تمامی فرآیند های yum نام برد. این مشکل میتواند به دلایل مختلفی رخ دهد که از جملهی آنها نقص در فایل تنظیمات مخزن یا مخازنی است که آدرس URL آن ها تغییر کرده یا اینکه دیگر در دسترس نمیباشند.
نکتهی مثبت در خصوص این مشکل نمایش خطا در صورت بروز آن میباشد که به راحتی میتوان متوجه این ایراد شد. یکی از راهکارهای حل این خطا ویرایش فایل موجود در etc/yum.repos.d/ است. اگر با این روش مشکل همچنان پابرجا باشد، ما باید repository معیوب را به صورت کامل غیر فعال کنیم.
نتیجه گیری
ما در این مقاله به بررسی مشکل آپدیت نشدن CentOS و مهمترین راهکارهای رفع آن پرداختیم. اگرچه ممکن است اشکالات دیگری نیز در زمان بهروزرسانی برای شما به وجود بیاید اما با دانستن راهکارهای ارائه شده مطمئنا میتوانید بیشتر خطاهایی که ممکن است رخ بدهد را شناسایی و حل کنید.