it-swarm.com.de

Wie behebe ich "W: Duplicate sources.list entry"?

Ich erhalte immer wieder diese Warnung, wenn ich versuche, Sudo apt-get update auszuführen.

W: Duplicate sources.list entry http://archive.ubuntu.com/ubuntu/ precise-updates/main i386 Packages (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_precise-updates_main_binary-i386_Packages)
W: You may want to run apt-get update to correct these problems

Unten sehen Sie die Ausgabe der Datei /etc/apt/sources.list:

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

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

deb http://archive.ubuntu.com/ubuntu precise universe
deb-src http://archive.ubuntu.com/ubuntu precise universe
deb http://archive.ubuntu.com/ubuntu precise-updates universe
deb-src http://archive.ubuntu.com/ubuntu precise-updates universe

deb http://archive.ubuntu.com/ubuntu precise multiverse
deb-src http://archive.ubuntu.com/ubuntu precise multiverse
deb http://archive.ubuntu.com/ubuntu precise-updates multiverse
deb-src http://archive.ubuntu.com/ubuntu precise-updates multiverse

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

Wie behebe ich das?

190
hsinxh

Ihre sources.list enthält wirklich doppelte Einträge.

Zuerst sehen wir uns die korrekte Form einer Repository- oder Quellzeile an:

Das korrekte Format der Quellzeile des Repositorys lautet

<type of repository>  <location>  <dist-name> <components> 

Eine Repo-Linie kann beispielsweise so aussehen

  deb http://archive.ubuntu.com/ubuntu precise main

Hier bedeutet dies, dass das Repository für Binärpakete ist, die in http://archive.ubuntu.com/ubunt gehostet werden, und dieses Repository ist für Ubuntu exact (12.04) und dieses Repository enthält das Hauptpaket (Software, die offiziell von Canonical unterstützt wird).

  • Typ: Der Typ kann deb und deb-src sein. deb bedeutet ein binäres Repository, wobei deb-src ein Quellrepository bedeutet

  • Speicherort: http://archive.ubuntu.com/ubuntu Speicherort des Repositorys.

  • Dist-name: Der Distributionsname der Ubuntu-Version. Für Ubuntu 12.04 ist es precise, für 11.10 ist es oneiric.
    Sie können das Ubuntu-Wiki besuchen, um eine aktualisierte Liste der Ubuntu-Versionen und ihrer Codenamen anzuzeigen.

  • Komponente: Es kann main, universe, multiverse und restricted sein. Diese Wörter geben die Unterstützungsstufe für die Pakete und den Lizenzstatus an.

Siehe diese Seite für weitere Informationen.

Bitte beachten Sie, dass Sie eine oder mehrere Komponenten in eine Zeile einfügen können, so dass "main", "universe", "restricted" und "multiverse" möglich sind in einer einzelnen Zeile. Beachten Sie auch, dass Sie mehr als eine Komponente in einer einzelnen Zeile hinzufügen. APT System betrachtet sie als separate Zeile, die nur eine enthält Komponente.

Also, wenn Ihr sources.list eine Zeile wie diese hat

deb http://archive.ubuntu.com/ubuntu precise universe

Dann kann es keine weitere Zeile wie die folgende geben (welche Ihre Dateien haben)

deb http://archive.ubuntu.com/ubuntu precise main universe

das ist gleichbedeutend mit diesen beiden Zeilen

deb http://archive.ubuntu.com/ubuntu precise main
deb http://archive.ubuntu.com/ubuntu precise universe

Weil Sie Universum zweimal duplizieren, gibt es für dieses Duplikat einen Fehler. Für jedes gefundene Duplikat wird ein Fehler ausgegeben.

Lösung:

Nach der Analyse Ihrer sources.list -Datei habe ich festgestellt, dass es sich um eine grundlegende Datei handelt, die standardmäßig von Ubuntu bereitgestellt wird. Sie können eine Standarddatei wie folgt erstellen:

  1. Öffnen Sie ein Terminal und benennen Sie zuerst die vorhandene Datei sources.list in sources.list.bak um. (Wir können das sicher entfernen, aber Vorsicht ist gut).

     Sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
    
  2. Öffnen Sie dann software-properties-gtk, um einen neuen zu erstellen. Geben Sie den folgenden Befehl in ein Terminal oder in einen Bindestrich ein Alt+F2

    software-properties-gtk
    

    Beachten Sie, dass Sie für Ubuntu Version 11.10 oder früher gksu vor dem Befehl software-properties-gtk verwenden müssen

  3. Nachdem das Fenster geöffnet ist,

    • Wählen Sie alle vier Kategorien auf der Registerkarte Ubuntu-Software
    • Wählen Sie die Kategorie für präzise Sicherheitsupdates , für präzise Aktualisierungen und für präzise Backports in aus Registerkarte "Updates" .
    • Wählen Sie Canonical Partner und Independent Kategorie aus Other Software Registerkarte.

