yum ত্রুটি: rpmdb ওপেন ব্যর্থ হয়েছে


42

আমি চালানোর চেষ্টা করছি yum updateএবং আমি এই ত্রুটিটি চালাচ্ছি:

rpmdb: PANIC: fatal region error detected; run recovery
error: db3 error(-30974) from dbenv->open: DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db3 - (-30974)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:

Error: rpmdb open failed

আমি এই পৃষ্ঠার মতো পৃষ্ঠাটি চেক করেছি তবে চালানো yum clean allএকই ত্রুটিটি চালায়।

আমি কীভাবে এটি সমাধান করতে পারি?

উত্তর:


84

এইভাবেই আমি আমার সমস্যাটি স্থির করেছি।

এটি বেশ অগোছালো পরিস্থিতি। আপনি আরপিএম ডাটাবেস পরিষ্কার করে এটি ঠিক করতে পারেন। ঝুঁকি হ্রাস করতে, কমান্ডটি /var/lib/rpm/ব্যবহার করে ফাইলগুলির একটি ব্যাকআপ তৈরি করুন cp:

mkdir /root/backups.rpm.mm_dd_yyyy/
cp -avr /var/lib/rpm/ /root/backups.rpm.mm_dd_yyyy/

এই সমস্যাটি সমাধান করতে, চেষ্টা করুন:

# rm -f /var/lib/rpm/__db*
# db_verify /var/lib/rpm/Packages
# rpm --rebuilddb
# yum clean all

নিম্নলিখিত yum কমান্ড দিয়ে ত্রুটিটি গেছে কিনা তা যাচাই করুন

# yum update

এই সমাধানটি yum এর পরিবর্তে dnf দিয়ে কাজ করবে বলে মনে হচ্ছে।
unhammer

আমি এগুলি করার পরেও "অসমাপ্ত লেনদেন বাকী .." পেয়েছি এবং ভাঙা প্যাকেজগুলি যে সমস্যার সৃষ্টি করেছে তা ভবিষ্যতের কোনও ইনস্টলেশন অবরুদ্ধ করে চলেছে। এই বিষয়টির জন্য, শেষ-ব্যবহারকারীর এগুলির কোনও দেখার / করা কেন প্রয়োজন হবে? যদি yum-db এর কোনও সমস্যা থাকে তবে এটি স্বয়ংক্রিয়ভাবে নিজেরাই পরিষ্কার / ঠিক করা উচিত - সর্বাধিক ay / n প্রম্পটে যা কোনও ওএস-টিনেকার বেছে নিতে পারে। আমার মামলার সমাধান খুঁজে পেয়েছে - উপরের কাজটি করুন, তারপরে "ইয়াম-সম্পূর্ণ-লেনদেন - ক্যালানআপ-কেবল" করুন
জোসেফকে

8
শুধু কেন নয় cd /var/lib/rpm; db_recover? বেশিরভাগ ক্ষেত্রে এটি পারমাণবিক বিকল্পের চেয়ে অনেক কম।
ক্রেগ রিঞ্জার

3
আমি sudo rpm --rebuilddbএকা আমার কেস সমাধান করি। তবুও সর্বদা /var/lib/rpmনিরাপদ জন্য ব্যাকআপ ।
অ্যালিক

যারা এখনও ইনস্টল করে নিহত বার্তাটি দেখতে পান, কেবল আপনার সার্ভারটি পুনরায় চালু করুন। হ্যাঁ, এটি এই কাজের মতো কিছু প্রাথমিক পেতে পুনরায় আরম্ভ করতে চুষে, তবে আমার পক্ষে কাজ করা এটাই ছিল।
নির্মল

0

ধন্যবাদ অ্যালেক্স, আপনার উত্তরটি আমার জন্য করা সামান্য পরিবর্তন বাদে আমার পক্ষে কাজ করেছে।

rm -f /var/lib/rpm/__db*

ত্রুটি ফিরে

rm: cannot remove `/var/lib/rpm/__db.001': Is a directory
rm: cannot remove `/var/lib/rpm/__db.002': Is a directory
rm: cannot remove `/var/lib/rpm/__db.004': Is a directory

সুতরাং আমার সাথে পুনরাবৃত্তি করতে হয়েছিল

rm -rf /var/lib/rpm/__db*

2
সেগুলি ডিরেক্টরি হওয়া উচিত নয়। যদি আপনি এটি দেখতে পান তবে আপনার fsckফাইল দুর্নীতি না রয়েছে তা নিশ্চিত করার জন্য আপনি নিজের বিভাজনে চালিয়ে যেতে চাইতে পারেন ।
ডকুয়েট

0

আমি উপরেরটি চেষ্টা করেছিলাম যা এটি কাজ করে নি

নীচে ঠিক কাজ করে

# cd /var/lib
# tar -zcvf /var/preserve/rpmdb-$(date +%Y-%m-%d_%H-%M-%S).tar.gz rpm

দ্রষ্টব্য: আরপিএম ডাটাবেস পুনরুদ্ধারের প্রচেষ্টাতে সমস্যা থাকলে এই টার ব্যাকআপ ব্যবহার করা যেতে পারে।

প্যাকেজ ফাইলটির অখণ্ডতা যাচাই করুন:

# cd /var/lib/rpm
# rm -f __db*      # to avoid stale locks
# /usr/lib/rpm/rpmdb_verify Packages

# mv Packages Packages.orig
# /usr/lib/rpm/rpmdb_dump Packages.orig | /usr/lib/rpm/rpmdb_load Packages


# rpm -vv --rebuilddb

আবার আরপিএম ডাটাবেস যাচাই করুন:

# cd /var/lib/rpm
# /usr/lib/rpm/rpmdb_verify Packages

0

আমাকে যা করতে হয়েছিল তা হ'ল ".লক" এক্সটেনশান সহ দুটি ফাইল এবং "__db" দিয়ে শুরু হওয়া তিনটি ফাইল delete

# rm /var/lib/rpm/.dbenv.lock
# rm /var/lib/rpm/.rpm.lock
# rm /var/lib/rpm/__db*

তার পরে, yum updateকাজ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.