जब मैं एक अद्यतन करने की कोशिश कर रहा हूं तो "समस्या के साथ मर्जिस्ट" या "स्थिति फ़ाइल पार्स नहीं की जा सकी" त्रुटि को कैसे ठीक किया जाए?


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
यह मुझे परेशान कर रहा है कि यह ऑपरेटिंग सिस्टम कितनी अजीब तरह से अपने अपडेट को संभालता है, यहां तक ​​कि अब भी, उपयोगकर्ता द्वारा कोई विशेष दुरुपयोग के बाद यह और इसी तरह की चीजों की आवश्यकता होती है।
मैट

जवाबों:


485

इन टर्मिनल कमांड को आपकी समस्या का समाधान करना चाहिए:

सबसे पहले एक टर्मिनल (प्रेस खोलने के द्वारा मर्ज सूची को दूर Ctrl+ Alt+ Tशुरू करने के लिए) और इस आदेश चला *:

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

अगला, एक साधारण अपडेट चलाकर एक नया निर्माण करें:

sudo apt-get update

इस समस्या के लिए यहां बग रिपोर्ट (और अन्य ) है, जो अब तय हो गई है, इसलिए इसे नई विकृत फाइलें नहीं बनानी चाहिए, हालांकि यदि आपके पास पहले से ही विकृत फाइलें हैं, तो आपको उन्हें हटाने की जरूरत है जैसा कि इस पोस्ट में बताया गया है।


* विकल्प rm के लिए इस्तेमाल कर रहे हैं -vवर्बोज़

-v, --verbose समझाएं कि क्या किया जा रहा है

और -fबल

-f, - लागू न होने वाली फ़ाइलों और तर्कों को अनदेखा करें, कभी भी संकेत न दें

यदि आप कभी कमांड लाइन के बारे में अनिश्चित होते हैं या उपयोग किए जा रहे विकल्प हमेशा कमांड के लिए मैनुअल पेज को संदर्भित करते हैं । इन्टरनेट पर आदमी और कमांड के लिए सर्च करके इंटरनेट पर एक्सेस किया जा सकता है उदाहरण के लिए rm या आप टर्मिनल के man rmबिल्कुल नीचे दिए गए निर्देशों के लिए टर्मिनल में ठीक उसी कमांड को टाइप करके उसी जानकारी को एक्सेस कर सकते हैं जैसे टर्मिनल के नीचे इस

मैन पेज विकल्प की तस्वीर


8
एक व्यक्ति ने पाया कि उसे ये दो कदम कई बार करने पड़े, लेकिन यह आखिरकार काम कर गया।
जॉन एस ग्रुबर

5
कमांड -vfके अंत में रखना अजीब है rm
कीथ थॉम्पसन

6
यह मेरे लिए समस्या का समाधान नहीं था। अद्यतन अभी भी मुझे वह त्रुटि दिखाता है।
मरीन

1
यह एक आवर्ती समस्या है। यह एक बार में ही हो जाता है। क्या किसी को इस समस्या के कारण के बारे में पता है?
रशिल पॉल

1
मैंने समझने की क्षमता के लिए उत्तर संपादित किया है @ जस्सर
एलन

82

एक टर्मिनल खोलें और एक बार में निम्न कमांड चलाएं:

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

यह सभी देखें:


1
-vf क्या करता है?
स्पीडॉक्स

5
@speedox, के अनुसार man rm, -v' क्रिया ' का -fअर्थ है , और 'बल' का अर्थ है। दूसरे शब्दों में, बिना संकेत दिए सभी निर्दिष्ट फ़ाइलों को हटा दें और उपयोगकर्ता को बताएं कि वह क्या कर रहा है।
चार

मेरे मामले में, बस sudo apt-get updateतय समस्या कर रही है। मुझे लगता है कि एलन ने उपयुक्त रूप से नए संस्करणों का उल्लेख किया है, इसलिए यह स्वचालित रूप से सही है, इसलिए शायद पहले अपडेट का प्रयास करें।
थोरसुमोनर

23

