Wie entferne ich eine fehlerhafte Zeile aus meiner sources.list?


68

Ich habe das Ubuntu Software Center deinstalliert und neu installiert, wie in einem ähnlichen Thread beschrieben, und ich habe die gleiche Antwort zu Zeile 91 oder ähnlichem erhalten.

Ich habe gerade versucht, einen Screenshot hochzuladen, aber da ich neu bin, kann ich das nicht. Ich kann auch nicht herausfinden, wie man etwas ausschneidet und einfügt, also muss ich von Hand eingeben, was auf dem Fehlerbildschirm steht, sowohl wenn ich versuche, das Software-Center zu öffnen, als auch wenn nichts passiert, wenn ich versuche, Befehle zum Deinstallieren in das Terminal einzugeben, neu zu installieren , was auch immer ich bekomme die gleichen folgenden:

COULD NOT INTITIALIZE THE PACKAGE INFORMATION
An unresolvable problem occured while initializing the package information
Please report t:his bug against the 'update-manager' package and include the
following error message:
'E: Malformed line 91 in source list/etc/apt/sources.list (dist parse) 
E: The list of sources could not be read., 
E: The package list of status file could not be parsed or opened.

Wie melde ich Fehler? Was kann man dagegen tun? Ich habe gesucht und alles, was jeder sagt, um zu tun, führt mich zurück zu der gleichen Zeilenfehlermeldung.

Ich weiß also nicht, wie ich in der Quellenliste zu Zeile 91 komme. um Ihnen zu sagen, was es sagt. Entschuldigung, das ist mir wirklich neu. Das ist, was ich brauche, um herauszufinden, wie ich dorthin komme und was darin steht. Ich möchte wirklich NICHT meine Festplatte neu partitionieren und von vorne anfangen müssen, also freue ich mich wirklich darauf, dieses Problem zu lösen. Ich muss in der Lage sein, neue Software zu installieren.


8
Können Sie den Inhalt Ihrer /etc/apt/sources.listzwischen den Zeilen 67 und 69 hinzufügen ???
Bruno Pereira

2
Bearbeiten Sie Ihre Frage, um die Ausgabe des Befehls einzuschließen cat /etc/apt/sources.list. Und nein, Sie müssen nicht alles auslöschen. Es ist sehr leicht Problem ( aus meiner Erfahrung )
Anwar

Sie benötigen keine Wiederholungspunkte, um die Ausgabe zu veröffentlichen. Sie müssen die Ausgabe jedoch als Code formatieren, da Sie sonst die Ausgabe nicht veröffentlichen können, da Sie nicht über genügend Wiederholungspunkte verfügen, um mehrere Links zu veröffentlichen. Bearbeiten Sie die Frage, fügen Sie die Ausgabe ein, markieren Sie sie und drücken Sie STRG + K, um die Ausgabe als Code zu formatieren. Speichern Sie dann die Änderungen.
6.

Antworten:


55

Einige Zeilen in Ihrer sources.listDatei (oder einer anderen *.listDatei in sources.list.d/) sind unterbrochen .

Bearbeiten Sie die in dem Fehler erwähnte Datei, um die unterbrochenen Linien zu beheben.

  1. Führen Sie dazu diesen Befehl aus (drücken Sie Ctrl+ Alt+ T, um ein Terminal zu öffnen):

    sudo -H gedit /etc/apt/sources.list
    

    Anstelle von Gedit (das nicht auf allen Ubuntu-Systemen verfügbar ist) können Sie die Datei auch in einem terminalbasierten Texteditor öffnen:

    sudoedit /etc/apt/sources.list
    

    Falls erforderlich, ersetzen Sie diese /etc/apt/sources.listdurch einen anderen Dateinamen, dh den Pfad zu einer darin enthaltenen Datei /etc/apt/sources.list.d/.

  2. Suchen Sie die falsch formatierten Zeilen (eine Zeilennummer finden Sie im Fehler, und sehen Sie sich dann um). Dies sind Beispiele für korrekt formatierte Zeilen:

    # Comment, marked by a line starting with '#'
    deb http://site.example.com/debian distribution component1 component2 component3
    deb-src http://site.example.com/debian distribution component1 component2 component3
    

    Die URL distributionund die Komponenten sind unterschiedlich. Es müssen nicht unbedingt 3 Komponenten vorhanden sein.

    Alles, was nicht in dieses Format passt, ist falsch.

  3. Speichern Sie die Datei und beenden Sie den Texteditor. Führen Sie dann diesen Befehl in einem Terminalfenster aus:

    sudo apt-get update
    

