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


कंप्यूटर ने मुझे यह आउटपुट विंडो में दिया:

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.

मैं इसे कैसे ठीक करूं?


342
2018-03-12 17:13


मूल


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


जवाब:


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

टर्मिनल खोलकर सबसे पहले मर्ज सूची हटाएं (प्रेस Ctrl+ऑल्ट+टी लॉन्च करने के लिए) और इस कमांड को चलाएं *:

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

इसके बाद, एक साधारण अद्यतन चलाकर एक नया उत्पन्न करें:

sudo apt-get update

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


* आरएम के लिए इस्तेमाल विकल्प हैं -v वाचाल

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

तथा -f बल

-एफ, - बल                 अनौपचारिक फ़ाइलों और तर्कों को अनदेखा करें, कभी भी संकेत न दें

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

picture of man page options


473
2018-03-13 16:53



एक व्यक्ति को पता चला कि उसे कई बार इन दो चरणों को करना था, लेकिन यह अंततः काम करता था। - John S Gruber
इसे रखना अजीब है -vf के अंत में rm आदेश। - Keith Thompson
इसने मेरे लिए इस मुद्दे को हल नहीं किया। अद्यतन अभी भी मुझे वह त्रुटि दिखाता है। - marines
यह एक आवर्ती समस्या है। यह थोड़ी देर में एक बार हो रहा है। क्या कोई इस समस्या के कारण से अवगत है? - Rushil
मैंने समझने की क्षमता @ jasser के जवाब का संपादन किया है - Allan


एक टर्मिनल खोलें और एक ही समय में निम्न आदेश चलाएं:

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

यह भी देखें:


80
2018-02-08 18:37



-vf क्या करता है? - speedox
@ स्पीडॉक्स, के अनुसार man rm, -v मतलब 'verbose', और -f मतलब 'बल' है। दूसरे शब्दों में, बिना किसी संकेत के सभी नामित फ़ाइलों को हटा दें और उपयोगकर्ता को बताएं कि यह क्या कर रहा है। - fouric
मेरे मामले में, बस कर रहे हैं sudo apt-get update समस्या तय की। मुझे लगता है कि एलन ने इसे स्वचालित रूप से सही के नए संस्करणों का उल्लेख किया है, इसलिए शायद पहले अपडेट को आजमाएं। - ThorSummoner


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


23
2018-05-13 15:37



मैं क्रॉसप्लेटफार्मू को हटाने के लिए आपके द्वारा वर्णित बेहतर तरीके से जानना चाहूंगा यदि आप कोज़ की मदद कर सकते हैं तो मैंने इसे हटाने के हर संभव तरीके से प्रयास किया और कई समाधान खोजने की कोशिश की लेकिन केवल मैंने जो उल्लेख किया है, वह काम किया है ... - Nirmik
@निर्मिक के बारे में कोई विचार नहीं crossplatformui। एक अलग सवाल के रूप में पूछें। मैं आपको बता सकता हूं कि उपयोग करने के एक दशक से अधिक में dpkg, कई अनौपचारिक स्रोतों सहित, मुझे संपादित करने के लिए बहुत ही कम आवश्यकता है status फ़ाइल, और केवल तभी जब एक टूटी हुई थर्ड-पार्टी रिपोजिटरी थी। - Gilles
ठीक है ... Thanx एक बार फिर से .... जैसा कि आप सुझाव देते हैं कि मैं इसे एक नए प्रश्न के रूप में पोस्ट करूंगा :) जैसा कि आप एक बहुत ही उन्नत उपयोगकर्ता प्रतीत करते हैं, मैं आपको पूछना चाहूंगा कि क्या आप गैर कामकाजी हॉट बनाने के बारे में कुछ जानते हैं -केटीवाईएस काम करते हैं ?? (मेरी वायरलेस कुंजी काम करता है) - Nirmik
पुराने को जगह में रखने की कोशिश की, मेरे लिए ठीक नहीं किया। :-( - Stéphane Gourichon
पुन: {जब आप संपादित / var / lib / dpkg / status} संपादित करते हैं तो आप खराब हो जाते हैं - नहीं, मैं नहीं हूं, मैंने इस फ़ाइल को छुआ नहीं है :) हालांकि यह केवल समाधान है जो मेरी समस्या को हल करता है मामला। धन्यवाद। - ruslo


मैंने किया

sudo apt-get clean
sudo apt-get update

और यह काम किया।


18
2017-07-31 13:34



मेरे लिए ठीक नहीं किया। :-( - Stéphane Gourichon


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

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

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

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

के लिये चरण 4टर्मिनल विंडो खोलें। ऐसा करने का एक तरीका यह है कि इससे कोई फर्क नहीं पड़ता कि आप किस डेस्कटॉप वातावरण का उपयोग करते हैं, प्रेस करना है Ctrl+ऑल्ट+टी

के लिये चरण 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"' _ '{}' \;

मैंने उस क्रियापद की प्रतिलिपि बनाई PackageManagementTroubleshoootingProcedure 2 मार्च 2014 को। उन आदेशों को अतीत में विकसित किया गया है और उस आलेख में अनुशंसित आदेश भविष्य में फिर से बदला या विस्तार किया जा सकता है। तो आप से काम करना चाह सकते हैं वहां 5 कदम। (वह लेख, बनाया / संपादित "उबंटू दस्तावेज विकी के योगदानकर्ता" - विशेष रूप से मार्क रिजकेनबर्ग--है लाइसेंस प्राप्त सीसी-बाय-एसए 3.0, जो उचित विशेषता के साथ यहां शामिल करने की अनुमति देता है।)

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

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

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


16
2017-11-28 02:36



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


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

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

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

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


11
2018-05-08 10:19



धन्यवाद! यह निर्माता के बिना डीएसएल के साथ भी काम नहीं करता था। - Doug


मैं एक समान त्रुटि में चल रहा था:

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

... लेकिन यह अभी भी खाली था। तो मैं एक पुराने एक unzipped ...

$ 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 समस्याओं के बिना भाग गया।

इस पोस्ट में क्रेडिट जाता है।


4
2018-04-11 22:43





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

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

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

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


3
2017-11-11 04:12