जब आप संपादित करते हैं तो आप खराब हो जाते हैं /var/lib/dpkg/status। इसे बैकअप से पुनर्स्थापित करें जो आपने इसे संपादित करने से पहले बनाया था। बेशक, आपने एक बैकअप बनाया है, है ना?

चूंकि आपने बैकअप नहीं बनाया था, इसलिए इसे फिर से, सावधानी से संपादित करें । कोशिश करें कि ज्यादा नुकसान न हो।

आप /var/lib/dpkg/status.oldसंदर्भ बिंदु के रूप में उपयोग कर सकते हैं । यह statusआखिरी बार dpkgचलने से पहले फ़ाइल का बैकअप है । Daud

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ऐसा कुछ नहीं है जो प्रशासक के हस्तक्षेप की आवश्यकता है। आपकी जो भी समस्याएं crossplatformuiथीं, उन्हें हल करने का एक बेहतर तरीका शायद है। केवल एक बार जिसे मैंने संपादित करने की आवश्यकता की /var/lib/dpkg/statusथी, जब एक अपस्ट्रीम Packagesफ़ाइल टूट गई थी।


मैं भी बेहतर तरीका जानना चाहूंगा जिस तरह से आपने क्रोसप्लामिटी को हटाने का उल्लेख किया है यदि आप कोज़ की मदद कर सकते हैं तो मैंने इसे हटाने के लिए हर संभव कोशिश की और कई समाधान खोजने की कोशिश की, लेकिन केवल एक ही जिसका मैंने उल्लेख किया है ...
निर्मिक

1
@ निर्मिक के बारे में कोई विचार नहीं है crossplatformui। एक अलग प्रश्न के रूप में पूछें। मैं आपको बता सकता हूं कि dpkgकई अनधिकृत स्रोतों सहित, उपयोग करने के एक दशक से अधिक समय में , मुझे statusफ़ाइल को संपादित करने के लिए बहुत कम ही आवश्यकता है , और केवल जब एक टूटी हुई थर्ड-पार्टी रिपॉजिटरी थी।
गाइल्स

ठीक है ... एक बार फिर से थैंक्स .... जैसा कि आप सुझाव देते हैं कि मैं इसे एक नए प्रश्न के रूप में पोस्ट करूंगा :) जैसा कि आप एक बहुत ही उन्नत उपयोगकर्ता लगते हैं मैं आपसे पूछना चाहता हूं कि क्या आप गैर-कामकाजी बनाने के बारे में कुछ जानते हैं HOT -KTEYS काम ?? (मेरे वायरलेस कुंजी काम करते हैं)
निर्मिक

