Domanda Come risolvere "W: Duplicate sources.list entry"?


Continuo a ricevere questo avviso ogni volta che provo a correre sudo apt-get update.

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

Di seguito è riportato l'output di /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

Come lo aggiusto?


186
2018-04-10 06:31


origine




risposte:


Il tuo sources.list ha davvero voci duplicate.

Per prima cosa vediamo la forma corretta di una linea di deposito o di una linea sorgente:

Il formato corretto della linea di origine del repository è

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

Ad esempio, una linea di pronti contro termine può essere come questa

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

Qui, significa, il repository è per i pacchetti binari, che sono ospitati in http://archive.ubuntu.com/ubuntu e questo repository è per Ubuntu preciso (12.04) e questo repository contiene il componente principale (software ufficialmente supportato da Canonical).

  • Genere: Il tipo può essere deb e deb-src. deb significa un repository binario dove deb-src indica un repository di origine

  • Posizione:  http://archive.ubuntu.com/ubuntu posizione del repository.

  • Dist-Name: Il nome di distribuzione della versione di Ubuntu. Per Ubuntu 12.04 lo è precise, per 11.10 lo è oneiric.
    Puoi visitare il Wiki di Ubuntu per visualizzare un aggiornamento elenco delle versioni di Ubuntu e dei loro nomi in codice.

  • Componente: Può essere main, universe, multiverse e restricted. Queste parole indicano il livello di supporto per i pacchetti e lo stato della licenza.

Vedere questa pagina per maggiori informazioni.

Si prega di notare che, è possibile aggiungere uno o più componenti in una riga, quindi "principale", "universo", "limitato" e "multiverso" possono essere in una singola riga. Nota anche: sebbene tu aggiunga più di un componente in una singola riga, il sistema APT li considera come una riga separata contenente solo un componente.

Quindi, se il tuo sources.list avere una linea come questa

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

Quindi non può avere un'altra linea come quella sotto (che i tuoi file hanno)

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

che è l'equivalente di queste due linee

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

Perché, stai duplicando universo due volte, quindi ci sarà un errore per quel duplicato. Verrà dato un errore per ogni duplicato trovato.

Soluzione:

Dopo aver analizzato il tuo sources.list file, ho trovato che, è di base che viene fornito da Ubuntu di default. È possibile creare un file predefinito seguendo la procedura:

  1. Aprire un terminale e prima rinominare l'esistente sources.list file su sources.list.bak file. (possiamo tranquillamente rimuoverlo, ma la prudenza è buona).

     sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
    
  2. Quindi apri software-properties-gtk per costruirne uno nuovo. Digitare il comando di seguito in un terminale o nel prompt dei comandi di dash premendo alt+F2

    software-properties-gtk
    

    Nota, per Ubuntu versione 11.10 o precedente devi usare gksu prima di software-properties-gtk comando

  3. Dopo che la finestra è aperta,

    • Seleziona tutte e quattro le categorie in Software Ubuntu linguetta
    • Selezionare precisa-security, precise-updates e precise-backports categoria in aggiornamenti scheda.
    • Selezionare Partner canonico e Indipendente categoria da Altro software scheda.

Questo è tutto. Ora hai un valore predefinito sources.listfile senza errori. Confronta questo file con quello precedente, se vuoi.


Aggiornamento da trattare sources.list.d i file di dir

A volte una voce duplicata può essere in un file nel /etc/apt/sources.list.d directory, che viene utilizzata anche da APT. Quindi, dovresti guardare quella directory e vedere se c'è qualche duplicato in quei file. Non è necessario che i duplicati si trovino nello stesso file.

Esempio di caso:

Un utente ha mostrato questo messaggio di errore mentre lo faceva sudo apt-get update.

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

Ma non c'era entrata con http://dl.google.com nel principale /etc/apt/sources.list file. Guardando il /etc/apt/sources.list.d/ directory abbiamo trovato questi file:

uscita di 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

I file google-chrome.list e google.list erano buoni candidati per contenere i duplicati. Quindi, era necessario controllare il contenuto di entrambi i file.

Uscita di cat /etc/apt/sources.list.d/google-chrome.list:

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

e di cat /etc/apt/sources.list.d/google.list

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

Quindi, c'erano delle voci duplicate nelle fonti di Apt. Da google-chrome.list contiene solo una singola riga apt ed era anche elencata in google.list file possiamo tranquillamente rimuovere questo file con il comando

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

Quindi il problema è stato risolto.


225
2017-09-05 17:33



+1 Questa è un'ottima risposta. Risolto il problema e spiegato pienamente perché si era verificato. - akmad
Cosa ho fatto per farmi avere voci duplicate nel mio sources.list.d? - Seanny123
Grazie mille. Mi stavo chiedendo ore come si sono verificati i duplicati. Finalmente hai mostrato sources.list.d - Isura Manchanayake
Risposta piacevole e completa Nel tuo Aggiornamento per gestire i file dir di sources.list.d tu spieghi quali sono i file / le linee che danno i duplicati. Potresti spiegare in modo simile quali sono le 6 coppie di linee (dal momento che dici "il tuo file ha 6 duplicati lì") nell'OP che danno i duplicati? - sancho.s
Il suggerimento di andare a controllare my sources.list.d è stato ciò che mi ha aiutato a risolvere questo problema. - lcarsos


Per Ubuntu 12.04 

Graficamente:

stampa alt + F2 e incolla software-properties-gtk (oppure è possibile aprire "Software Center", quindi passare a "Modifica"> "Sorgenti software"). Vai alla scheda "Altro software", scegli la voce duplicata e premi il pulsante "Rimuovi".

enter image description here


Se hai bisogno di un'opzione a riga di comando, eccola:

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