Das ist es. Sie haben jetzt eine Standarddatei sources.list ohne Fehler. Vergleichen Sie diese Datei mit der vorherigen, wenn Sie möchten.


Aktualisieren Sie, um mit den Dateien von sources.list.d dir umzugehen

Manchmal befindet sich ein doppelter Eintrag in einer Datei im Verzeichnis /etc/apt/sources.list.d, das auch von APT verwendet wird. Sie sollten also in diesem Verzeichnis nachsehen, ob sich in diesen Dateien Duplikate befinden. Es ist nicht erforderlich, dass sich Duplikate in derselben Datei befinden.

Beispielfall:

Bei einem Benutzer wurde diese Fehlermeldung angezeigt, während Sudo apt-get update ausgeführt wurde.

W: Duplicate sources.list entry http://dl.google.com/linux/chrome/deb/ stable/main AMD64 Packages (/var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_main_binary-AMD64_Packages)
W: Duplicate sources.list entry http://dl.google.com/linux/chrome/deb/ stable/main i386 Packages (/var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_main_binary-i386_Packages)
W: You may want to run apt-get update to correct these problems

Es gab jedoch keinen Eintrag mit http://dl.google.com in der Hauptdatei /etc/apt/sources.list. Im Verzeichnis /etc/apt/sources.list.d/ haben wir folgende Dateien gefunden:

ausgabe von ls /etc/apt/sources.list.d/:

aims-sagemath-precise.list
aims-sagemath-precise.list.save
dropbox.list
dropbox.list.save
fossfreedom-packagefixes-precise.list
fossfreedom-packagefixes-precise.list.save
google-chrome.list
google-chrome.list.save
google.list
google.list.save
sagemath-monolithic-precise.list
sagemath-monolithic-precise.list.save

Die Dateien google-chrome.list und google.list waren gute Kandidaten für die Aufnahme von Duplikaten. Daher war es notwendig, den Inhalt beider Dateien zu überprüfen.

Ausgabe von cat /etc/apt/sources.list.d/google-chrome.list:

deb http://dl.google.com/linux/chrome/deb/ stable main  

und von cat /etc/apt/sources.list.d/google.list

deb http://dl.google.com/linux/chrome/deb/ stable main

Es gab also doppelte Einträge in den Quellen von Apt. Da google-chrome.list nur eine einzige apt-Zeile enthält und diese auch in der google.list -Datei aufgeführt ist, können wir diese Datei mit dem Befehl sicher entfernen

Sudo rm /etc/apt/sources.list.d/google-chrome.list

Dann war das Problem gelöst.

228
Anwar

Für Ubuntu 12.04

Grafisch:

Drücken Sie Alt + F2 und füge software-properties-gtk ein (oder öffne "Software Center" und gehe zu "Bearbeiten"> "Software Quellen"). Gehen Sie zur Registerkarte "Andere Software", wählen Sie den doppelten Eintrag aus und klicken Sie auf die Schaltfläche "Entfernen".

enter image description here


Wenn Sie eine Befehlszeilenoption benötigen, ist dies hier:

cat /etc/apt/sources.list | Perl -ne '$H{$_}++ or print' > /tmp/sources.list && Sudo mv /tmp/sources.list /etc/apt/sources.list  

Der Befehl führt Folgendes aus:

cat liest die Datei und übergibt den Inhalt an Perl, wodurch die doppelten Zeilen entfernt werden. Das Ergebnis wird dann > in einer temporären Datei gespeichert, die dann verschoben wird, um die ursprüngliche /etc/apt/sources.list Datei zu ersetzen.

80
desgua

Wie schlimm sind doppelte Einträge in sources.list?

Ich weiß nicht, wie schlimm es ist, aber ich mag es nicht Sudo apt-get update zeigt mir doppelte Einträge.

Übrigens ist es nicht so schlimm, es zeigt Ihnen nur, dass Sie doppelte Einträge haben.

SourcesList

Die Datei sources.list ist ein Schlüsselfaktor beim Hinzufügen oder Aktualisieren von Anwendungen zu Ihrer Ubuntu-Installation. Dies wird auch von Ihrem System für Systemaktualisierungen verwendet. Die Datei ist im Grunde genommen die Roadmap für Ihr System, um zu wissen, wo es Programme zur Installation oder Aktualisierung herunterladen kann.

