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?
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
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.
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:
Ö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
Ö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
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
Nachdem das Fenster geöffnet ist,
Das ist es. Sie haben jetzt eine default sources.list
-Datei ohne Fehler. Vergleichen Sie diese Datei mit der vorherigen, wenn Sie möchten.
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.
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
sudo rm /etc/apt/sources.list.d/google-chrome.list
Dann wurde das Problem gelöst.
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.
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.
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
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.*
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
Ich hatte das gleiche Problem, offene Softwarequellen. ungeprüfte "Canonical Partners". Der Konflikt besteht zwischen "Canonical Partners" und "Canonical Partners Added by Software Center"
Wenn Sie es in Ihrem source.list
nicht herausfinden konnten, dann tun Sie das:
sudo apt-get update
ein. 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.
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.
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.
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.
Mubarak Alrashidi (DeaDSouL)
sudo apt-get install php5 php5-cli
. sudo sh install.sh
. sudo sh uninstall.sh
. Öffnen Sie einfach das Terminal und geben Sie sudo chkdup
ein.
Was macht die install.sh?
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:
install.sh
/opt/chkdup.php
/usr/bin/chkdup
uninstall.sh
Ist es sicher, chkdup zu verwenden?
GNU General Public License
Hast du ls /etc/apt/sources.list.d/
überprüft? Vielleicht haben Sie einige "extra" Repositories dort?
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
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.
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.
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.
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.
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
.
Verwenden Sie den Ubuntu-Quellenlisten-Generator .
sudo -H nautilus
im Terminal /etc/apt/sources.list
sources.list
einfügen und speichern. 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).
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.
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
einsudo 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ß!
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.
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
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
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
Tags und Links apt configuration software-sources