Il comando fa questo:

cat legge il file e passa il contenuto a perl che rimuove le linee duplicate. Il risultato è quindi salvato > in un file temporaneo che viene quindi spostato per sostituire l'originale /etc/apt/sources.list file.


77
2018-05-04 22:27



La tua sceneggiatura ha funzionato perfettamente. - Lucio
Solo come aggiustarlo, senza confusione e tutti i dettagli troppo profondi. Grazie! - P.M
Ha funzionato davvero! Non è possibile, per qualche motivo, installare git su un 12.04. Invece di rimuovere, ho appena controllato i "partner canonici" apparentemente duplicati. - davidkonrad
Ho eseguito il one-liner, ma sudo apt-get update si lamenta ancora di voci duplicate come se nulla fosse cambiato. Se è importante, sono il 12.04 (in particolare, OS elementare Luna). - waldyrious
Il cat è inutile e ti impedisce di usare sudo perl -i - tripleee


Quanto sono cattive le voci duplicate in sources.list?

Non so quanto sia male, ma non mi piace sudo apt-get update mostrandomi voci duplicate.

Tra l'altro non è così male, è solo mostrando che hai voci duplicate.

SourcesList

Il file sources.list è un fattore chiave nell'aggiunta o nell'aggiornamento di applicazioni all'installazione di Ubuntu. Questo viene anche utilizzato dal sistema per gli aggiornamenti di sistema. Il file è fondamentalmente la tabella di marcia per il tuo sistema per sapere dove può scaricare i programmi per l'installazione o l'aggiornamento.

È proprio come l'aggiornamento di Windows

Puoi rimuovere le voci duplicate in pochi semplici passaggi con Y PPA Manager

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

Aperto y-ppa-gestore modulo trattino

Inserisci la password di amministrazione

enter image description here

Fare doppio clic su Avanzate

enter image description here

Scansione e rimozione di PPA duplicati & Fare clic su OK

enter image description here

Ci vorrà un po 'di tempo (1 o 2 minuti) per scansionare e rimuovere i PPA duplicati


22
2018-05-08 05:36



Nel mio caso, Y PPA continuava a dire di non aver trovato duplicati. Ho fatto un backup di source.list rimosso e ho eseguito sudo apt-get update per ricreare la lista dei sorgenti (ubuntu 12.04). Questo ha funzionato per me. - michel.iamit
Ha lavorato per me su Mint 17, grazie amico! - spences10
Ha funzionato per me su Ubuntu 14.04..Grazie amico .. :) - Rahul Singh
ha funzionato come un fascino - vector
Nel mio caso il 14.04 continua a dire Nessun duplicato trovato - Muhammad Omer Aslam


Il repository partner è duplicato all'interno /etc/apt/sources.list e /etc/apt/sources.list.d/precise-partner.list.

Basta rimuovere quei file "partner precisi" mentre il repository partner è già presente sources.list.

sudo rm /etc/apt/sources.list.d/precise-partner.*

16
2017-09-01 19:20



Sto arrivando rm: cannot remove '/etc/apt/sources.list.d/precise-partner.*': No such file or directory - Dennis
Provare sudo rm /etc/apt/sources.list.d/*partner*. Controlla anche il tuo /etc/apt/sources.list, cerca le linee duplicate. - Eric Carvalho
Non ho fortuna, non ho alcun file con "partner" nel nome in quella directory. E /etc/apt/sources.list non contiene duplicati secondo uniq. - Dennis


Fai una copia di backup del tuo sources.list:

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

Ora rimuovi l'originale e aggiorna:

sudo rm /etc/apt/sources.list && sudo apt-get update

10
2017-07-04 05:16



Come può aggiornare senza sources.list file? - Anwar
Si ripopolerà. =) - wojox
@wojox Funziona, grazie. - quantme
il mio non ha ripopolato - conman253
Ripristina quello su cui hai eseguito il backup - wojox


Ho avuto lo stesso problema, open source del software. deselezionato "Partner canonici". Il conflitto è tra "partner canonici" e "partner canonici aggiunti dal centro software"


8
2018-04-11 05:11





Se non riuscissi a capirlo nel tuo source.list, quindi fai questo:

  1. Fai clic con il tasto sinistro sull'icona delle impostazioni (nell'angolo in alto a sinistra dello schermo) e seleziona Impostazioni di sistema.
  2. Fare clic su Sorgenti software e passare a Altro software.
  3. Deseleziona uno dei 'Canonical Partners (codice sorgente) -software confezionato da Canonical per i file dei loro partner e uno dei' Canonical Partners -software confezionati da Canonical per i file dei loro partner 'e fai clic su Chiudi per uscire.
  4. Premere contemporaneamente CTRL + ALT + T chiavi per aprire il terminale e digitare sudo apt-get update.

7
2018-04-11 06:15



Ho seguito i tuoi suggerimenti, ma continuo a ricevere questo errore. - hsinxh
Per favore, pubblica qui l'immagine delle tue "fonti di software" per conoscere il colpevole. - all4naija
Per favore, pubblica qui l'immagine del tuo 'Altro software'. - all4naija


Per Ubuntu 9.10 - 12.04

C'è un'applicazione chiamata Y-PPA-Manager che può farlo e molto altro.

Puoi installarlo così da un terminale:

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

Successivamente, avvia l'applicazione e vai al menu Avanzato.

enter image description here

Quindi seleziona "Scansiona e rimuovi PPA duplicati" e fai clic su OK.

enter image description here


5
2018-05-06 13:25



È uno strumento interessante ma non risolve il problema. Ho fatto questa scelta e dopo questo ho gli stessi avvertimenti. - nazar_art