¿Cómo elimino una línea con formato incorrecto de mi lista sources.list?

68

Desinstalé y reinstalé el Centro de software de Ubuntu según la información que encontré en un hilo similar y obtuve la misma respuesta sobre la línea 91 o algo así.

Intenté subir una captura de pantalla, pero como soy nuevo, no me lo permitirá. Tampoco puedo entender cómo cortar y pegar nada, así que tengo que escribir a mano lo que dice la pantalla de error, tanto cuando intento abrir el centro de software y no sucede nada, cuando intento ingresar comandos en el terminal para desinstalar, reinstalar , lo que sea me sale lo siguiente:

COULD NOT INTITIALIZE THE PACKAGE INFORMATION
An unresolvable problem occured while initializing the package information
Please report t:his bug against the 'update-manager' package and include the
following error message:
'E: Malformed line 91 in source list/etc/apt/sources.list (dist parse) 
E: The list of sources could not be read., 
E: The package list of status file could not be parsed or opened.

¿Cómo denuncio errores? Qué se puede hacer con esto. He buscado y todo lo que todos dicen hacer me lleva de vuelta al mismo mensaje de error de línea.

Entonces, no sé cómo llegar a la línea 91 en la lista de fuentes; para decirte lo que dice. Lo siento, soy realmente nuevo en esto. Eso es lo que necesito es averiguar cómo llegar y arreglar lo que dice. Realmente me gustaría NO tener que volver a particionar mi disco duro y comenzar desde cero, así que estoy ansioso por resolver este problema. Necesito poder instalar un nuevo software.

eminencejae
fuente
8
¿Puedes agregar el contenido de tus /etc/apt/sources.listlíneas 67 y 69 ???
Bruno Pereira
2
Edite su pregunta para incluir la salida del comando cat /etc/apt/sources.list. Y no, no necesitas borrar todo. Es un problema muy fácil ( desde mi experiencia )
Anwar
No necesita puntos de representante para publicar la salida. Sin embargo, necesita formatear la salida como código o no le permitirá publicar la salida porque no tiene suficientes puntos de representación para publicar múltiples enlaces. Edite la pregunta y pegue la salida y luego resalte la salida y luego presione CTRL + K para formatear la salida como código y luego guardar los cambios.
mchid

Respuestas:

55

Algunas líneas están rotas en su sources.listarchivo (u otro *.listarchivo sources.list.d/).

Edite el archivo mencionado en el error para corregir las líneas discontinuas.

  1. Para hacer esto, ejecute este comando (presione Ctrl+ Alt+ Tpara abrir una Terminal):

    sudo -H gedit /etc/apt/sources.list
    

    O, en lugar de Gedit (que no todos los sistemas Ubuntu tienen), es posible que prefiera abrir el archivo en un editor de texto basado en terminal:

    sudoedit /etc/apt/sources.list
    

    Si es necesario, reemplácelo /etc/apt/sources.listcon otro nombre de archivo, es decir, la ruta a algún archivo dentro /etc/apt/sources.list.d/.

  2. Encuentre las líneas que tienen un formato incorrecto (consulte el error para un número de línea, luego mire alrededor de ese punto). Estos son ejemplos de líneas formateadas correctamente:

    # Comment, marked by a line starting with '#'
    deb http://site.example.com/debian distribution component1 component2 component3
    deb-src http://site.example.com/debian distribution component1 component2 component3
    

    La URL distributiony los componentes serán diferentes. No necesariamente tiene que tener 3 componentes.

    Cualquier cosa que no se ajuste a este formato es incorrecta.

  3. Guarde el archivo y salga del editor de texto. Luego ejecute este comando en una ventana de Terminal:

    sudo apt-get update
    

Suponiendo que no haya errores, el problema ya está solucionado. Debería poder ejecutar el Centro de software.

Sin embargo, si bien algunos problemas con el Centro de software pueden resolverse reinstalando el software-centerpaquete, la mayoría no puede, por lo que es posible que su problema original continúe. Si ese es el caso, puede publicar una nueva pregunta para obtener ayuda.

Eliah Kagan
fuente
Creo que a veces para las distribuciones basadas en Debian se necesita ./al final de la línea como en este ejemplo
user10089632
27

Método rápido

Una solución para este problema puede ser construir la sources.listentrada desde cero.

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

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

# deb http://archive.canonical.com/ubuntu precise partner
# deb-src http://archive.canonical.com/ubuntu precise partner

# deb http://extras.ubuntu.com/ubuntu precise main
# deb-src http://extras.ubuntu.com/ubuntu precise main
  • Copie el contenido anterior (en el cuadro gris) y abra el sources.listarchivo como root.

    Escribir sudo -H gedit /etc/apt/sources.listesto en una terminal y golpear Enterhará el trabajo.

  • A continuación, pegue el contenido copiado en la sources.listnota que probablemente necesitará reemplazar precisecon el nombre en código que representa su versión de Ubuntu, por ejemplo, trustypara 14.04. Luego guarda y cierra gedit.

  • Luego hazlo sudo apt-get updatey verás que la lista de repositorios se actualiza.

