¿Cómo arreglar "W: Duplicate sources.list entry"?

190

Sigo recibiendo esta advertencia cada vez que intento correr 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

A continuación se muestra la salida del /etc/apt/sources.listarchivo:

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

¿Cómo lo soluciono?

hsinxh
fuente

Respuestas:

229

Your sources.list realmente tiene entradas duplicadas.

Primero, veamos la forma correcta de una línea de repositorio o línea de origen:

El formato correcto de la línea de origen del repositorio es

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

Por ejemplo, una línea de repositorio puede ser como esta

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

Aquí, significa que el repositorio es para paquetes binarios, que están alojados en http://archive.ubuntu.com/ubuntu y este repositorio es para Ubuntu preciso (12.04) y este repositorio contiene el principal (software que es oficialmente compatible con Componente canónico).

  • Tipo: El tipo puede ser deby deb-src. debsignifica un repositorio binario donde deb-srcsignifica un repositorio fuente

  • Ubicación: http://archive.ubuntu.com/ubuntu ubicación del repositorio.

  • Dist-name: el nombre de distribución de la versión de Ubuntu. Para Ubuntu 12.04 es precise, para 11.10 es oneiric.
    Puede visitar el Wiki de Ubuntu para ver una lista actualizada de las versiones de Ubuntu y sus nombres en código .

  • Componente: Puede ser main, universe, multiversey restricted. Estas palabras indican el nivel de soporte para los paquetes y el estado de la licencia.

Vea esta página para más información.

Tenga en cuenta que puede agregar uno o más componentes en una línea, por lo que "principal", "universo", "restringido" y "multiverso" pueden estar en una sola línea. También tenga en cuenta que, aunque agrega más de un componente en una sola línea, el sistema APT los considera como una línea separada que contiene solo un componente.

Entonces, si sources.listtienes una línea como esta

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

Entonces no puede tener otra línea como la siguiente (que tienen sus archivos)

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

que es equivalente a estas dos líneas

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

Porque estás duplicando el universo dos veces, por lo que habrá un error para ese duplicado. Se dará un error por cada duplicado encontrado.

Solución:

Después de analizar su sources.listarchivo, descubrí que es básico y es suministrado por Ubuntu por defecto. Puede crear un archivo predeterminado siguiendo el procedimiento:

  1. Abra una terminal y primero cambie el nombre del sources.listarchivo existente a sources.list.bakarchivo. (podemos eliminarlo de forma segura, pero la precaución es buena).

     sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
    
  2. Luego abra software-properties-gtkpara construir uno nuevo. Escriba el siguiente comando en un terminal o en el símbolo del sistema del tablero presionando Alt+F2

    software-properties-gtk
    

    Tenga en cuenta que para Ubuntu versión 11.10 o anterior debe usar gksuantes del software-properties-gtkcomando

  3. Después de abrir la ventana,

    • Seleccione las cuatro categorías en la pestaña Software de Ubuntu
    • Seleccione seguridad precisos , exactos actualizaciones y precisas-backports categoría en Actualizaciones pestaña.
    • Seleccione el socio Canonical y la categoría Independiente en la pestaña Otro software .

Eso es. Ahora tiene un sources.listarchivo predeterminado sin error. Compare este archivo con el anterior, si lo desea.


Actualización para tratar con sources.list.darchivos de dir

A veces, una entrada duplicada puede estar en un archivo en el /etc/apt/sources.list.ddirectorio, que también es utilizado por APT. Por lo tanto, debe mirar ese directorio y ver si hay algún duplicado en esos archivos. No es necesario que haya duplicados en el mismo archivo.

Caso de ejemplo:

Un usuario tenía este mensaje de error que se mostraba mientras lo hacía 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

Pero no había ninguna entrada http://dl.google.comen el /etc/apt/sources.listarchivo principal . Mirando el /etc/apt/sources.list.d/directorio encontramos estos archivos:

salida de 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

Los archivos google-chrome.listy google.listeran buenos candidatos para contener duplicados. Por lo tanto, era necesario verificar el contenido de ambos archivos.

Salida de cat /etc/apt/sources.list.d/google-chrome.list:

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

y de cat /etc/apt/sources.list.d/google.list

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

