একটি আপডেট করার চেষ্টা করার সময় আমি কীভাবে একটি "মার্জলিস্টের সাথে সমস্যা" বা "স্থিতি ফাইলটি পার্স করা যায়নি" ত্রুটি ঠিক করব?


355

কম্পিউটারটি আমাকে একটি উইন্ডোতে এই আউটপুট দিয়েছে:

E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_natty_main_binary-i386_Packages
E: The package lists or status file could not be parsed or opened.

আমি এটা কিভাবে ঠিক করবো?


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

উত্তর:


485

এই টার্মিনাল কমান্ডগুলির দ্বারা আপনার সমস্যার সমাধান করা উচিত:

প্রথমে একটি টার্মিনাল খোলার মাধ্যমে মার্জ তালিকাটি সরান ( চালু করতে Ctrl+ Alt+ টিপুন T) এবং এই আদেশটি চালান *:

sudo rm -vf /var/lib/apt/lists/*

এর পরে, একটি সাধারণ আপডেট চালিয়ে একটি নতুন তৈরি করুন:

sudo apt-get update

এই সমস্যার জন্য বাগ রিপোর্ট (এবং অন্য ) এখানে রয়েছে , যা এখন ঠিক হয়ে গেছে তাই এটি নতুন ত্রুটিযুক্ত ফাইল তৈরি করা উচিত নয়, তবে আপনার যদি ইতিমধ্যে ত্রুটিযুক্ত ফাইলগুলি থাকে তবে এই পোস্টে বর্ণিত হিসাবে সেগুলি সরিয়ে ফেলতে হবে।


* আরএম এর জন্য ব্যবহৃত বিকল্পগুলি -vহ'ল ভার্বোজ

-v, --verbose কী করা হচ্ছে তা ব্যাখ্যা করুন

এবং -fজোর

-f, --ফোর্হীন ফাইল এবং যুক্তি উপেক্ষা করুন, কখনই প্রম্পট করবেন না

আপনি যদি কোনও কমান্ড লাইন বা অপশনগুলি ব্যবহার সম্পর্কে সর্বদা অনিশ্চিত থাকেন তবে সর্বদা কমান্ডের ম্যানুয়াল পৃষ্ঠাটি উল্লেখ করুন । ম্যান আরএম উদাহরণস্বরূপ ম্যান আরএম অনুসন্ধান করে ইন্টারনেটে এগুলি অ্যাক্সেস করা যায় বা আপনি টার্মিনালে ঠিক একই কমান্ডটি লিখে একই তথ্য অ্যাক্সেস করতে পারেন উদাহরণস্বরূপ man rmপৃষ্ঠাটি প্রস্থান করার জন্য নির্দেশাবলী টার্মিনালের নীচে থাকবে যেমন এই

ম্যান পেজ অপশন এর ছবি


8
একজন ব্যক্তি দেখতে পেলেন যে তিনি এই দুটি পদক্ষেপটি একাধিকবার করতে হয়েছে, তবে এটি শেষ পর্যন্ত কার্যকর হয়েছে।
জন এস গ্রুবার

5
কমান্ডের -vfশেষে এটিকে রাখা অদ্ভুত rm
কিথ থমসন

6
এটি আমার পক্ষে সমস্যাটি সমাধান করেনি। আপডেট এখনও আমাকে ত্রুটি দেখায়।
সামুদ্রিক

1
এটি একটি পুনরাবৃত্তি সমস্যা। এটি একবারে ঘটতে থাকে। কেউ কি এই সমস্যার কারণ সম্পর্কে সচেতন?
রুশিল পল

1
আমি উত্তরটি @ জাজার বুঝতে সক্ষমতার জন্য সম্পাদনা করেছি
অ্যালান

82

একটি টার্মিনাল খুলুন এবং একবারে নিম্নলিখিত কমান্ডগুলি চালান:

sudo rm /var/lib/apt/lists/* -vf
sudo apt-get update

আরো দেখুন:


1
-vf কি করে?
স্পিডক্স

5
@ স্পিডক্স এর মতে man rm, -v' ভার্বোজ ' এবং এর -fঅর্থ 'বল'। অন্য কথায়, বিনামতি ছাড়াই সমস্ত মনোনীত ফাইলগুলি সরিয়ে ফেলুন এবং ব্যবহারকারী এটি কী করছে তা জানান।
চারটি

আমার ক্ষেত্রে, sudo apt-get updateসমস্যাটি ঠিক করে দিচ্ছি । আমি মনে করি অ্যালান অ্যাপের নতুন সংস্করণ উল্লেখ করেছে এটি স্বয়ংক্রিয়ভাবে সংশোধন করে, তাই সম্ভবত প্রথমে আপডেটটি চেষ্টা করুন।
থারস্মমনার

23

আপনি সম্পাদনা করার সময় ত্রুটিযুক্ত হয়েছিলেন /var/lib/dpkg/status। এটি সম্পাদনা করার আগে আপনি যে ব্যাকআপটি করেছিলেন তা এটিকে পুনরুদ্ধার করুন। অবশ্যই, আপনি একটি ব্যাকআপ তৈরি করেছেন, তাই না?

যেহেতু আপনি ব্যাকআপ তৈরি করেন নি, সাবধানতার সাথে আবার এডিট করুন । আরও ক্ষতি না করার চেষ্টা করুন।

আপনি /var/lib/dpkg/status.oldএকটি রেফারেন্স পয়েন্ট হিসাবে ব্যবহার করতে পারেন । এটি statusশেষ সময় dpkgপরিচালিত হওয়ার আগে থেকেই ফাইলটির একটি ব্যাকআপ । চালান

diff /var/lib/dpkg/status.old /var/lib/dpkg/status

পার্থক্য দেখতে। আপনি ম্যানুয়ালি যে পরিবর্তনগুলি করেছেন সেগুলি পূর্বাবস্থায় ফেরান এবং শেষ dpkgরানের দ্বারা আসা পরিবর্তনগুলি রাখুন ।

আপনি কি সত্যিই ফাইল মেরামত করতে পরিচালনা না পারেন, তাহলে, কপি /var/lib/dpkg/status.oldউপর /var/lib/dpkg/status। আপনি একটি সুগঠিত, তবে পুরানো প্যাকেজ ডাটাবেস পাবেন।

/var/lib/dpkg/statusসাধারণ ক্রিয়াকলাপে আপনাকে কখনই সম্পাদনা করতে হবে না। এমনকি বিষয়গুলি মারাত্মক ভুল হয়ে গেলেও /var/lib/dpkg/statusপ্রশাসকের হস্তক্ষেপের প্রয়োজন হয় না something আপনার সমস্যাগুলি যা-ই হোক না কেন crossplatformui, তাদের সমাধানের সম্ভবত আরও ভাল উপায় আছে। /var/lib/dpkg/statusএকটি প্রবাহের Packagesফাইলটি যখন ভেঙে গিয়েছিল তখন কেবল একবার সম্পাদনা করার দরকার ছিল।


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

1
@ নীরমিক সম্পর্কে কোন ধারণা নেই crossplatformui। পৃথক প্রশ্ন হিসাবে এটি জিজ্ঞাসা করুন। আমি আপনাকে বলতে পারি যে এক দশকেরও বেশি সময় ধরে dpkgবহু বেসরকারী উত্স ব্যবহার করে আমার খুব কমই statusফাইল সম্পাদনা করার প্রয়োজন হয়েছিল এবং কেবল তখন যখন ভাঙা তৃতীয় পক্ষের সংগ্রহস্থল ছিল।
গিলস

ঠিক আছে ... থ্যাঙ্কস আবারও অনেক .... আপনার পরামর্শ অনুসারে আমি এটিকে একটি নতুন প্রশ্ন হিসাবে পোস্ট করব :) এছাড়াও আপনি খুব উন্নত ব্যবহারকারী বলে মনে করছেন আমি আপনাকে জিজ্ঞাসা করতে চাই যদি আপনি অকার্যকর HOT তৈরির বিষয়ে কিছু জানেন কিনা -KTEYS কাজ ?? (আমার ওয়্যারলেস কী কাজটি পরিচালনা)
নির্মিক

পুরানোটিকে নতুন জায়গায় রাখার চেষ্টা করেছিল, আমার জন্য ঠিক করে নি। :-(
স্টাফেন গ্যারিচন

1
পুনরায়: you আপনি যখন আমার কাছে / var / lib / dpkg / স্থিতি সম্পাদনা করেছেন তখন আপনি বিভ্রান্ত হয়েছেন - না, আমি নই, আমি এই ফাইলটি স্পর্শ করি নি :) তবে এটি কেবলমাত্র সমাধান যা আমার সমস্যার সমাধান করে কেস। ধন্যবাদ.
ruslo


16

প্যাকেজ ম্যানেজার সমস্যা সমাধানের পদ্ধতিতে 2-5 পদক্ষেপ অনুসরণ করা সাধারণত এই সমস্যাটি সমাধান করে।

জন্য পদক্ষেপ 2 অক্ষম সব আপনার PPAs। সফটওয়্যার সোর্সগুলিতে আপনি ঠিক সেভাবেই চেক করতে পারেন ঠিক যেমন আপনি কেবল একটিটিকে চেক করতে চান; দেখতে একটি নির্দিষ্ট পিপিএ নিষ্ক্রিয় করতে কিভাবে? । আপনি এগুলি পরে সক্ষম করতে পারেন।

জন্য পদক্ষেপ 3 , কোনো খোলা প্রোগ্রাম আপনি যা করতে পারেন বন্ধ করুন। আপনার ওয়েব ব্রাউজারটি উন্মুক্ত রাখা সম্ভবত নিরাপদ যাতে আপনার সামনে আপনার নির্দেশাবলী থাকে। তবে কোনও প্যাকেজ পরিচালকরা চলছে না তা নিশ্চিত করা বিশেষভাবে গুরুত্বপূর্ণ । এর মধ্যে রয়েছে সফ্টওয়্যার সেন্টার, সফটওয়্যার আপডেটার (উবুন্টুর পুরানো সংস্করণগুলিতে আপডেট ম্যানেজার), সিনাপটিক এবং জিডিবি। এটিতে কমান্ড-লাইন প্যাকেজ পরিচালনার ইউটিলিটিগুলি , এবং apt-get, অন্তর্ভুক্ত রয়েছে ।dpkgaptitude

মনে রাখবেন যে অন্য ব্যবহারকারীরা একই সময়ে লগ ইন থাকলে, তাদের সম্ভব হলে লগ অফ করা উচিত।

জন্য পদক্ষেপ 4 , একটি টার্মিনাল উইন্ডো খুলুন। এটি করার একটি উপায় যা আপনি যে কোনও ডেস্কটপ এনভায়রনমেন্ট ব্যবহার করেন না কেন কাজ করে না, এটি Ctrl+ Alt+ টিপুন T

জন্য পদক্ষেপ 5 , টার্মিনাল উইন্ডোতে এই কমান্ড সঞ্চালন করুন:

ubuntu-support-status
sudo grep -R proxy /etc/apt/*
grep proxy  /etc/environment
echo $http_proxy
echo $ftp_proxy
grep proxy /etc/bash.bashrc
grep proxy ~/.bashrc
cat /etc/apt/apt.conf
sudo fuser -vvv /var/lib/dpkg/lock
sudo fuser -vvv /var/cache/apt/archives/lock
cat /etc/lsb-release
uname -a
sudo rm /var/lib/apt/lists/lock 
sudo rm  /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
sudo cp -arf /var/lib/dpkg /var/lib/dpkg.backup
sudo mv /var/lib/dpkg/status /var/lib/dpkg/status-bad
sudo cp /var/lib/dpkg/status-old /var/lib/dpkg/status  ||  sudo cp /var/backups/apt.extended_states.0 /var/lib/dpkg/status
sudo mv /var/lib/dpkg/available /var/lib/dpkg/available-bad
sudo cp /var/lib/dpkg/available-old /var/lib/dpkg/available
sudo rm -rf /var/lib/dpkg/updates/*
sudo rm -rf /var/lib/apt/lists
sudo rm /var/cache/apt/*.bin
sudo mkdir /var/lib/apt/lists
sudo mkdir /var/lib/apt/lists/partial
LANG=C;sudo apt-get clean
LANG=C;sudo apt-get autoclean
LANG=C;sudo apt-get --purge autoremove
LANG=C;sudo apt-get --fix-missing update -o APT::Cache-Limit=100000000
sudo dpkg --configure -a
sudo dpkg --clear-avail
LANG=C;sudo apt-get -f install
LANG=C;sudo apt-get --fix-missing install
LANG=C;sudo apt-get update -o APT::Cache-Limit=100000000 && sudo apt-get dist-upgrade
find /etc/apt -name '*.list' -exec bash -c 'echo -e "\n$1\n"; cat -n "$1"' _ '{}' \;

আমি 2 মার্চ 2014-এ প্যাকেজম্যানেজমেন্ট ট্রাবলশুটিং প্রসেসর থেকে সেই শব্দটি অনুলিপি করেছিলাম Those সেই আদেশগুলি অতীতে বিবর্তিত হয়েছে এবং সেই নিবন্ধে প্রস্তাবিত আদেশগুলি ভবিষ্যতে আবার পরিবর্তন বা প্রসারিত হতে পারে । সুতরাং আপনি সেখানে পদক্ষেপ 5 থেকে কাজ করতে চাইতে পারেন । ("নিবন্ধটি উবুন্টু ডকুমেন্টেশন উইকিতে অবদানকারীদের দ্বারা তৈরি / সম্পাদিত " - বিশেষত মার্ক রিজকেনবার্গ - এটি সিসি-বাই-এসএ 3.0 লাইসেন্সযুক্ত , এটি যথাযথ বৈশিষ্ট্যের সাথে এখানে অন্তর্ভুক্তির অনুমতি দেয়))

এই কমান্ডগুলির মধ্যে কয়েকটি সমস্যা সমাধানের চেষ্টা করে (এবং ডায়াগনস্টিক তথ্যও দেখাতে পারে); অন্যরা সমস্যা সম্পর্কে মূল্যবান তথ্য প্রদর্শন করে যা আপনি আপনার প্রশ্নে অন্তর্ভুক্ত করতে পারেন বা অন্যথায় আপনাকে সহায়তা করা কাউকে সরবরাহ করতে পারেন। (বা, আপনার দক্ষতার উপর নির্ভর করে এটি আপনাকে নির্ণয় এবং সমাধান করতে সক্ষম করতে পারে))

প্রায়শই এটি এটি সংশোধন করে তবে যখন এটি প্রায়শই এটি ঠিক না করার জন্য পর্যাপ্ত তথ্য দেয় gives

আপনাকে সেই আদেশগুলি ম্যানুয়ালি টাইপ করতে হবে না; আপনি এগুলি অনুলিপি এবং পেস্ট করতে পারেন। যদিও আমি প্রত্যেককে আলাদাভাবে আটকানো এবং চালানোর পরামর্শ দিই। এটি আউটপুটটি কোন আদেশ থেকে আসে তা এটি পরিষ্কার করে।


আমি পুরো ব্লকটি অনুলিপি করে একের পর এক চালানোর পরিবর্তে পেস্ট করেছি। যদিও এতে বেশ কয়েকটি আদেশ অকার্যকর এবং কিছু ব্যর্থ হয়েছে তবে অবশেষে এটি আমার ক্ষেত্রে সহায়তা করে
ফুক্লভি

11

যখন আপনার রেপোসে অনেক বেশি উত্স থাকে তখন আমি এই সমস্যাটি ঘটতেও দেখেছি।

উপরে পোস্ট করা সমাধানটি চেষ্টা করুন এবং / অথবা সম্ভবত এটি যা কখনও কখনও লঞ্চপ্যাডে প্রস্তাবিত হয়:

sudo mv /var/lib/apt/lists /var/lib/apt/lists-old
sudo mkdir -p /var/lib/apt/lists/partial
sudo apt-get update

আমাদের আপনি পেতে কিভাবে জানি।


ধন্যবাদ! এটি ম্যাসকির ছাড়াও ডিএসএলের সাথে কাজ করে না।
ডগ

4

আমি একই ধরণের ত্রুটির মধ্যে দৌড়াচ্ছিলাম:

Reading package lists... Error!
E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/dpkg/status
E: The package lists or status file could not be parsed or opened.

আমি অনুলিপি করতে অনুরূপ পরামর্শ অনুসরণ করে status-old

$ head /var/lib/dpkg/status
$ head /var/lib/dpkg/status-old

আমার সমস্ত স্ট্যাটাস ফাইল কোনও কারণে ফাঁকা ছিল। ভাগ্যক্রমে, আমি জানতে পেরেছি যে এই ফাইলগুলির ব্যাকআপ রয়েছে:

$ ls -l /var/backups/dpkg.status.*
-rw-r--r-- 1 root root 444620 Nov 15 06:33 /var/backups/dpkg.status.0
-rw-r--r-- 1 root root 444620 Nov 15 06:33 /var/backups/dpkg.status.1.gz
-rw-r--r-- 1 root root 128168 Sep 20  2013 /var/backups/dpkg.status.2.gz
-rw-r--r-- 1 root root 112545 Sep 16  2013 /var/backups/dpkg.status.3.gz
-rw-r--r-- 1 root root 107767 Sep 14  2013 /var/backups/dpkg.status.4.gz
-rw-r--r-- 1 root root 107766 Sep 11  2013 /var/backups/dpkg.status.5.gz
-rw-r--r-- 1 root root  94583 Sep 11  2013 /var/backups/dpkg.status.6.gz

আমি সর্বশেষ ব্যাকআপ চেক করেছি ...

$ head /var/backups/dpkg.status.0

... কিন্তু এটি এখনও ফাঁকা ছিল। সুতরাং আমি একটি পুরানো আনজিপড ...

$ gunzip /var/backups/dpkg.status.1.gz
$ head /var/backups/dpkg.status.1

এবার বিষয়বস্তু ছিল। সুতরাং আমি এটি অনুলিপি ...

$ cp /var/backups/dpkg.status.1 /var/lib/dpkg/status

তারপরে apt-get updateসমস্যা ছাড়াই দৌড়ে গেল।

ক্রেডিট এই পোস্টে যায়।


3

আমার একই সমস্যা ছিল এবং অন্যান্য উত্তরে উল্লিখিত সমস্ত সমস্যার সমাধানের চেষ্টা করেছি। আশ্চর্যের বিষয় হ'ল একমাত্র পদক্ষেপটি একটি আলাদা পদক্ষেপ ছিল:

  • সফ্টওয়্যার ও আপডেটগুলিতে যান -> উবুন্টু সফ্টওয়্যার -> ডাউনলোড করুন -> অন্যান্য-> সেরা সার্ভারটি নির্বাচন করুন

  • পরীক্ষার জন্য অপেক্ষা করুন। পরীক্ষাগুলি শেষে সেরা সার্ভারটি নির্বাচিত হবে, অগত্যা আপনার লোকেলের জন্য নিকটতম কোনও প্রধান সার্ভার বা সার্ভার নয়।

  • এখন পুনরায় লোড করুন রেপো ডেটা, এটি সঠিকভাবে শেষ হবে।

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