সেন্টস-এ কিভাবে দুর্নীতিগ্রস্থ আরপিএম ডাটাবেস পুনর্নির্মাণ করবেন


আরপিএম ডাটাবেসটি সেন্টস এবং অন্যান্য এন্টারপ্রাইজ লিনাক্স বিতরণ যেমন আরএইচইএল, ওপেনসুএস, ওরাকল লিনাক্স এবং আরও অনেক কিছুর মধ্যে/var/lib/rpm/ডিরেক্টরিতে ফাইল দ্বারা গঠিত of

আরপিএম ডাটাবেস দূষিত হয়ে থাকলে, আরপিএম সঠিকভাবে কাজ করবে না, সুতরাং আপনার সিস্টেমে আপডেট প্রয়োগ করা যাবে না, rpm এবং yum কমান্ডের মাধ্যমে আপনার সিস্টেমে প্যাকেজ আপডেট করার সময় আপনি ত্রুটির সম্মুখীন হন।

এমন অনেকগুলি কারণ রয়েছে যা আরপিএম ডাটাবেস দুর্নীতির দিকে পরিচালিত করতে পারে যেমন পূর্ববর্তী লেনদেন অসম্পূর্ণ করা, নির্দিষ্ট তৃতীয় পক্ষের সফ্টওয়্যার ইনস্টল করা, নির্দিষ্ট প্যাকেজ অপসারণ এবং আরও অনেকগুলি।

এই নিবন্ধে, আমরা কীভাবে একটি দূষিত আরপিএম ডাটাবেস পুনর্নির্মাণ করব তা দেখাব; আপনি সেন্টোসের কোনও আরপিএম ডাটাবেস দুর্নীতি থেকে পুনরুদ্ধার করতে পারেন। এর জন্য রুট ব্যবহারকারীর সুবিধাগুলি প্রয়োজন, অন্যথায়, এই সুযোগগুলি অর্জন করতে sudo কমান্ডটি ব্যবহার করুন।

CentOS এ দুর্নীতিগ্রস্থ আরপিএম ডেটাবেস পুনর্নির্মাণ

নিম্নলিখিত কমান্ড ব্যবহার করে প্রথমে আপনার বর্তমান আরপিএম ডাটাবেসটি ব্যাক আপ করে শুরু করুন (ভবিষ্যতে আপনার এটি প্রয়োজন হতে পারে)।

# mkdir /backups/
# tar -zcvf /backups/rpmdb-$(date +"%d%m%Y").tar.gz  /var/lib/rpm

এরপরে, মাস্টার প্যাকেজ মেটাডেটা ফাইল/var/lib/rpm/প্যাকেজগুলির অখণ্ডতা যাচাই করুন; এটি সেই ফাইল যা পুনর্নির্মাণের প্রয়োজন, তবে নীচের কমান্ডগুলি ব্যবহার করে বাসি লকগুলি রোধ করতে প্রথমে/var/lib/rpm/__ db * ফাইলগুলি সরান।

# rm -f /var/lib/rpm/__db*		
# /usr/lib/rpm/rpmdb_verify /var/lib/rpm/Packages

উপরের অপারেশনটি ব্যর্থ হওয়ার ক্ষেত্রে, যার অর্থ আপনি এখনও ত্রুটির মুখোমুখি হন, তারপরে আপনার একটি নতুন ডাটাবেস ডাম্প করা এবং লোড করা উচিত। নীচে নতুনভাবে লোড হওয়া প্যাকেজগুলির ফাইলের অখণ্ডতা যাচাই করুন।

# cd /var/lib/rpm/
# mv Packages Packages.back
# /usr/lib/rpm/rpmdb_dump Packages.back | /usr/lib/rpm/rpmdb_load Packages
# /usr/lib/rpm/rpmdb_verify Packages

এখন ডাটাবেস শিরোনামগুলি পরীক্ষা করতে, -q এবং -a পতাকা ব্যবহার করে সমস্ত ইনস্টল করা প্যাকেজগুলি জিজ্ঞাসা করুন এবং স্ট্যাডারারে পাঠানো কোনও ত্রুটি (গুলি) সাবধানতার সাথে পর্যবেক্ষণ করার চেষ্টা করুন।

# rpm -qa >/dev/null	#output is discarded to enable printing of errors only

সর্বশেষে তবে কমপক্ষে, নিম্নলিখিত কমান্ডটি ব্যবহার করে আরপিএম ডাটাবেসটি পুনর্নির্মাণ করুন, -vv বিকল্পটি প্রচুর ডিবাগিং তথ্য প্রদর্শনের অনুমতি দেয়।

# rpm -vv --rebuilddb

RPM ডেটাবেস সনাক্ত এবং সঠিক করতে dcrpm সরঞ্জাম ব্যবহার করুন

আমরা আরপিএম ডাটাবেস দুর্নীতির জন্য সুপরিচিত সমস্যাগুলি সনাক্ত করতে এবং সংশোধন করতে ব্যবহৃত ডেসিআরএমপি (সনাক্ত এবং সঠিক আরপিএম) কমান্ড লাইন সরঞ্জামটিও আবিষ্কার করেছি। এটি একটি সহজ এবং সহজেই ব্যবহারযোগ্য সরঞ্জাম যা আপনি বিকল্প ছাড়াই চালাতে পারেন। কার্যকর এবং নির্ভরযোগ্য ব্যবহারের জন্য, আপনার ক্রোন এর মাধ্যমে এটি নিয়মিত চালানো উচিত।

আপনি এটি উত্স থেকে ইনস্টল করতে পারেন; উত্স ট্রিটি ডাউনলোড করুন এবং সেটআপ.পি ব্যবহার করে এটি ইনস্টল করুন (যা পাইপির কাছ থেকেও psutil নির্ভরতা গ্রহন করা উচিত), যেমনটি দেখানো হয়েছে।

# git clone https://github.com/facebookincubator/dcrpm.git
# cd dcrpm
# python setup.py install

একবার আপনি ডিসিআরপিএম ইনস্টল করার পরে এটি প্রদর্শিত হিসাবে চালান।

# dcrpm

শেষ পর্যন্ত, আপনার ব্যর্থ আরপিএম বা yum কমান্ডটি আবার চালানোর চেষ্টা করুন সবকিছু ঠিকঠাক চলছে কিনা তা দেখতে।

ডিসিআরএম গিথুব সংগ্রহশালা: https://github.com/facebookincubator/dcrpm
আপনি আরপিএম ডাটাবেস পুনরুদ্ধার পৃষ্ঠা থেকে আরও তথ্য পেতে পারেন।

এখানেই শেষ! এই নিবন্ধে, আমরা ব্যাখ্যা করেছি যে কীভাবে সেন্টস-এ একটি দূষিত আরপিএম ডাটাবেস পুনর্নির্মাণ করা যায়। এই গাইড সম্পর্কে কোনও প্রশ্ন জিজ্ঞাসা করতে বা আপনার মতামত ভাগ করতে নীচের প্রতিক্রিয়া ফর্মটি ব্যবহার করুন।