Explicación: Aquí estamos reemplazando por completo el contenido con otro archivo sources.list con la entrada del repositorio del servidor principal. Si desea utilizar su servidor local para sources.listver el método a continuación.

Método recomendado

Vaya al sitio del generador de la lista de fuentes de Ubuntu .

  • Selecciona tu pais.
  • Seleccione las ramas que desee, como Principal, Restringido, Multiverso, Universo.
  • Seleccione la lista de actualizaciones deseada, -
  • Seleccione cualquier lista de repositorio de terceros si lo desea.
  • Haga clic en Generar lista en la parte inferior de la página, se le dará una lista con repositorios.
  • Copie esa lista y reemplácela con el sources.listarchivo que tiene.

Estás listo. (Espero que esto sea de ayuda.)

Anwar
fuente
55
¡Es extraño que esto no haya sido aceptado! Una solución rápida, comenta la línea problemática /etc/apt/sources.listagregando ##como primeros caracteres en la línea. Entonces inténtalo sudo apt-get update.
Noble P. Abraham
3
Tal vez no fue aceptado porque el usuario puede tener otros repositorios habilitados y los perderían si hicieran esto. Por ejemplo, la mayoría de los usuarios de VirtualBox lo obtienen del repositorio de Oracle. Además, Oracle usa nombres de paquetes diferentes en sus repositorios que Ubuntu en los suyos. Por lo tanto, si instalé VirtualBox con el repositorio de Oracle y seguí esta guía, me sentaría en la misma versión de VirtualBox todo el tiempo y nunca recibiría una actualización. Nunca.
John Scott
@FuzzyToothpaste no los perderán si hicieron esto. Solo elimina las entradas duplicadas. Su escenario de ejemplo no tiene nada que ver con este problema
Anwar
Cuando utilice el sitio generador de la lista de fuentes de Ubuntu para generar un nuevo archivo sources.list, no olvide actualizar las claves GPG. De lo contrario, el problema puede persistir
Tushar Goswami
6

Como puede ver en el error, dice que su archivo sources.list tiene una entrada incorrecta. Esta entrada incorrecta no se pudo analizar. Este error no está relacionado con el Centro de software como tal, sino que está relacionado principalmente con apt (El administrador de paquetes)

La forma de resolver esto sería corregir la 91entrada de línea con formato incorrecto .

Si no puede entender lo que está mal con la línea 91, publique la línea 91 y lo ayudaré

Manish Sinha
fuente
6

Pegue el archivo /etc/apt/sources.listpara que podamos solucionar este problema por usted. Consulte esta breve respuesta tutorial para saber cómo hacerlo:

¿Cómo puedo compartir fácilmente la salida de un comando o un archivo de texto con otros?


Esto a veces puede ser una solución muy fácil, pero primero debe hacer una copia de seguridad sources.list ya que es un archivo crítico.

  1. Abra la terminal con Ctrl+ Alt+ T.
  2. Escriba / pegue: sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup(esto crea una copia de seguridad)
  3. sudo sed -i -e '68d' /etc/apt/sources.list (esto elimina la línea problemática)
  4. sudo apt-get update (esto actualiza la base de datos con el archivo que se ha solucionado)

Si ve que no aparecen errores al intentar el paso 4, es de esperar que se solucione el problema. Puede salir del terminal y volver al Centro de software / Administrador de actualizaciones y debería funcionar.

Si todavía hay un problema, puede restaurar el archivo original desde el terminal con sudo cp /etc/apt/sources.list.backup /etc/apt/sources.list. En ese caso, pegue las líneas problemáticas o incluso el archivo completo en un pastebin y luego podemos ayudarlo más.

ish
fuente
3
Eliminar la línea ofensiva puede no ser una buena idea (pero felicitaciones por el consejo de respaldar las cosas antes de hacer esto). ¿Qué pasa si es un repositorio que el usuario necesita? Además, si una línea larga se dividió de alguna manera en dos líneas, tendrá dos líneas mal formadas (y el procedimiento debe repetirse). man sources.listtiene una sección con ejemplos y puede ser útil pedirle al usuario que compare sus líneas con los ejemplos, tal vez pueda determinar qué está mal y arreglarlo él mismo. Personalmente, esperaría hasta que publique su archivo sources.list.
roadmr
@roadmr: Gracias, estoy completamente de acuerdo con todos los escenarios que postulas. Simplemente sentí que los novatos tal vez ni siquiera sepan cómo publicar un archivo, y mucho menos líneas específicas de ese archivo, a menos que se les indique cómo. Eso me inspiró a escribir este auto-QA-howto :-)
ish
@roadmr Creo que recibiría un mensaje de error sobre dos líneas malformadas si una línea larga se dividiera en dos líneas.
mchid
Tenga en cuenta que si -i.backupse pasa a en sedlugar de justo -ientonces, se sedcreará el archivo de copia de seguridad.
Eliah Kagan
5