Es ist genau wie Windows Update

Sie können doppelte Einträge in wenigen einfachen Schritten mit Y PPA Manager entfernen

 Sudo add-apt-repository ppa:webupd8team/y-ppa-manager -y
 Sudo apt-get update
 Sudo apt-get install y-ppa-manager -y

Öffne y-ppa-manager form Dash

Geben Sie Ihr Administratorkennwort ein

enter image description here

Doppelklicken Sie auf Erweitert

enter image description here

Doppelte PPAs scannen und entfernen und auf OK klicken

enter image description here

Es dauert einige Zeit (1 oder 2 Minuten), um doppelte PPAs zu scannen und zu entfernen

24
Qasim

Das Partner-Repository ist in /etc/apt/sources.list und /etc/apt/sources.list.d/precise-partner.list dupliziert.

Entfernen Sie einfach diese "Precise-Partner" -Dateien, da das Partner-Repository bereits in sources.list vorhanden ist.

Sudo rm /etc/apt/sources.list.d/precise-partner.*
16
Eric Carvalho

Erstellen Sie eine Sicherungskopie Ihrer sources.list:

Sudo cp /etc/apt/sources.list{,.backup}

Entfernen Sie nun das Original und aktualisieren Sie:

Sudo rm /etc/apt/sources.list && Sudo apt-get update
10
wojox

Ich hatte das gleiche Problem, offene Softwarequellen. Deaktiviert "Canonical Partners". Der Konflikt besteht zwischen "Canonical Partners" und "Canonical Partners Added by Software Center"

8
Amjed

Wenn Sie es in Ihrem source.list nicht herausfinden konnten, gehen Sie folgendermaßen vor:

  1. Klicken Sie mit der linken Maustaste auf das Einstellungssymbol (in der äußersten oberen Ecke Ihres Bildschirms) und wählen Sie Systemeinstellungen.
  2. Klicken Sie auf Softwarequellen und wechseln Sie zu Andere Software.
  3. Deaktivieren Sie eine der von Canonical für die Partnerdateien gepackten Softwarepakete für Canonical-Partner (Quellcode) und eine der von Canonical für die Partnerdateien gepackten Softwarepakete für Canonical-Partner und klicken Sie zum Verlassen auf Schließen.
  4. Gleichzeitig drücken CTRL + ALT + T Tasten zum Öffnen des Terminals und Eingabe von Sudo apt-get update.
7
all4naija

10.10 und früher

Anwendungen> Ubuntu Software Center> Bearbeiten> Softwarequellen> Andere Software

OR

System> Administration> Synaptic Packet Manager> Einstellungen> Repositorys

Software Sources config window

Doppelte Einträge auswählen und entfernen.

6
Sid

Für Ubuntu 9.10 - 12.04

Es gibt eine App namens Y-PPA-Manager, die das und vieles mehr kann.

Sie können es wie folgt von einem Terminal aus installieren:

Sudo add-apt-repository ppa:webupd8team/y-ppa-manager
Sudo apt-get upgrade
Sudo apt-get install y-ppa-manager

Starten Sie danach einfach die Anwendung und gehen Sie zum Menü Erweitert.

enter image description here

Wählen Sie dann "Doppelte PPAs scannen und entfernen" und klicken Sie auf "OK".

enter image description here

5
rearlight

Es hört sich so an, als hätten Sie zwei identische Zeilen in Ihrer /etc/apt/sources.list -Datei.

Gehen Sie zum Terminal und geben Sie Sudo editor /etc/apt/sources.list ein. Suchen Sie dann nach identischen Zeilen in dieser Datei. Wenn Sie sie finden, löschen Sie sie. Wenn Sie fertig sind, speichern und beenden Sie das Programm und führen Sie dann Sudo apt-get update aus. Damit sollte das Problem behoben sein.

Wenn das Ihr Problem nicht löst, müssen Sie einen Versuch-und-Irrtum-Ansatz verwenden. Erstellen Sie zunächst eine Sicherungskopie Ihrer sources.list -Datei. Gehen Sie dann in der eigentlichen Datei durch und kommentieren Sie jede Zeile aus oder löschen Sie sie. Speichern Sie und apt-get update-, nachdem jede Zeile auskommentiert oder gelöscht wurde. Wenn Sie diese Datei Zeile für Zeile durchgehen und verschiedene Zeilen auskommentieren, erfahren Sie schließlich, welche Zeile die überflüssige ist. Vergessen Sie nicht, alle von Ihnen kommentierten Zeilen aus dem Kommentar zu entfernen, wenn apt-get update immer noch dieselbe Eingabeaufforderung anzeigt. Andernfalls verbleiben in Ihrer sources.list -Datei keine Quellen.

