Wie behebe ich "W: Eintrag von sources.list duplizieren"?

185

Ich erhalte immer diese Warnung, wenn ich sudo apt-get update ausführen möchte.

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 ist die Ausgabe von /etc/apt/sources.list file:

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 repariere ich es?

    
hsinxh 10.04.2012, 08:31

25 Antworten

223

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

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

Das korrekte Format der Repository-Quellzeile ist

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

Zum Beispiel kann eine Repoleitung wie diese sein

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

Hier bedeutet es, das Repository ist für Binärpakete, die in Pfandrecht gehostet werden und für die dieses Repository zuständig ist Ubuntu präzise (12.04) und dieses Repository enthält die Hauptkomponente (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 Quell-Repository

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

  • Dist-name: Der Name der Distribution von Ubuntu. Für Ubuntu 12.04 ist es precise , für 11.10 ist es oneiric .
    Du kannst das Ubuntu Wiki besuchen, um ein aktualisiertes Liste der Ubuntu-Versionen und ihrer Codenamen .

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

Weitere Informationen finden Sie unter auf dieser Seite .

Bitte beachten Sie, dass Sie eine oder mehrere Komponenten in einer Zeile hinzufügen können, sodass "main", "universe", "restricted" und "multiverse" in einer einzigen Zeile stehen können. Hinweis: Obwohl Sie mehr als eine Komponente in einer einzelnen Zeile hinzufügen, betrachtet das APT-System sie als separate Zeile, die nur eine Komponente enthält.

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

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

Dann kann es keine andere Zeile wie die unten haben (welche Ihre Dateien haben)

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

entspricht diesen beiden Zeilen

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

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

Lösung:

Nachdem ich Ihre sources.list -Datei analysiert habe, habe ich festgestellt, dass es eine grundlegende ist, die standardmäßig von Ubuntu bereitgestellt wird. Sie können eine Standarddatei nach der folgenden Prozedur 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 ein neues zu erstellen. Geben Sie den folgenden Befehl in eine Terminal- oder Dash-Eingabeaufforderung ein, indem Sie Alt + F2

    drücken
    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 im Ubuntu Software Tab
    • aus
    • Wählen Sie die precise-security , precise-updates und precise-backports Kategorie im Tab Updates aus . li>
    • Wählen Sie die Kategorie Canonical-Partner und Unabhängige auf der Registerkarte Andere Software aus.

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

Update, um mit den Dateien von sources.list.d dir fertig zu werden

Manchmal kann ein doppelter Eintrag in einer Datei im Verzeichnis /etc/apt/sources.list.d enthalten sein, die auch von APT verwendet wird. Sie sollten sich also dieses Verzeichnis ansehen und prüfen, ob es in diesen Dateien ein Duplikat gibt. Es ist nicht notwendig, 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

Aber es gab keinen Eintrag mit http://dl.google.com in der Hauptdatei /etc/apt/sources.list . Mit Blick auf das 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

Also gab es doppelte Einträge in den Quellen von Apt. Da google-chrome.list nur eine einzige apt-Zeile enthält und auch in google.list file aufgeführt wurde, können wir diese Datei mit dem Befehl

sicher entfernen
sudo rm /etc/apt/sources.list.d/google-chrome.list

Dann wurde das Problem gelöst.

    
Anwar 05.09.2012 19:33
77

Für Ubuntu 12.04

Grafisch:

Drücken Sie Alt + F2 und fügen Sie software-properties-gtk ein (oder Sie können "Software Center" öffnen und dann zu "Bearbeiten" & gt; "Softwarequellen" gehen). Gehen Sie auf den Reiter "Andere Software", wählen Sie den doppelten Eintrag und drücken Sie die Schaltfläche "Entfernen".

Wenn Sie eine Befehlszeilenoption benötigen, 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 tut dies:

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.

    
desgua 05.05.2012 00:27
22

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

Ich weiß nicht, wie schlimm das ist, aber ich mag sudo apt-get update nicht, weil er doppelte Einträge anzeigt.

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

Quellenliste

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 Systemupdates verwendet. Die Datei ist im Grunde die Roadmap für Ihr System zu wissen, wo es Programme für die Installation oder das Upgrade herunterladen kann.

Es ist 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

Öffnen Sie das y-ppa-manager Formular Dash

  

Geben Sie Ihr Administratorkennwort ein

  

Doppelklicken Sie auf Erweitert

  

Scannen & amp; Entfernen Sie doppelte PPA's & amp; Klicken Sie auf OK

  

Es wird einige Zeit dauern (1 oder 2 Mint), um zu scannen & amp; Entfernen Sie doppelte PPAs

    
Qasim 08.05.2013 07:36
16

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.*
    
Eric Carvalho 01.09.2012 21:20
10

Erstellen Sie eine Sicherungskopie Ihrer sources.list:

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

Entfernen Sie jetzt das Original und aktualisieren Sie:

sudo rm /etc/apt/sources.list && sudo apt-get update
    
wojox 04.07.2012 07:16
8

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

    
Amjed 11.04.2012 07:11
7

Wenn Sie es in Ihrem source.list nicht herausfinden konnten, dann tun Sie das:

  1. Klicken Sie mit der linken Maustaste auf das Einstellungssymbol (ganz oben auf Ihrem Bildschirm) und wählen Sie Systemeinstellungen.
  2. Klicken Sie auf Softwarequellen und wechseln Sie zu Andere Software.
  3. Deaktivieren Sie eine der Canonical Partner (Quellcode) -Software, die von Canonical für die Dateien ihrer Partner und eine der Canonical Partner-Software von Canonical für die Dateien ihrer Partner bereitgestellt wird, und klicken Sie auf Schließen, um zu beenden.
  4. Drücken Sie gleichzeitig die Tasten STRG + ALT + T , um das Terminal zu öffnen, und geben Sie sudo apt-get update ein.
all4naija 11.04.2012 08:15
5

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 so von einem Terminal installieren:

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

Danach starten Sie einfach die Anwendung und gehen zum Advanced-Menü.

Wählen Sie dann "Doppelte PPAs scannen und entfernen" und drücken Sie OK.

    
rearlight 06.05.2012 15:25
5

10.10 und früher

Anwendungen & gt; Ubuntu Software Center & gt; Bearbeiten & gt; Softwarequellen & gt; Andere Software

ODER

System & gt; Verwaltung & gt; Synaptischer Paketmanager & gt; Einstellungen & gt; Repositories

Wählen und entfernen Sie doppelte Einträge.

    
Sid 18.11.2010 16:43
4

Es klingt, als hätten Sie zwei identische Zeilen in Ihrer /etc/apt/sources.list -Datei.

Gehe zum Terminal und gib sudo editor /etc/apt/sources.list ein, dann suche nach identischen Zeilen in dieser Datei, und wenn du sie findest, lösche sie. Nachdem Sie fertig sind, speichern Sie und beenden Sie, und dann sudo apt-get update und das sollte Ihr Problem lösen.

Wenn das Ihr Problem nicht löst, müssen Sie einen Versuch-und-Irrtum-Ansatz verwenden. Erstellen Sie zuerst eine Sicherungskopie Ihrer sources.list -Datei, dann in der eigentlichen Datei, gehen Sie jede Zeile aus und löschen Sie jede Zeile, speichern und apt-get update -ing, nachdem jede Zeile auskommentiert oder gelöscht wurde. Wenn Sie durch diese Datei Zeile für Zeile kommentieren, werden Sie schließlich feststellen, welche Zeile die überflüssige Zeile ist. Vergiss nicht, alle Zeilen, die du kommentiert, auskommentieren, wenn apt-get update immer noch die gleiche Eingabeaufforderung anzeigt, andernfalls wirst du keine Quellen in deiner sources.list -Datei haben.

    
Jeff Welling 10.04.2012 17:01
4

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

Sorry für den schmutzigen unorganisierten Quellcode.

chkdup - Screenshot:

Autor

Mubarak Alrashidi (DeaDSouL)

Anforderungen:

  1. PHP.
  2. sudo.

Installation:

  1. Öffnen Sie das Terminal.
  2. Wenn Sie PHP nicht installieren möchten, geben Sie Folgendes ein: sudo apt-get install php5 php5-cli .
  3. Laden Sie das chkdup herunter.
  4. Entpacken Sie die Datei an einer beliebigen Stelle.
  5. Geben Sie Folgendes ein: sudo sh install.sh .

Deinstallieren:

  1. Öffnen Sie das Terminal.
  2. Gehen Sie zu dem Pfad, in den Sie das Tool extrahiert haben.
  3. Geben Sie Folgendes ein: 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 das chkdup.php nach /opt/ und erstellt dann einen symbolischen Link 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 verwenden?

  • Ja, ist es, da es eine Sicherung der aktuellen sources.list vor dem Versuch, etwas zu tun, braucht. Aber ich bin nicht verantwortlich, wenn etwas passiert ist. Die volle Verantwortung wird dir gehören.

Lizenz

GNU General Public License

    
DeaDSouL 17.03.2011 01:19
3

Hast du ls /etc/apt/sources.list.d/ überprüft? Vielleicht haben Sie einige "extra" Repositories dort?

    
koni_raid 11.04.2012 13:41
2

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

    
karthick87 18.11.2010 16:43
1

Nein, es gibt keine einzige Befehlszeile zum Suchen und Löschen von doppelten Einträgen in der /etc/apt/sources.list -Datei.

Dies liegt daran, dass die vorgeschlagenen Befehlszeilen, die lediglich die Funktion des viel einfacheren integrierten Befehls uniq duplizieren, nur in einer SORTED-Datei funktionieren und nur ADJACENT-Zeilen entfernen. Außerdem entfernen diese Befehle nur Zeilen, die aus einer identischen Zeichenkette bestehen.

Doppelte Einträge, die von apt-get update gemeldet werden, bestehen aus doppelten Funktions Einträgen, z. B. wenn ein Repository in den beiden 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 diese über das Software Center entfernen. Öffne es und wähle Bearbeiten - & gt; Softwarequellen - & gt; Registerkarte Andere Software . Suchen Sie einfach nach den doppelten Einträgen und deaktivieren Sie sie. (Dies ist auch eine Gelegenheit, alle source-code -Repositorys zu entfernen, wenn Sie die Pakete nicht kompilieren).

Es sollte jedoch beachtet werden, dass apt-get update nicht nur doppelte Einträge über sources.list findet, sondern auch Repository-Dateien, die sich in /var/lib/apt/lists/ befinden. Wenn Sie doppelte Einträge löschen, werden die apt-get update -Fehlermeldungen nur vorübergehend gelöscht, wenn Ubuntu diese benötigt, 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 keine Gedanken über diese Fehlermeldung machen müssen.

    
Smarteralec 08.05.2012 00:00
1

In meinem Fall befanden sich die Duplikate in der Datei prerequists-sources.list . Ich konnte das Upgrade durch Ausführen der folgenden Befehle im Terminal fortsetzen:

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

Gehe dann zu Update Manager und installiere die Updates.

    
Mathijs Sterk 15.06.2012 10:18
1

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

    
Seann 25.04.2013 21:36
1

Ging durch /etc/apt/sources.list manuell sudo nano /etc/apt/sources.list und entfernte die Duplikate. Nach apt-get update wurde das Problem gelöst.

    
Anderverhaal 03.09.2013 14:01
1

In /etc/apt/sources.list müssen Sie den Duplikat-Repository-Eintrag kommentieren (fügen Sie # am Anfang der Zeile hinzu) und Änderungen speichern. Danach wiederhole sudo apt-get update .

    
Snorri 28.05.2013 11:07
1

Verwenden Sie den Ubuntu-Quellenlisten-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, öffnet sich das GUI der Softwarequellen)
  • Einfach kopieren und in sources.list einfügen und speichern.
  • Verlassen Sie das Terminal und Sie sind fertig.

Google scheint ein Problem zu haben, also würde ich vorschlagen, das nicht zu erwähnen. Ich habe dies unter Ubuntu 12.10 getan (Studio-Version mit Ubuntu-Desktop hinzugefügt und Unity für einen anderen Desktop anmelden).

    
studiofreak 05.01.2013 15:29
1

Bearbeiten Sie einfach die Datei /etc/apt/sources.list (verwenden Sie zum Beispiel sudo -H gedit /etc/apt/sources.list ) und entfernen Sie die doppelte Zeile oder fügen Sie am Anfang der Zeile ein # ein.

    
Micha 14.12.2012 19:41
1

Ich versuche, die Möglichkeiten, die andere Benutzer mit Terminal anbieten, zu vervollständigen, da Sie das hauptsächlich gefragt haben:

Melden Sie sich an, wenn Sie eine textbasierte Installation verwenden oder Alt + F2 drücken und gnome-terminal eingeben, wenn Sie die GUI verwenden

Geben Sie dann

ein
sudo nano /etc/apt/sources.list

(Um es besser zu verstehen: Im Verzeichnis /etc finden Sie (fast) alle Konfigurationsdateien Ihres Computers und im apt -Verzeichnis finden Sie die souces.list -Datei, die alle Repositories enthält, die APT zur Aktualisierung verwendet oder Software installieren und aktualisieren)

Bearbeiten Sie die Datei entfernen oder kommentieren mit # am Anfang der Zeile alle doppelten Zeilen.

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

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

sudo apt-get update

Viel Spaß!

    
Pitto 18.11.2010 18:12
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.

    
Tony Saratonev 04.07.2012 01:59
0

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  
    
Stormvirux 14.09.2013 12:46
0

Im Fall 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)

Öffnen: sources.list.d

rm google.list

also bleibt nur google-chrome.list

    
Stevie G 25.05.2015 10:38
0

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 uniq ersetzen:

 sort /etc/apt/sources.list | uniq > /tmp/sources && sudo mv /tmp/sources  /etc/apt/sources.list
    
Sergiy Kolodyazhnyy 24.11.2015 01:38