Bir güncelleştirme yapmaya çalışırken "Bir MergeList ile Sorun" veya "durum dosyası ayrıştırılamadı" hatasını nasıl giderebilirim?

342

Bilgisayar bana bu çıkışı bir pencerede verdi:

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.

Bunu nasıl düzeltebilirim?

    
sordu Braiam 12.03.2011 18:13

8 cevap

473

Bu terminal komutları sorununuzu çözmelidir:

İlk önce Birleştirme Listesini bir terminal açarak kaldırın (başlatmak için Ctrl + Alt + T tuşlarına basın) ve bu komutu çalıştırın *:

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

Sonra, basit bir güncelleme yaparak yeni bir tane oluşturun:

sudo apt-get update

İşte hata raporu (ve başka ), ancak zaten hatalıysa yeni hatalı biçimlendirilmiş dosyalar oluşturmamalı Bu yayında açıklandığı gibi kaldırmanız gereken hatalı biçimlendirilmiş dosyalara sahip olmalısınız.

* rm için kullanılan seçenekler -v verbose

'dir.
  

-v, --verbose                 neler yapıldığını açıkla

ve -f kuvvet

  

-f, --force                 varolmayan dosyaları ve bağımsız değişkenleri yoksay, asla sorma

Bir komut satırı veya kullanılmakta olan seçenekler hakkında emin değilseniz, her zaman komut için manuel sayfaya bakın. Bunlara, insanı arayarak ve man rm komutunu kullanarak internette erişilebilir. veya aynı bilgiyi, terminalde tam olarak aynı komutu yazarak erişebilirsiniz, örneğin, sayfanın sonlandırılması için man rm talimatı, terminalin altındaki gibi olacaktır

    
verilen cevap Allan 13.03.2011 17:53
80

Bir Terminali açın ve aşağıdaki komutları teker teker çalıştırın:

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

Ayrıca bkz:

verilen cevap tommyk 08.02.2011 19:37
23

/var/lib/dpkg/status 'sini düzenlediğinizde hata yaptınız. Düzenlemeden önce yaptığınız yedeklemeden geri yükleyin. Tabii ki bir yedek yaptın, değil mi?

Yedekleme yapmadığınız için tekrar düzenleyin, dikkatlice . Daha fazla zarar vermemeye çalışın.

/var/lib/dpkg/status.old değerini referans noktası olarak kullanabilirsiniz. Bu status dosyasının en son dpkg dosyasının çalıştırılmasından önceki bir yedeğidir. Çalıştır

diff /var/lib/dpkg/status.old /var/lib/dpkg/status
Farkları görmek için

. El ile yaptığınız değişiklikleri geri alın ve son dpkg çalışmasının yaptığı değişiklikleri saklayın.

Dosyayı gerçekten tamir edemiyorsanız, /var/lib/dpkg/status.old 'yi /var/lib/dpkg/status ' den kopyalayın. İyi oluşturulmuş, ama güncel olmayan bir paket veritabanı alacaksınız.

Normalde /var/lib/dpkg/status 'yi düzenleme gereği duymazsınız. İşler ciddiye alınsa bile, /var/lib/dpkg/status yönetici müdahalesi gerektiren bir şey değildir. % Co_de% ile olan sorunlarınız ne olursa olsun, muhtemelen bunları çözmenin daha iyi bir yolu vardır. % Co_de% 'ı düzenlemek için gereken tek zaman, bir önceki crossplatformui dosyasının bozuk olduğu zamandı.

    
verilen cevap Gilles 13.05.2012 17:37
18

Yaptım

sudo apt-get clean
sudo apt-get update

ve işe yaradı.

    
verilen cevap psychok7 31.07.2012 15:34
16

Paket Yöneticisi Sorun Giderme Prosedürü 'ndeki 2-5. adımları izleyerek genellikle bu sorunu çözer.

adım 2 için tümünü PPA'lar. Bunların tümünü, yalnızca bir tanesini kaldırdığınız gibi, Yazılım Kaynaklarındaki işaretini kaldırabilirsiniz; Belli bir PPA nasıl devre dışı bırakılır? konusuna bakın. Daha sonra yeniden etkinleştirebilirsiniz.