Vorausgesetzt, es liegen keine Fehler vor, ist das Problem nun behoben. Sie sollten in der Lage sein, das Sofware Center auszuführen.

Während einige Probleme mit dem Software Center durch eine Neuinstallation des software-centerPakets behoben werden können, können die meisten Probleme nicht behoben werden , sodass das ursprüngliche Problem möglicherweise bestehen bleibt. In diesem Fall können Sie eine neue Frage stellen, um Hilfe zu erhalten.


Ich denke, dass Sie manchmal für Debian-basierte Distributionen ./am Ende der Zeile brauchen , wie in diesem Beispiel
user10089632

27

Schnelle Methode

Eine Problemumgehung für dieses Problem kann darin bestehen, den sources.listEintrag von Grund auf neu zu erstellen .

deb http://archive.ubuntu.com/ubuntu precise main universe restricted multiverse
deb-src http://archive.ubuntu.com/ubuntu precise universe main multiverse restricted

deb http://security.ubuntu.com/ubuntu/ precise-security universe main multiverse restricted
deb http://archive.ubuntu.com/ubuntu precise-updates universe main multiverse restricted
deb http://archive.ubuntu.com/ubuntu precise-backports universe main multiverse restricted

# deb http://archive.canonical.com/ubuntu precise partner
# deb-src http://archive.canonical.com/ubuntu precise partner

# deb http://extras.ubuntu.com/ubuntu precise main
# deb-src http://extras.ubuntu.com/ubuntu precise main
  • Kopieren Sie den obigen Inhalt (in grauer Box) und öffnen Sie die sources.listDatei als root.

    Tippen Sie sudo -H gedit /etc/apt/sources.listdies in ein Terminal und schlagen Sie Enteres, um den Job zu erledigen.

  • Fügen Sie dann den kopierten Inhalt in den sources.list- Hinweis ein, den Sie wahrscheinlich durch preciseden Codenamen ersetzen müssen, der Ihre Ubuntu-Version repräsentiert - z trusty. B. für 14.04. Speichern und schließen Sie dann gedit.

  • Wenn Sie dies tun sudo apt-get update, wird die Repository-Liste aktualisiert.

Erläuterung: Hier ersetzen wir den Inhalt vollständig durch eine andere Datei sources.list mit einem Repository-Eintrag vom Hauptserver. Wenn Sie Ihren lokalen Server verwenden möchten, lesen Sie sources.listdie nachstehende Methode.

Empfohlene Methode

Gehen Sie zur Ubuntu-Quelllisten-Generator-Site .

  • Wähle dein Land.
  • Wählen Sie die gewünschten Zweige aus, z. B. Main, Restricted, Multiverse, Universe.
  • Gewünschte Updateliste auswählen, -
  • Wählen Sie eine beliebige Drittanbieter-Repository-Liste aus, wenn Sie dies wünschen.
  • Klicken Sie unten auf der Seite auf Liste erstellen. Sie erhalten eine Liste mit Repositorys.
  • Kopieren Sie diese Liste und ersetzen Sie sie durch die sources.listDatei, die Sie haben.

Du bist fertig. (Ich hoffe das wird helfen.)


5
Seltsam, dass dies nicht akzeptiert wurde !! Als schnelle Lösung können Sie die problematische Zeile kommentieren, /etc/apt/sources.listindem Sie ##die ersten Zeichen in der Zeile einfügen. Dann versuche es sudo apt-get update.
Noble P. Abraham