4
Jeff Welling

Ich habe nach einem solchen Tool gesucht, aber ich habe kein gefunden ...
Also habe ich mich selbst mit PHP programmiert.

Entschuldigung für den schmutzigen unorganisierten Quellcode.

chkdup - Screenshot:

enter image description here

Autor

Mubarak Alrashidi (DeaDSouL)

Bedarf:

  1. PHP.
  2. Sudo.

Installation:

  1. Öffnen Sie das Terminal.
  2. Um PHP zu installieren, geben Sie Folgendes ein: Sudo apt-get install php5 php5-cli.
  3. Laden Sie das chkdup herunter.
  4. Extrahieren Sie die Datei an einer beliebigen Stelle.
  5. Typ: Sudo sh install.sh.

Deinstallation:

  1. Öffnen Sie das Terminal.
  2. Gehen Sie zu dem Pfad, in den Sie das Werkzeug extrahiert haben.
  3. Typ: Sudo sh uninstall.sh.

Wie man es benutzt:

Öffnen Sie einfach das Terminal und geben Sie Sudo chkdup ein.

FAQs:

Was macht die install.sh?

  • Das Installationsprogramm verschiebt den chkdup.php nach /opt/ und erstellt dann eine symbolische Verknüpfung in /usr/bin/.

Was ist mit der uninstall.sh?

  • Das Deinstallationsprogramm entfernt die folgenden Dateien:

    1. install.sh
    2. /opt/chkdup.php
    3. /usr/bin/chkdup
    4. selbst uninstall.sh

Ist es sicher, chkdup zu benutzen?

  • Ja, da eine Sicherungskopie der aktuellen sources.list erstellt wird, bevor versucht wird, etwas zu tun. Aber ich bin nicht verantwortlich, wenn etwas passiert ist. Die volle Verantwortung liegt bei Ihnen.

Lizenz

GNU General Public License

4
DeaDSouL

Hast du ls /etc/apt/sources.list.d/ überprüft? Vielleicht haben Sie einige "zusätzliche" Repositorys?

3
koni_raid

Installiere ubuntu-Tweak und entferne die doppelten Einträge von dort.

Sudo add-apt-repository ppa:tualatrix/ppa
Sudo apt-get update
Sudo apt-get install ubuntu-Tweak

alt text

2
karthick87

Verwenden Sie den buntu Sources List Generator .

  • Führen Sie Sudo -H nautilus im Terminal aus
  • Finde /etc/apt/sources.list
  • Klicken Sie mit der rechten Maustaste und öffnen Sie die Datei mit einem Texteditor (wenn Sie darauf klicken, wird die GUI der Softwarequellen geöffnet).
  • Einfach kopieren und in den sources.list einfügen und speichern.
  • Terminal verlassen und fertig.

Google scheint ein Problem zu haben, daher würde ich vorschlagen, das wegzulassen. Ich habe dies unter Ubuntu 12.10 getan (Studio-Version mit hinzugefügtem Ubuntu-Desktop und Unity für eine andere Desktop-Anmeldung).

1
studiofreak

Ich versuche, die von anderen Nutzern angebotenen Möglichkeiten mit Hilfe des Terminals zu vervollständigen, da Sie hauptsächlich danach gefragt haben:

melden Sie sich an, wenn Sie eine textbasierte Installation verwenden, oder drücken Sie Alt+F2 und gib gnome-terminal ein, wenn du GUI benutzt

Dann tippe

Sudo nano /etc/apt/sources.list

(Zum besseren Verständnis: Im Verzeichnis /etc finden Sie (fast) alle Konfigurationsdateien Ihres Computers und im Verzeichnis apt finden Sie die Datei souces.list, die alle Repositorys enthält, die APT wird zum Aktualisieren oder Installieren und Aktualisieren von Software verwendet.)

Bearbeiten Sie die zu entfernende oder zu kommentierende Datei mit # am Zeilenanfang.

Drücken Sie Ctrl+X zu beenden und drücken Sie y um die Datei zu speichern (oder n ohne Speichern zu beenden).

Dann aktualisieren Sie, um zu sehen, ob Sie es behoben haben:

Sudo apt-get update

Habe Spaß!

1
Pitto

Nein, es gibt keine einzige Befehlszeile, um doppelte Einträge in der Datei /etc/apt/sources.list zu finden und zu löschen.