El archivo /etc/apt/sources.listcontiene las URL de los servidores web y la ubicación de otras fuentes (p. Ej., Cds), desde donde puede recuperar su software y actualizaciones. Básicamente le dice a Ubuntu dónde buscar nuevo Software y actualizaciones para programas ya instalados. El mensaje de error que recibió significa que de alguna manera el archivo se vio comprometido. Sin saber cuál es el contenido de su archivo, es difícil saber qué tiene exactamente de malo. Por lo tanto, debe publicar la salida de sudo more /etc/apt/sources.listnosotros para ayudarlo mejor.

Si el archivo está desordenado sin posibilidad de reparación, puede usar el Generador de lista de origen de Ubuntu para generar uno sources.listnuevo. Pero debe hacer una copia de seguridad de su anterior de antemano. Además, esto hará que pierda todos los cambios que haya realizado para sus Fuentes de software, por ejemplo, en Sofware Center.

La mejor manera de solucionar esto es dejarnos ver qué hay de malo en su sources.list

Edite después de publicar su sources.list:

Creo que el archivo que publicó debe tener este aspecto (tenga en cuenta lo último en las líneas y lo que falta /etc/apt/sources.listal final):

# /etc/apt/sources.list

deb http://archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse 
deb http://security.ubuntu.com/ubuntu/ precise-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ precise-updates main restricted universe multiverse
deb http://archive.canonical.com/ubuntu partner
deb-src http://archive.canonical.com/ubuntu partner
confundir
fuente
Probaré el generador de lista de origen después de hacer una copia de seguridad de mis archivos, pero realmente me llevaría un tiempo. Mi computadora portátil todavía está en HDD, por lo que aún no es tan rápida. Agregué mi source.list al mensaje anterior.
Odi1215
Es suficiente hacer una copia de seguridad del único archivo llamado sources.list.
con-f-use el
Esta bien, lo haré. ¿Entonces probaré el generador de la lista fuente?
Odi1215
Positivo. Eso es un sí.
con-f-use
Escribí sudo más /etc/apt/sources.list pero no pasó nada.
Odi1215
5

Intente editar su sources.listarchivo colocando sudo gedit /etc/apt/sources.listun terminal (se le puede solicitar su contraseña), después de lo cual tendrá las opciones para habilitar "Números de línea" en el menú Edición / Preferencias de gEdit y haga clic en la casilla de verificación "Mostrar números de línea", luego vaya manualmente a la línea en su error, por ejemplo, 91 o usando "Buscar / Ir a la línea" (Ctrl + I hace el truco).

ingrese la descripción de la imagen aquí

Al comienzo de la Línea 91, suelte dos símbolos # ( ##) para comentar esa línea y así eliminarla del proceso de actualización (también puede eliminar esa línea bajo su propio riesgo, le sugiero una copia de seguridad).

Cuando termine, guarde el archivo y ciérrelo. Luego abra una terminal y ejecute sudo apt-get updatey vea si el error aún aparece. Si no, intente abrir su administrador de actualizaciones.

De alguna manera, parece que el texto en la Línea 91 de su sources.listarchivo está dañado o hay algún tipo de error, lo que significa que algunos programas no se pueden instalar / actualizar / actualizar.

Al comentar / eliminar la línea errónea, el software no se instalará (si no lo está ya) o no se actualizará / actualizará si eso es lo que intenta. De lo cual le sugiero que verifique de dónde proviene esa línea (qué software lo requiere) y haga las modificaciones adecuadas según sea necesario para que todo funcione bien.

Geppettvs D'Constanzo
fuente
4