3
Vielleicht wurde es nicht akzeptiert, weil der Benutzer möglicherweise andere Repos aktiviert hat und sie verlieren würden, wenn sie dies tun. Zum Beispiel erhalten die meisten Benutzer von VirtualBox es von Oracle Repo. Außerdem verwendet Oracle in seinen Repos andere Paketnamen als Ubuntu. Wenn ich daher VirtualBox mit dem Oracle-Repository installierte und diese Anleitung befolgte, saß ich die ganze Zeit auf der gleichen VirtualBox-Version und bekam kein Update. Noch nie.
John Scott

@ FuzzyToothpaste sie werden sie nicht verlieren, wenn sie dies getan haben. Es werden nur die doppelten Einträge entfernt. Ihr Beispielszenario hat nichts mit diesem Problem zu tun
Anwar

Vergessen Sie nicht, die GPG-Schlüssel zu aktualisieren, wenn Sie Ubuntu Source List Generator verwenden , um eine neue Datei sources.list zu generieren. Andernfalls kann das Problem weiterhin bestehen
Tushar Goswami

6

Wie Sie dem Fehler entnehmen können, weist Ihre Datei sources.list einen falschen Eintrag auf. Dieser falsche Eintrag konnte nicht analysiert werden. Dieser Fehler bezieht sich nicht auf das Software Center als solches, sondern hauptsächlich auf apt (The package manager).

Der Weg, dies zu lösen, besteht darin, den fehlerhaften Zeileneintrag zu 91korrigieren.

Wenn Sie nicht verstehen können, was mit der Linie 91 nicht stimmt, schreiben Sie bitte die Linie 91 und ich helfe Ihnen weiter


6

Bitte fügen Sie eine Datei ein, /etc/apt/sources.listdamit wir dieses Problem für Sie beheben können. In diesem kurzen Tutorial erfahren Sie, wie das geht:

Wie kann ich die Ausgabe eines Befehls oder einer Textdatei einfach mit anderen teilen?


Dies kann manchmal eine sehr einfache Lösung sein, aber Sie müssen sources.list zuerst eine Sicherungskopie erstellen, da es sich um eine wichtige Datei handelt.

  1. Öffnen Sie das Terminal mit Ctrl+ Alt+ T.
  2. Typ / Paste: sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup(erstellt eine Sicherungskopie)
  3. sudo sed -i -e '68d' /etc/apt/sources.list (Dies löscht die problematische Zeile)
  4. sudo apt-get update (dies aktualisiert die Datenbank mit der hoffentlich festgelegten Datei)

Wenn beim Versuch von Schritt 4 keine Fehler angezeigt werden, ist das Problem hoffentlich behoben. Sie können das Terminal verlassen und zum Software Center / Update Manager zurückkehren, und es sollte funktionieren.

Wenn das Problem weiterhin besteht, können Sie die Originaldatei vom Terminal mit wiederherstellen sudo cp /etc/apt/sources.list.backup /etc/apt/sources.list. In diesem Fall fügen Sie bitte die problematischen Zeilen oder sogar die gesamte Datei in einen Pastebin ein. Dann können wir Ihnen weiterhelfen.


3
Das Löschen der beleidigenden Zeile ist möglicherweise keine gute Idee (aber ein großes Lob an den Rat, die Dinge zu sichern, bevor Sie dies tun). Was ist, wenn es sich um ein Repository handelt, das der Benutzer benötigt? Wenn eine lange Zeile in zwei Zeilen aufgeteilt wurde, treten zwei fehlerhafte Zeilen auf (und der Vorgang muss wiederholt werden). man sources.listhat einen Abschnitt mit Beispielen und es kann nützlich sein, den Benutzer zu bitten, seine Zeilen mit den Beispielen zu vergleichen. Vielleicht kann er feststellen, was falsch ist, und es selbst beheben. Persönlich würde ich warten, bis er seine sources.list-Datei veröffentlicht.
Roadmr

