مشکلات به روز رسانی CentOS 7 YUM و راه حل آنها

رضا فرخندگان ۰۵ شهریور ۱۳۹۸ ۰ دیدگاه

در این مقاله قصد داریم درمورد مشکلات به روز رسانی CentOS 7 YUM و را حل آنها صحبت کنیم.

مدیریت بسته YUM یکی از مهم‌ترین ابزارهای موجود در سیستم عامل CentOS ۷ است.‌ اگر دستور YUM به دلایل مختلف اجرا نشود، به‌روز رسانی و نصب و حذف بسته YUM کار بسیار دشواری خواهد بود.

با اینکه هنوز نرم‌افزارها را می‌توان از RPM ها یا از منبع خودشان اجرا و نصب کرد، yum دارای مزایای بسیاری از قبیل نصب خودکار و به‌روز رسانی آسان سیستم‌عامل و plugin هاست.

هدف ما در مقاله این است که در مورد شایع‌ترین نمونه‌های اجرا نشدن دستورات YUM بحث کرده و علت اصلی و نحوه‌ی اصلاح آن‌ را توضیح ‌دهیم. همچنین در این مقاله خواهیم فهمید که در صورت به روز رسانی ناموفق CENTOS 7 YUM چه کارهایی باید انجام دهیم؟

مشکلات به روز رسانی CentOS 7 YUM و راه حل آنها

تنظیمات Yum Repository در دسترس نیست

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

شما می‌توانید با ورود به پوشه /etc/yum.repos.d یا با اجرای دستور زیر بررسی کنید که آیا فایل‌ها وجود دارند یا نه:

yum repolist all

اگر فایل‌ها از بین رفته باشند، خودتان باید آن‌ها را بسازید. یک جست‌وجوی گوگل به شما کمک می‌کند که اطلاعات مناسبی از تنظیمات repository برای نسخه CentOS 7  مورد نظر خود را پیدا کنید.

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/ تنظیم می‌شوند. بدین منظور به دنبال دستور خطی باشید که با exclude شروع می‌شود.

repository معیوب است

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

دلایل مختلفی نظیر نقص در فایل تنظیمات مخزن یا مخازنی که دیگر در دسترس نیستند یا URL هایشان تغییر کرده است، باعث بروز این مسئله می‌شوند.

بر خلاف سایر مشکلات YUM، تشخیص این مشکل آسان است زیرا برنامه خطایی را نمایش می‌دهد که نشان دهنده‌ی repository معیوب است.

مشکلات به روز رسانی CentOS 7 YUM و راه حل آنها

برای کامل شدن فرایند آپدیت، فایل موجود در etc/yum.repos.d/ را ویرایش کنید یا خطا را برطرف کنید یا repository معیوب را بطور کامل غیر فعال کنید.

افزونه ها تداخل دارند

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

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

مشکلات Caching

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

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

Yum clean all

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

yum expire-cache

مشکلات پایگاه داده

سیستم‌های 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 را دوباره بسازید و yum را یکبار دیگر‌ پاک کنید.

نتیجه‌گیری

بسته مدیریتی YUM بسته قدرتمندی است که نصب و به‌روزرسانی نرم‌افزار را بسیار آسان می‌کند. در حالیکه دلایل زیادی مبنی بر ناموفق بودن به‌روز رسانی yum وجود دارد، ما رایج‌ترین آن‌ها و همچنین مراحل عیب‌یابی مورد نیاز را در این مقاله ارائه کردیم.

فناوران شبکه سینداد (آهنگ نوآوری)

سینداد یعنی هدیه‌ی سیمرغ، یا فرزند سیمرغ؛ به عبارتی یعنی خود سیمرغ، با همه ی شگفتی هایش، اما جوانتر و سرزنده تر. و این چیزی است که ما سعی می کنیم در سینداد باشیم. از سال ۱۳۸۵ دانش مان را به صورت خدماتی در حوزه ی هاستینگ، شبکه و تولید نرم افزار در اختیار مشتریان مان قرار داده ایم و به این افتخار می کنیم که تک تک آنها تا به امروز همراه ما مانده اند. باور داریم که سینداد صرفاً یک شرکت نیست، بلکه نوعی باور است به ارائه ی شگفت انگیز از هر چیز.