Entonces, había entradas duplicadas en las fuentes de Apt. Dado que google-chrome.listsolo contiene una sola línea de apt y también se enumeró en el google.listarchivo, podemos eliminar este archivo de forma segura con el comando

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

Entonces el problema fue resuelto.

Anwar
fuente
55
¿Qué hice para que tenga entradas duplicadas en mi sources.list.d?
Seanny123
@ Seanny123 Eso es difícil de decir.
Anwar
1
Muchas gracias. Me preguntaba horas cómo se producían los duplicados. Finalmente mostraste sources.list.d
Isura Manchanayake
1
Buena y minuciosa respuesta. En su Actualización para tratar con los archivos dir de sources.list.d usted explica cuáles son los archivos / líneas que dan los duplicados. ¿Podría explicar de manera similar cuáles son los 6 pares de líneas (ya que dice "su archivo tiene 6 duplicados allí") en el OP que dan duplicados?
sancho.s
1
La sugerencia para revisar mis sources.list.d fue lo que me ayudó a resolver esto.
lcarsos
80

Para Ubuntu 12.04

Gráficamente:

Presione Alt+ F2y pegue software-properties-gtk(o puede abrir "Centro de software" y luego vaya a "Editar"> "Fuentes de software"). Vaya a la pestaña "Otro software", elija la entrada duplicada y presione el botón "Eliminar".

ingrese la descripción de la imagen aquí


Si necesita una opción de línea de comando, aquí está:

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

El comando hace esto:

catlee el archivo y pasa el contenido al perlque elimina las líneas duplicadas. El resultado se guarda >en un archivo temporal que luego se mueve para reemplazar el /etc/apt/sources.listarchivo original .

desgua
fuente
2
Justo cómo solucionarlo, sin confusión y todos los detalles demasiado profundos. ¡Gracias!
Peter M.
En realidad funcionó! No podría, por alguna razón, instalar git en un 12.04 tampoco. En lugar de eliminar, acabo de comprobar los aparentes "socios canónicos" duplicados.
davidkonrad
3
Ejecuté el one-liner, pero sudo apt-get updateaún se queja de entradas duplicadas como si nada hubiera cambiado. Si importa, estoy en 12.04 (específicamente, elemental OS Luna).
waldyrious
El cates inútil y le impide usarsudo perl -i
tripleee
24

¿Qué tan malas son las entradas duplicadas en sources.list?

No sé qué tan malo es, pero no me gusta sudo apt-get update que me muestra entradas duplicadas.

Por cierto, no es tan malo, solo te muestra que tienes entradas duplicadas.

FuentesLista

El archivo sources.list es un factor clave para agregar o actualizar aplicaciones a su instalación de Ubuntu. Su sistema también lo utiliza para las actualizaciones del sistema. El archivo es básicamente la hoja de ruta para que su sistema sepa dónde puede descargar programas para su instalación o actualización.

Es como la actualización de Windows

Puede eliminar entradas duplicadas en unos sencillos pasos 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

Abra el formulario y-ppa-manager Dash

Ingrese su contraseña de administrador

ingrese la descripción de la imagen aquí

Haga doble clic en Avanzado

ingrese la descripción de la imagen aquí

Escanee y elimine PPA duplicados y haga clic en Aceptar

ingrese la descripción de la imagen aquí

Tomará un tiempo (1 o 2 minutos) escanear y eliminar los PPA duplicados

Qasim
fuente
2
En mi caso, Y PPA siguió diciendo que no se encontraron duplicados. Hice una copia de seguridad de source.list, la eliminé y ejecuté sudo apt-get update para recrear la lista de fuentes (ubuntu 12.04). Esto funcionó para mí.
michel.iamit
1
Trabajó para mí en Mint 17, gracias hombre!
Spences10
Trabajó para mí en ubuntu 14.04 .. Gracias amigo .. :)
Rahul Singh
1
funcionó
vector
1
En mi caso el 14.04 sigue diciendo No se encontraron duplicados
Muhammad Omer Aslam
16

El repositorio asociado está duplicado dentro /etc/apt/sources.listy /etc/apt/sources.list.d/precise-partner.list.