@roadmr: Danke, ich stimme allen von Ihnen postulierten Szenarien voll und ganz zu. Ich hatte nur das Gefühl, dass Neulinge möglicherweise nicht einmal wissen, wie sie eine Datei posten sollen, geschweige denn bestimmte Zeilen aus dieser Datei, es sei denn, es wird empfohlen, wie. Das hat mich dazu inspiriert , dieses Selbst-QA-Howto zu schreiben :-)
ish

@roadmr Ich glaube, Sie würden eine Fehlermeldung über zwei fehlerhafte Zeilen erhalten, wenn eine lange Zeile in zwei Zeilen aufgeteilt würde.
Mittwoch,

Beachten Sie, dass wenn -i.backupan sedanstatt nur -idann übergeben sedwird, die Sicherungsdatei selbst erstellt wird.
Eliah Kagan

5

Die Datei /etc/apt/sources.listenthält die URLs der Webserver und den Speicherort anderer Quellformulare (z. B. CDs), von denen Sie Ihre Software und Aktualisierungen abrufen. Es teilt Ubuntu grundsätzlich mit, wo nach neuer Software und Updates für bereits installierte Programme gesucht werden soll. Die Fehlermeldung, die Sie erhalten haben, bedeutet, dass die Datei irgendwie kompromittiert wurde. Ohne zu wissen, was der Inhalt Ihrer Datei ist, ist es schwer zu wissen, was genau daran falsch ist. Sie sollten also die Ausgabe von sudo more /etc/apt/sources.listfür uns veröffentlichen, um Ihnen besser zu helfen.

Wenn die Datei irreparabel beschädigt ist, können Sie mit dem Ubuntu Source List Generator eine sources.listneue Datei erstellen . Du solltest aber vorher deine alte sichern . Außerdem verlieren Sie dadurch alle Änderungen, die Sie an Ihren Software-Quellen vorgenommen haben, z. B. im Sofware Center.

Der bessere Weg, dies zu beheben, besteht darin, uns anzeigen zu lassen, was mit Ihrem Problem nicht stimmt sources.list

Bearbeiten, nachdem Sie Folgendes gepostet haben sources.list:

Ich glaube, die Datei, die Sie gepostet haben, sollte so aussehen (beachten Sie die letzten Zeilen und die fehlenden /etc/apt/sources.listam Ende):

# /etc/apt/sources.list

deb http://archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse 
deb http://security.ubuntu.com/ubuntu/ precise-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ precise-updates main restricted universe multiverse
deb http://archive.canonical.com/ubuntu partner
deb-src http://archive.canonical.com/ubuntu partner

Nachdem ich meine Dateien gesichert habe, probiere ich den Quelllistengenerator aus, aber es würde wirklich eine Weile dauern. Mein Laptop ist immer noch auf der Festplatte, also ist es noch nicht so schnell. Ich habe meine source.list zu der obigen Nachricht hinzugefügt.
Odi1215

Es reicht aus, nur die aufgerufene Datei zu sichern sources.list.
con-f-use

Okay, wird es tun. Dann probiere ich mal den Orderbuchgenerator?
Odi1215

Positiv. Das ist ein Ja.
con-f-use

Ich habe sudo more /etc/apt/sources.list eingegeben, aber nichts ist passiert.
Odi1215

5

Bitte versuchen Sie, Ihre sources.listDatei durch Ablegen sudo gedit /etc/apt/sources.listin einem Terminal zu bearbeiten (möglicherweise werden Sie nach Ihrem Passwort gefragt). Danach haben Sie die Möglichkeit, "Zeilennummern" im Menü Bearbeiten / Einstellungen von gEdit zu aktivieren und das Kontrollkästchen "Zeilennummern anzeigen" zu aktivieren. Gehen Sie dann manuell zu der Zeile in Ihrem Fehler, z. B. 91, oder verwenden Sie "Suchen / Gehe zu Zeile" (Strg + I erledigt den Trick).

Bildbeschreibung hier eingeben