Si se enfrenta a un error de línea con formato incorrecto como el siguiente, le recomiendo que comente ( agregue #antes de la línea ) la línea en lugar de eliminarla en el /etc/apt/sources.listarchivo.

E: Malformed line 91 in source list /etc/apt/sources.list (dist parse)

Del error anterior, el número de línea 91en el /etc/apt/sources.listarchivo está dañado. Para comentar la línea número 91, debe ejecutar el siguiente comando en la terminal.

sudo sed -i '91s/\(.*\)/#\1/' /etc/apt/sources.list

91en el código anterior representa el número de línea. Reemplace el número 91 en el código anterior con el suyo si tiene algún error de línea con formato incorrecto.

En algunos casos, también se producirá un error de línea con formato incorrecto en un archivo de lista que realmente estaba presente dentro del /etc/apt/sources.list.ddirectorio. Por ejemplo,

E: Malformed line 1 in source list /etc/apt/sources.list.d/google.list (dist parse)

En este caso, le recomiendo que elimine el google.listarchivo ejecutando sudo rm /etc/apt/sources.list.d/google.listy luego agregue el PPA correspondiente nuevamente.

Finalmente actualice todos los repositorios ejecutando el sudo apt-get updatecomando en la terminal. Ahora el error no aparecerá.

Avinash Raj
fuente
3

Debe eliminar la última línea de este archivo (no el archivo en sí, por supuesto):

 /etc/apt/sources.list

Su sources.listarchivo tiene que verse así:

# /etc/apt/sources.list
deb http://archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse 
deb http://security.ubuntu.com/ubuntu/ precise-security main restricted universe   multiverse
deb http://archive.ubuntu.com/ubuntu/ precise-updates main restricted universe multiverse
deb http://archive.canonical.com/ partner
deb-src http://archive.canonical.com/ partner

Por supuesto, solo reemplazar su sources.listarchivo con ese texto podría ser algo muy malo, especialmente si se veía bastante diferente antes. El punto clave es que cada línea comienza con debo deb-src(excepto los comentarios, que comienzan con #).

Reina malika
fuente
1
@Malika Hola, me alegro de que esto haya solucionado el problema. Pero intente responder preguntas no solo para el autor de la pregunta, sino también para las personas que Google hacen esta pregunta y tienen ligeras variaciones del problema del autor de la pregunta. Probablemente esto necesite un poco más de explicación para que sea una buena respuesta "general". :)
Jjed
@JacobJohanEdwards No puedo estar de acuerdo con usted, porque realmente no podemos ayudar a las personas que ejecutan comandos antes de leer la pregunta, IMO
Anwar
2
@Anwar En mi opinión, es responsabilidad del respondedor (a) no responder de una manera que solo ayude al autor de la pregunta original [que está demasiado localizado], (b) no advierta adecuadamente los posibles efectos secundarios de un mando. Un descargo de responsabilidad ayuda.
Jjed
1

Abra una terminal usando CTRL+ Alt+ Ty ejecute el siguiente comando para eliminar la línea 6, que no es la forma correcta de la línea de origen del repositorio, por lo que es posible que le dé un error sobre la línea con formato incorrecto.

ADVERTENCIA: No ejecute este comando sin leer primero la pregunta, este comando eliminará la línea 68 del /etc/apt/sources.listarchivo. Compruebe si su problema es similar e, incluso si lo es, reemplácelo 68con el número de la línea que necesita eliminar .

sudo sed -i.old '68d' /etc/apt/sources.list

Este comando eliminará la línea usando seden su lugar. Hace una copia de seguridad llamada /etc/apt/sources.list.old. Si no desea la copia de seguridad, puede usar plain en -ilugar de -i.old.

Alternativamente, puede eliminar manualmente la línea con Gedit.

  • Presione Alt+ F2y escriba gksu gedit /etc/apt/sources.list.
    (Si no gksutienes puedes usar sudo -H gedit).
  • Encuentra el corrupto /etc/apt/sources.listy quítalo.
  • Guarde y salga de Gedit.

Forma correcta de la línea de origen del repositorio:

El formato correcto de la línea fuente del repositorio es:

<type of repository> <location i.e URI>  <dist-name> <components i.e main, universe>

Por ejemplo:

  deb http://archive.ubuntu.com/ubuntu precise main
  • Tipo: deb es el tipo de repositorio, indica que es un repositorio binario, no un repositorio de origen, que tiene tipo deb-scr.
  • Ubicación: http://archive.ubuntu.com/ubuntu ubicación del repositorio
  • Dist-name: precise es el nombre de distribución de la versión de Ubuntu. para Ubuntu 12.04 es precise, 11.10 esoneiric

  • Componente: main indica el componente del repositorio. El repositorio de Ubuntu se divide en cuatro partes.

    1. Principal : que contiene software gratuito y de código abierto, compatible oficialmente
    2. Universo : Canonical no admite estos softwares, pero la comunidad los mantiene.
    3. Restringido : Canonical admite estos softwares, pero no son gratuitos. Estos son compatibles para proporcionar algunos controladores esenciales
    4. Multiverso : también son softwares no libres y no son compatibles con Canonical.

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

Ahora puede comprender que /etc/apt/sources.listno se trata de una línea fuente de repositorio y, por lo tanto, se apt-getqueja de ello.


Anwar
fuente
1
Hola, Anwar, esta es una buena respuesta, pero es muy arriesgado tener un sudo sedcomando en la parte superior. Muchas personas con el mismo problema (pero con circunstancias ligeramente diferentes) verán esta respuesta y la ejecutarán involuntariamente, y potencialmente arruinarán su sources.listreparación irreparable. En este caso, podría ser necesario un enfoque más general (con un editor de texto).
Jjed