नए के स्थान पर पुराने को डालने की कोशिश की, मेरे लिए ठीक नहीं किया। :-(
स्टीफन गौरीचॉन

1
पुन: {आपने मेरे लिए संपादित / var / lib / dpkg / स्टेटस के रूप में स्क्रू अप किया है - नहीं, मैं नहीं, मैं इस फाइल को नहीं छूता हूं :) हालाँकि यह केवल समाधान है जो मेरी समस्या का समाधान करता है मामला। धन्यवाद।
10


16

पैकेज प्रबंधक समस्या निवारण प्रक्रिया में 2-5 चरणों का पालन आमतौर पर इस समस्या का हल करता है।

के लिए चरण 2 , अक्षम सभी अपने PPAs। आप सॉफ्टवेयर स्रोतों में उन सभी को अनचेक कर सकते हैं जिस तरह से आप सिर्फ एक को अनचेक करेंगे; देखें कि किसी विशेष पीपीए को कैसे निष्क्रिय किया जाए? । आप उन्हें बाद में पुन: सक्षम कर सकते हैं।

के लिए चरण 3 , किसी भी खुले कार्यक्रमों आप कर सकते हैं बंद कर दें। अपने वेब ब्राउज़र को खुला रखना शायद सुरक्षित है, ताकि आपके सामने आपके निर्देश हों। लेकिन यह सुनिश्चित करना विशेष रूप से महत्वपूर्ण है कि कोई भी पैकेज प्रबंधक नहीं चल रहा है । इसमें सॉफ्टवेयर सेंटर, सॉफ्टवेयर अपडेटर (उबंटू के पुराने संस्करणों में अपडेट मैनेजर), सिनैप्टिक और जीडीबी शामिल हैं। यह भी तरह कमांड लाइन पैकेज प्रबंधन उपयोगिताएं शामिल हैं apt-get, dpkg, और aptitude

ध्यान दें कि यदि अन्य उपयोगकर्ता उसी समय लॉग ऑन होते हैं, तो उन्हें संभव हो तो लॉग ऑफ करना चाहिए।

के लिए चरण 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 को PackageManagementTroubleshoootingProcedure से उस शब्दशः की प्रतिलिपि बनाई । वे आदेश अतीत में विकसित हुए हैं और उस लेख में अनुशंसित कमांड भविष्य में फिर से बदल सकते हैं या विस्तारित हो सकते हैं । तो आप वहां चरण 5 से काम करना चाह सकते हैं । (यह लेख, बनाया / संपादित "उबंटू प्रलेखन विकी के लिए योगदानकर्ताओं द्वारा" - विशेष रूप से मार्क Rijckenberg --is लाइसेंस प्राप्त CC-BY-SA 3.0 ।, जो समुचित श्रेय के साथ यहाँ शामिल किए जाने के लिए अनुमति देता है)

उन आदेशों में से कुछ समस्या को ठीक करने का प्रयास करते हैं (और नैदानिक ​​जानकारी भी दिखा सकते हैं); अन्य लोग उस समस्या के बारे में मूल्यवान जानकारी प्रदर्शित करते हैं जिसे आप अपने प्रश्न में शामिल कर सकते हैं या अन्यथा आपकी मदद करने वाले किसी व्यक्ति को प्रदान कर सकते हैं। (या, आपके कौशल के आधार पर, आप इसका निदान और समाधान कर सकते हैं।)

अक्सर यह इसे ठीक कर देता है लेकिन जब यह नहीं होता है तो इसे ठीक करने के लिए अक्सर पर्याप्त जानकारी मिलती है।

आपको उन आदेशों को मैन्युअल रूप से टाइप करने की ज़रूरत नहीं है; आप उन्हें कॉपी और पेस्ट कर सकते हैं। मैं प्रत्येक को अलग-अलग चिपकाने और चलाने की सलाह देता हूं, हालांकि। इससे यह स्पष्ट हो जाता है कि किस कमांड से आउटपुट होता है।


मैंने एक-एक को चलाने के बजाय पूरे ब्लॉक और पेस्ट को कॉपी किया। हालाँकि इसमें कई कमांड बेकार हैं और कुछ विफल रहे, लेकिन आखिरकार यह मेरे मामले में मदद करता है
phuclv

11

मैंने इस समस्या को तब भी देखा है जब आपके रिपॉज में बहुत सारे स्रोत हैं।

ऊपर पोस्ट समाधान का प्रयास करें और / या शायद यह भी जो कभी-कभी लॉन्चपैड पर अनुशंसित होता है:

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

हमें बताएं कि आपके द्वारा किस प्रकार प्रबंध किया जाता है।


धन्यवाद! यह DSL के साथ makedir के बिना भी काम नहीं करता था।
डग

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

मुझे एक ही समस्या थी और अन्य उत्तरों में वर्णित सभी समस्या निवारण की कोशिश की। अजीब तरह से एकमात्र फिक्स एक अलग कदम था:

  • सॉफ्टवेयर और अपडेट पर जाएं -> उबंटू सॉफ्टवेयर -> डाउनलोड से -> अन्य-> सर्वश्रेष्ठ सर्वर का चयन करें

  • परीक्षणों की प्रतीक्षा करें। परीक्षणों के अंत में सर्वश्रेष्ठ सर्वर का चयन किया जाएगा, जरूरी नहीं कि निकटतम और न ही मुख्य सर्वर और न ही आपके लोकेल के लिए सर्वर।

  • अब डेटा को फिर से लोड करें, यह ठीक से समाप्त हो जाएगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.