Fügen Sie am Anfang der Zeile 91 zwei # -Symbole ( ##) ein, um diese Zeile zu kommentieren, und entfernen Sie sie auf diese Weise aus dem Aktualisierungsprozess (Sie können diese Zeile auch auf eigenes Risiko löschen, ich empfehle Ihnen ein Backup).

Wenn Sie fertig sind, speichern Sie die Datei und schließen Sie sie. Öffnen Sie dann ein Terminal und führen Sie es aus, um sudo apt-get updatefestzustellen, ob der Fehler weiterhin auftritt. Wenn nicht, öffnen Sie Ihren Update Manager.

Irgendwie scheint der Text in der Zeile 91 Ihrer sources.listDatei beschädigt zu sein oder es liegt eine Art Fehler vor, was bedeutet, dass einige Software nicht installiert / aktualisiert / aktualisiert werden kann.

Durch Kommentieren / Entfernen der fehlerhaften Zeile wird die Software nicht installiert (falls nicht bereits vorhanden) oder aktualisiert / aktualisiert, wenn Sie dies versuchen. Ich empfehle Ihnen, zu überprüfen, woher diese Leitung kommt (welche Software dies erfordert) und die erforderlichen Änderungen vorzunehmen, damit alles einwandfrei funktioniert.


4