Simplemente elimine esos archivos de "socio preciso" ya que el repositorio de socios ya está presente sources.list.

sudo rm /etc/apt/sources.list.d/precise-partner.*
Eric Carvalho
fuente
Me estoy poniendorm: cannot remove '/etc/apt/sources.list.d/precise-partner.*': No such file or directory
Dennis
1
Tratar sudo rm /etc/apt/sources.list.d/*partner*. También revise su /etc/apt/sources.list, busque líneas duplicadas.
Eric Carvalho
No tuve suerte, no tengo ningún archivo con "socio" en el nombre de ese directorio. Y /etc/apt/sources.listno contiene ningún duplicado de acuerdo con uniq.
Dennis
10

Haga una copia de seguridad de sus fuentes.

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

Ahora quite el original y actualice:

sudo rm /etc/apt/sources.list && sudo apt-get update
wojox
fuente
¿Cómo puede actualizar sin sources.listarchivo?
Anwar
Se repoblará. =)
wojox
el mío no se repobló
conman253
Vuelva al que hizo copia de seguridad
wojox
¿Cómo vuelvo a la lista respaldada? la eliminación eliminó muchas cosas importantes ... esto no es totalmente seguro ...
alvas
8

Tuve el mismo problema, abrir fuentes de software. "Socios canónicos" sin marcar. El conflicto es entre "socios canónicos" y "socios canónicos agregados por el Centro de software"

Amjed
fuente
7

Si no pudiste resolverlo en tu source.list, entonces haz esto:

  1. Haga clic con el botón izquierdo en el icono de configuración (en la esquina superior extrema de su pantalla) y seleccione Configuración del sistema.
  2. Haga clic en Fuentes de software y vaya a Otro software.
  3. Desmarque uno de los 'Software Canonical Partners (Código fuente) empaquetado por Canonical para los archivos de sus socios' y uno de los 'Software Canonical Partners empaquetado por Canonical para los archivos de sus socios' también y haga clic en Cerrar para salir.
  4. Simultáneamente presione las teclas CTRL+ ALT+ Tpara abrir la terminal y escriba sudo apt-get update.
all4naija
fuente
Seguí tus sugerencias, pero aún recibo este error.
hsinxh
Por favor, publique la imagen de sus 'Fuentes de software' aquí para conocer al culpable.
all4naija
Por favor, publique la imagen de su 'Otro software' aquí.
all4naija
6

10.10 y anterior

Aplicaciones> Centro de software de Ubuntu> Editar> Fuentes de software> Otro software

O

Sistema> Administración> Synaptic Packet Manager> Configuración> Repositorios

Ventana de configuración de fuentes de software

Seleccione y elimine entradas duplicadas.

Sid
fuente
5

Para Ubuntu 9.10 - 12.04

Hay una aplicación llamada Y-PPA-Manager que puede hacer eso y mucho más.

Puede instalarlo así desde una Terminal:

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

Después de eso, simplemente inicie la aplicación y vaya al menú Avanzado.

ingrese la descripción de la imagen aquí

Luego seleccione "Escanear y eliminar PPA duplicados" y presione OK.

ingrese la descripción de la imagen aquí

luz trasera
fuente
Es una herramienta genial, pero no soluciona el problema. Hice esta elección y después de esto tengo las mismas advertencias.
nazar_art
4

Parece que tiene dos líneas idénticas en su /etc/apt/sources.listarchivo.

Vaya a la terminal e ingrese sudo editor /etc/apt/sources.list, luego busque las líneas idénticas en ese archivo y, si las encuentra, elimínelas. Después de que haya terminado, guarde y salga, y luego haga sudo apt-get updatey eso debería resolver su problema.

Si eso no resuelve su problema, entonces tendrá que usar un enfoque de prueba y error. Primero, cree una copia de seguridad de su sources.listarchivo, luego en el archivo real, revise o elimine cada línea, guardando y apt-get updatemarcando una vez que cada línea haya sido comentada o eliminada. Revisar este archivo línea por línea comentando diferentes líneas eventualmente le dirá qué línea es la superflua. No olvide descomentar las líneas que comentó si apt-get updateaún muestra el mismo mensaje; de ​​lo contrario, no tendrá fuentes en su sources.listarchivo.

Jeff Welling
fuente
4

Busqué esa herramienta, pero no encontré ninguna ...
Así que terminé codificando una PHP.

Perdón por el sucio código fuente desorganizado.

chkdup - Captura de pantalla:

ingrese la descripción de la imagen aquí

Autor

Mubarak Alrashidi (DeaDSouL)

Requisitos:

  1. PHP
  2. sudo

Instalación:

  1. Abre la terminal.
  2. Para instalar PHP si no lo tiene, escriba: sudo apt-get install php5 php5-cli.
  3. Descargue el chkdup .
  4. Extrae el archivo donde quieras.
  5. Tipo: sudo sh install.sh.

Desinstalar:

  1. Abre la terminal.
  2. Vaya a la ruta en la que extrajo la herramienta.
  3. Tipo: sudo sh uninstall.sh.

Cómo usarlo:

Simplemente abra la terminal y escriba sudo chkdup.

Preguntas frecuentes:

¿Qué hace el install.sh?

  • El instalador moverá el chkdup.phppara /opt/luego creará un enlace simbólico en /usr/bin/.

¿Qué pasa con el uninstall.sh?

  • El desinstalador eliminará los siguientes archivos:

    1. install.sh
    2. /opt/chkdup.php
    3. /usr/bin/chkdup
    4. sí mismo uninstall.sh

¿Es seguro usar chkdup?

  • Sí, ya que toma una copia de seguridad de las fuentes.list actuales antes de intentar hacer algo. Pero no soy responsable si sucedió algo. La responsabilidad total será tuya.

Licencia

Licencia pública general de GNU

Alma muerta
fuente
solo lo probé, agradable y simple :-) agradable :-)
bmbaker
3

¿Lo comprobaste ls /etc/apt/sources.list.d/? ¿Quizás tenga algunos repositorios "extra" allí?

koni_raid
fuente
2

Instale ubuntu-tweak y elimine las entradas duplicadas de allí.

sudo add-apt-repository ppa:tualatrix/ppa
sudo apt-get update
sudo apt-get install ubuntu-tweak

texto alternativo

karthick87
fuente
Esto no dice cómo hacerlo.
RolandiXor
1

No, no hay una sola línea de comando para buscar y eliminar entradas duplicadas en el /etc/apt/sources.listarchivo.

Esto se debe a que las líneas de comando sugeridas, que simplemente duplican la función del uniqcomando incorporado mucho más simple , solo funcionarán en un archivo CLASIFICADO y solo eliminarán las líneas ADJACENT. Además, esos comandos solo eliminarán líneas que consisten en una cadena idéntica de caracteres .

Las entradas duplicadas reportados por apt-get updateconstará de duplicados de función entradas, como un repositorio se incluyen en sus dos i386y amd64variantes. La forma fácil y efectiva de eliminarlos es observar qué repositorios son reportados como duplicados por apt-get update y eliminarlos a través del Centro de software . Ábralo y elija Editar -> Fuentes de software -> pestaña Otro software . Simplemente busque las entradas duplicadas y desactívelas. (Esta también es una oportunidad para eliminar cualquier source-coderepositorio si no está compilando los paquetes).

Sin embargo, debe tenerse en cuenta que apt-get updateno solo encuentra entradas duplicadas a través de sources.list, sino que también incluye archivos de repositorio ubicados en /var/lib/apt/lists/. Eliminar entradas duplicadas de allí solo eliminará temporalmente los apt-get updatemensajes de error si Ubuntu cree que los necesita, ya que los archivos se reinstalarán automáticamente. El hecho de que apt-get updateinforme algunos repositorios como duplicados y luego sugiera que se ejecute apt-get updatesolo para repararlos, es una pista de que realmente no necesita preocuparse por ese mensaje de error.

Smarteralec
fuente
1

En mi caso, los duplicados estaban en el prerequists-sources.listarchivo. Pude continuar con la actualización ejecutando los siguientes comandos en la Terminal:

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

Luego vaya al Update Managere instale las actualizaciones.

Mathijs Sterk
fuente
Mover a / tmp no es necesario. Cambiar el nombre a algo que no termina .listes suficiente
Daniel Alder
1

Bueno, resolví el problema de Duplicar entrada yo mismo renombrándolo /etc/apt/sources.d(como root) a otra cosa y ejecutándolo sudo apt-get updatepara restablecer el directorio y sus contenidos.

Seann
fuente
1

Pasó /etc/apt/sources.listmanualmente sudo nano /etc/apt/sources.listy eliminó los duplicados. Después apt-get update, el problema fue resuelto.

Anderverhaal
fuente
1

En /etc/apt/sources.listdebe comentar (agregar #al comienzo de la línea) la entrada duplicada del repositorio y guardar los cambios. Después de eso repite sudo apt-get update.

Snorri
fuente
1

Use el generador de lista de fuentes de Ubuntu .

  • Correr sudo -H nautilusen la terminal
  • Encontrar /etc/apt/sources.list
  • Haga clic derecho y abra el archivo con un editor de texto (si hace clic en él, se abrirá la GUI de las fuentes de software)
  • Simplemente copie y pegue en el sources.listy guarde.
  • Salga de la terminal y ya está.

Google parece tener un problema, por lo que sugeriría dejarlo fuera. He hecho esto en Ubuntu 12.10 (versión de estudio con el escritorio de Ubuntu agregado y Unity para iniciar sesión en otro escritorio).

studiofreak
fuente
1

Simplemente edite el archivo /etc/apt/sources.list(por ejemplo, use sudo -H gedit /etc/apt/sources.list) y elimine la línea duplicada o coloque un #al comienzo de la línea.

Micha
fuente
1

Intento completar las posibilidades ofrecidas por otros usuarios que usan terminal, ya que eso es lo que pediste, principalmente:

inicie sesión si está utilizando una instalación basada en texto o presione Alt+ F2y escriba gnome-terminal si está utilizando GUI

Luego escribe

sudo nano /etc/apt/sources.list

(Para comprender mejor: en el directorio /etcpuede encontrar (casi) todos los archivos de configuración de su computadora y en el aptdirectorio encontrará el souces.listarchivo que contiene todos los repositorios que APT utiliza para actualizar o instalar y actualizar el software)

Edite el archivo eliminando o comentando con #al comienzo de la línea las filas duplicadas.

Presione Ctrl+ Xpara salir y presione ypara guardar el archivo (o npara salir sin guardar).

Luego actualice para ver si lo ha solucionado:

sudo apt-get update

¡Que te diviertas!

Pitto
fuente
También creo que editor de texto se desempeñó como vim puede encontrar automáticamente los duplicados, pero no sé cómo hacer que cualquier tipo de información sería interesante
Pitto
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

* Saltos de línea insertados para facilitar la lectura.

Tony Saratonev
fuente
2
Por favor explique la respuesta o corra el riesgo de que se elimine.
jokerdino
Bienvenido a Ask Ubuntu! Como se indica en jokerdino, esta respuesta se beneficiaría sustancialmente si la editara para agregar alguna explicación (o al menos para decirle al usuario exactamente qué hacer con estas líneas).
Eliah Kagan el
Esta respuesta es incorrecta porque puede eliminar entradas duplicadas pero no elimina entradas de origen duplicadas . ver aquí para una explicación
Anwar
0

Ejecute lo siguiente para eliminar los duplicados

cat /etc/apt/sources.list | perl -ne '$H{$_}++ or print' > /tmp/sources.list && sudo mv /tmp/sources.list /etc/apt/sources.list  
Stormvirux
fuente
más información sobre esto, por favor
0

En el caso de 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)

Abierto: sources.list.d

rm google.list

así que solo google-chrome.listqueda

Stevie G
fuente
0

Es un trabajo apropiado para el uniqque omite líneas duplicadas e imprime solo entradas únicas, por lo tanto, podemos tomar la salida uniqy reemplazar el archivo antiguo con uniqla salida de:

 sort /etc/apt/sources.list | uniq > /tmp/sources && sudo mv /tmp/sources  /etc/apt/sources.list
Sergiy Kolodyazhnyy
fuente
1
uniqnecesita entrada ordenada.
Muru
sort -uhace el mismo trabajo =)
AB