3. adım için, yapabileceğiniz açık programları kapatın. Web tarayıcınızı açık tutmak muhtemelen güvenlidir, bu yüzden talimatlarınızı önünüzde bulundurun. Ancak, herhangi bir paket yöneticisinin çalışmıyor olduğundan emin olmanız özellikle önemlidir. Buna Yazılım Merkezi, Yazılım Güncelleyici (Ubuntu'nun eski sürümlerinde Güncelleme Yöneticisi), Synaptic ve Gdebi de dahildir. Ayrıca, apt-get , dpkg ve aptitude gibi komut satırı paket yönetimi yardımcı programlarını içerir.

Diğer kullanıcılar 'un aynı anda oturum açması durumunda, mümkün olduğunda oturumdan çıkmaları gerektiğini unutmayın.

4. adım için bir terminal penceresi açın. Kullanmakta olduğunuz masaüstü ortamı ne olursa olsun, bunu yapmanın bir yolu, Ctrl + Alt + T tuşlarına basmaktır.

adım 5 için, bu komutları terminal penceresinde çalıştırın:

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\n"; cat -n ""' _ '{}' \;

Bu yazımın 2 Mart 2014'te PackageManagementTroubleshoootingProcedure adresinden kopyaladım. Bu komutlar geçmişte ve önerilen komutlarda geçmişte Bu makalede gelecekte yeniden değiştirilebilir veya genişletilebilir . Yani, 5. adımda çalışmak isteyebilirsiniz. (Bu makale, "Ubuntu dokümantasyon wiki'sine katkıda bulunanlar" tarafından oluşturuldu / düzenlendi - özellikle Mark Rijckenberg - lisanslı CC-BY-SA 3.0 , burada uygun şekilde ilişkilendirmeye izin verir.)

Bu komutlardan bazıları sorunu çözmeye çalışır (ayrıca tanı bilgilerini de gösterebilir); diğerleri, sorunuza dahil edebileceğiniz veya başka bir şekilde size yardımcı olacak biriyle ilgili sorun hakkında değerli bilgiler gösterir. (Veya, yeteneklerinize bağlı olarak, siz 'i teşhis etmeniz ve çözmeniz için etkinleştirebilirsiniz.)

Sıklıkla bu sorunu giderir, ancak olmadığı zaman bunu düzeltmek için yeterli bilgiyi verir.

Bu komutları elle yazmanız gerekmez; Onları kopyalayıp yapıştırabilirsiniz. Yine de, her birini ayrı ayrı yapıştırmanızı ve çalıştırmanızı öneririm. Bu, hangi komutlardan hangi çıktının alındığını netleştirir.

    
verilen cevap Eliah Kagan 28.11.2011 03:36
11

Ayrıca, bu sorun, reposunuzda çok fazla kaynağınız olduğunda ortaya çıkıyor.

Yukarıda belirtilen çözümü ve / veya belki de bazen launchpad'de önerilenleri deneyin:

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

Nasıl devam edeceğini bize bildirin.

    
verilen cevap andybleaden 08.05.2011 12:19
4

Benzer bir hataya koşuyordum:

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 kopyasını kopyalamak için benzer önerileri takip ettim.

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

Tüm durum dosyam nedense boştu. Neyse ki, bu dosyaların yedeklerini buldum:

$ 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

En son yedeklemeyi kontrol ettim ...

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

... ama hala boştu. Bu yüzden eski bir tane çıkardım ...

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

Bu sefer içerik vardı. Ben de kopyaladım ...

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

Ardından apt-get update sorun yaşamadan çalıştı.

Kredi bu yayına gider.

    
verilen cevap Andrew 12.04.2014 00:43
3

Aynı sorunu yaşadım ve diğer cevaplarda bahsedilen tüm sorun giderme işlemlerini denedim. Garip olan tek çözüm farklı bir adımdı:

  • Yazılım ve amp; güncellemeler - & gt; Ubuntu Yazılımı - & gt; Şuradan indir - & gt; Diğer- & gt; En İyi Sunucu Seç

  • Testleri bekleyin. Testlerin sonunda en iyi sunucu seçilecektir, mutlaka en yakın olanı veya ana sunucu veya yerel ayarınız için sunucu değil.

  • Şimdi Repo verilerini tekrar yükle, Düzgün bir şekilde bitecek.

verilen cevap Muhammad El Nakeep 11.11.2015 05:12

Etiketlerdeki diğer soruları oku