Wenn Sie wie unten auf einen fehlerhaften Zeilenfehler stoßen, empfehle ich Ihnen dringend, die Zeile auskommentieren ( vor der Zeile hinzufügen# ), anstatt sie in der /etc/apt/sources.listDatei zu löschen .

E: Malformed line 91 in source list /etc/apt/sources.list (dist parse)

Die Zeilennummer 91in /etc/apt/sources.listDatei ist von dem obigen Fehler beschädigt. Um die Zeilennummer 91 auszukommentieren, müssen Sie den folgenden Befehl auf dem Terminal ausführen.

sudo sed -i '91s/\(.*\)/#\1/' /etc/apt/sources.list

91im obigen Code steht für die Zeilennummer. Ersetzen Sie die Nummer 91 im obigen Code durch Ihre, wenn Sie einen fehlerhaften Zeilenfehler haben.

In einigen Fällen tritt ein fehlerhafter Zeilenfehler auch in einer Listendatei auf, die tatsächlich im /etc/apt/sources.list.dVerzeichnis vorhanden war. Zum Beispiel,

E: Malformed line 1 in source list /etc/apt/sources.list.d/google.list (dist parse)

In diesem Fall empfehle ich dringend, die google.listDatei durch Ausführen zu löschen sudo rm /etc/apt/sources.list.d/google.listund dann die entsprechende PPA erneut hinzuzufügen.

Aktualisieren Sie schließlich alle Repositorys, indem Sie den sudo apt-get updateBefehl auf dem Terminal ausführen. Jetzt wird der Fehler nicht angezeigt.


3

Sie müssen die letzte Zeile dieser Datei löschen (natürlich nicht die Datei selbst):

 /etc/apt/sources.list

Ihre sources.listDatei muss ungefähr so ​​aussehen:

# /etc/apt/sources.list
deb http://archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse 
deb http://security.ubuntu.com/ubuntu/ precise-security main restricted universe   multiverse
deb http://archive.ubuntu.com/ubuntu/ precise-updates main restricted universe multiverse
deb http://archive.canonical.com/ partner
deb-src http://archive.canonical.com/ partner

Es kann natürlich sources.listsehr schlimm sein, Ihre Datei nur durch diesen Text zu ersetzen , vor allem, wenn sie vorher ganz anders ausgesehen hat. Der entscheidende Punkt ist, dass jede Zeile mit deboder beginnt deb-src(mit Ausnahme von Kommentaren, die mit beginnen #).


1
@Malika Hallo, ich bin froh, dass dies das Problem behoben hat. Versuchen Sie jedoch, Fragen nicht nur für den Fragesteller zu beantworten, sondern auch für Personen, die diese Frage bei Google googeln und geringfügige Abweichungen vom Problem des Fragestellers aufweisen. Dies bedarf wahrscheinlich einer weiteren Erläuterung, um eine gute "allgemeine" Antwort zu erhalten. :)
Jjed

@JacobJohanEdwards Ich kann Ihnen nicht zustimmen, weil wir nicht wirklich den Leuten helfen können, die Befehle ausführen, bevor sie die Frage IMO
Anwar,

2
@Anwar Meiner Meinung nach liegt es in der Verantwortung des Antwortenden, (a) nicht auf eine Weise zu antworten, die nur dem ursprünglichen Fragesteller hilft [der zu lokalisiert ist], (b) nicht angemessen vor den möglichen Nebenwirkungen von a warnt Befehl. Ein Haftungsausschluss hilft.
Jjed

1

Öffnen Sie ein Terminal mit CTRL+ Alt+ Tund führen Sie den folgenden Befehl aus, um Zeile 6 zu entfernen, die nicht die richtige Form der Quellzeile des Repositorys ist.

WARNUNG: Führen Sie diesen Befehl nicht aus, ohne zuvor die Frage gelesen zu haben. Mit diesem Befehl wird die Zeile 68 der /etc/apt/sources.listDatei gelöscht . Überprüfen Sie, ob Ihr Problem ähnlich ist, und ersetzen Sie es, auch wenn dies der Fall ist, durch 68die Nummer der zu löschenden Zeile .

sudo sed -i.old '68d' /etc/apt/sources.list

Dieser Befehl löscht die Zeile mit sedin place. Es wird ein Backup aufgerufen /etc/apt/sources.list.old. Wenn Sie das Backup nicht möchten, können Sie -istattdessen plain verwenden -i.old.

Alternativ können Sie die Zeile mit Gedit manuell löschen.

  • Drücken Sie Alt+ F2und geben Sie ein gksu gedit /etc/apt/sources.list.
    (Wenn Sie nicht haben gksu, können Sie verwenden sudo -H gedit.)
  • Finden Sie das beschädigte /etc/apt/sources.listund entfernen Sie es.
  • Speichern und beenden Sie Gedit.

Richtige Form der Quellzeile des Repositorys:

Das korrekte Format der Quellzeile des Repositorys lautet:

<type of repository> <location i.e URI>  <dist-name> <components i.e main, universe>

Zum Beispiel:

  deb http://archive.ubuntu.com/ubuntu precise main
  • Typ: deb ist der Typ des Repositorys. Dies zeigt an, dass es sich um ein binäres Repository handelt, nicht um ein Quellrepository mit Typ deb-scr.
  • http://archive.ubuntu.com/ubuntuSpeicherort : Speicherort des Repositorys
  • Dist-Name: precise ist der Distributionsname der Ubuntu-Version. für Ubuntu 12.04 ist es precise11.10oneiric

  • Komponente: main Gibt die Komponente des Repository an. Das Ubuntu-Repository ist in vier Teile unterteilt.

    1. Main - Enthält freie und Open-Source-Software, die offiziell unterstützt wird
    2. Universum - Diese Software wird von Canonical nicht unterstützt, aber von der Community gepflegt.
    3. Eingeschränkt - Diese Software wird von Canonical unterstützt, ist jedoch nicht kostenlos. Diese werden unterstützt, um einige wichtige Treiber bereitzustellen
    4. Multiverse - Dies sind ebenfalls nicht kostenlose Software, die von Canonical nicht unterstützt wird.

Weitere Informationen finden Sie auf dieser Seite .

Sie können jetzt verstehen, dass /etc/apt/sources.listes sich nicht um eine Repository-Quelltextzeile handelt, und sich daher darüber apt-getbeschweren.



1
Hallo Anwar, das ist eine gute Antwort, aber es ist sehr riskant, nur einen sudo sedBefehl darüber zu haben. Viele Leute mit dem gleichen Problem (aber leicht unterschiedlichen Umständen) werden diese Antwort sehen und sie ohne Weiteres ausführen und möglicherweise ihr irreparables Verhalten zunichte machen sources.list. In diesem Fall kann ein allgemeinerer Ansatz (mit einem Texteditor) angezeigt sein.
Jjed
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.