Dies liegt daran, dass die vorgeschlagenen Befehlszeilen, die lediglich die Funktion des viel einfacheren integrierten Befehls uniq duplizieren, nur für eine SORTED-Datei funktionieren und nur ADJACENT-Zeilen entfernen. Außerdem werden mit diesen Befehlen nur Zeilen entfernt, die aus einer identischen Zeichenfolge bestehen.

Doppelte Einträge, die von apt-get update gemeldet werden, bestehen aus doppelten Funktionseinträgen , z. B. einem Repository, das in den Varianten i386 und AMD64 enthalten ist. Die einfache und effektive Möglichkeit, diese zu entfernen, besteht darin, zu notieren, welche Repositorys von apt-get update als Duplikate gemeldet werden, und sie über Software Center zu entfernen. Öffnen Sie es und wählen Sie Bearbeiten -> Softwarequellen -> Registerkarte Andere Software. Suchen Sie einfach nach den doppelten Einträgen und deaktivieren Sie sie. (Dies ist auch eine Möglichkeit, source-code-Repositorys zu entfernen, wenn Sie die Pakete nicht kompilieren).

Es ist jedoch zu beachten, dass apt-get update nicht nur doppelte Einträge über sources.list findet, sondern auch Repository-Dateien enthält, die sich in /var/lib/apt/lists/ befinden. Wenn Sie doppelte Einträge von dort löschen, werden die apt-get update-Fehlermeldungen nur vorübergehend entfernt, wenn Ubuntu denkt, dass sie benötigt werden, da die Dateien automatisch neu installiert werden. Die Tatsache, dass apt-get update einige Repositorys als Duplikate meldet und dann vorschlägt, dass Sie apt-get update selbst ausführen, um sie zu reparieren, ist ein Hinweis darauf, dass Sie sich über diese Fehlermeldung wirklich keine Gedanken machen müssen.

1
Smarteralec

Ging durch /etc/apt/sources.list manuell Sudo nano /etc/apt/sources.list und entfernte die Duplikate. Nach apt-get update wurde das Problem behoben.

1
Anderverhaal

Nun, ich habe das Problem mit doppelten Einträgen selbst gelöst, indem ich /etc/apt/sources.d (als root) in etwas anderes umbenannt und Sudo apt-get update ausgeführt habe, um das Verzeichnis und seinen Inhalt wiederherzustellen.

1
Seann

In meinem Fall befanden sich die Duplikate in der Datei prerequists-sources.list. Ich konnte das Upgrade fortsetzen, indem ich die folgenden Befehle im Terminal ausführte:

Sudo mv /etc/apt/sources.list.d/prerequists-sources.list /tmp
Sudo apt-get update

Gehen Sie dann zu Update Manager und installieren Sie die Updates.

1
Mathijs Sterk

In /etc/apt/sources.list müssen Sie den doppelten Repository-Eintrag kommentieren (# am Zeilenanfang hinzufügen) und die Änderungen speichern. Danach wiederhole Sudo apt-get update.

1
Snorri

Bearbeiten Sie einfach die Datei /etc/apt/sources.list (zum Beispiel verwenden Sie Sudo -H gedit /etc/apt/sources.list) und entfernen Sie die doppelte Zeile oder setzen Sie einen # an den Anfang der Zeile.

1
Micha

Es ist ein geeigneter Job für uniq, der doppelte Zeilen auslässt und nur eindeutige Einträge druckt. Daher können wir die Ausgabe von uniq übernehmen und die alte Datei durch die Ausgabe von uniq ersetzen:

 sort /etc/apt/sources.list | uniq > /tmp/sources && Sudo mv /tmp/sources  /etc/apt/sources.list
0
S="/etc/apt/sources.list" ;
S2="$S ${S}.d/*.list" ;
grep -b "^deb\`cat $S2 |
    grep -i "^deb[[:space:]]http" |
    sort |
    uniq -dc |
    sed -e 's;[[:space:]]\\+[[:digit:]]\\+[[:space:]]\\+deb\\(.\\+$\\);\\1;g'\`$" $S2

* Zeilenumbrüche zur besseren Lesbarkeit eingefügt.

0
Tony Saratonev

Führen Sie Folgendes aus, um die Duplikate zu entfernen

cat /etc/apt/sources.list | Perl -ne '$H{$_}++ or print' > /tmp/sources.list && Sudo mv /tmp/sources.list /etc/apt/sources.list  
0
Stormvirux

Im Falle von W: Duplicate sources.list entry http://dl.google.com/linux/chrome/deb/ stable/main AMD64 Packages (/var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_main_binary-AMD64_Packages)

Geöffnet: sources.list.d

rm google.list

so bleibt nur google-chrome.list

0
Stevie G