Restaurar repositorios de apt predeterminados en sources.list desde la línea de comandos

17

Estoy buscando el mejor método para restaurar el /etc/apt/sources.listvalor predeterminado desde la línea de comandos.

¿No hay forma de hacer referencia al código fuente del paquete que genera este archivo o algo así? Quiero una forma confiable e independiente de la versión de restaurar este archivo.

Soluciones descartadas

Antes de marcar esto como un duplicado, tenga en cuenta que ya he revisado esta pregunta . Solo es aplicable si tiene la GUI de Ubuntu disponible. Esta pregunta es específica de la línea de comando.

También he revisado esta pregunta donde la solución aceptada es que alguien pegó el contenido de su sources.listarchivo. Esta no es una forma adecuada de restaurar el archivo, ya que las intenciones de la persona que proporciona el contenido del archivo no pueden verificarse y el archivo está sujeto a cambios con nuevas versiones.

Revisé el generador en simplelinux.ch , pero esto tampoco es de Ubuntu, así que no planeo usarlo.

Ryan Burnette
fuente

Respuestas:

20

No estoy seguro de lo que quieres, pero:

  • El repositorio principal siempre es http://archive.ubuntu.com/ubuntu ; todo lo demás es un reflejo de esto. Todos los demás espejos primarios tienen un dominio de la forma <cctld>.archive.ubuntu.com, donde el código corto de dos caracteres es el dominio de nivel superior del código de país . Puede encontrar espejos adicionales con su estado en Launchpad .
  • El nombre en clave de distribución es parte del canal (el tercer término). Puede usarlo lsb_release -scpara descubrirlo, y es la primera palabra del nombre bonito de la versión en minúsculas ( trustypara Trusty Tahr, por ejemplo).
  • Hay cinco canales: <codename>, <codename>-security, <codename>-updates, <codename>-backportsy <codename>-proposed. El primero es necesario ya que es la base, el segundo es muy recomendable ya que contiene correcciones de seguridad, el cuarto solo si necesita algún paquete respaldado de una versión más reciente y el quinto solo si un desarrollador le pide que lo habilite para probar una posible reparar.
  • Hay cuatro secciones de depósito: main, multiverse, universey restricted( ¿Cuál es la diferencia entre multiverso, universo, restringidos y principal? )

Por lo tanto, siempre puede crear una caja fuerte sources.listque contenga solo:

deb http://archive.ubuntu.com/ubuntu <codename> main multiverse universe restricted
deb http://archive.ubuntu.com/ubuntu <codename>-security main multiverse universe restricted

Si quieres un comando para hacer esto:

printf 'deb http://archive.ubuntu.com/ubuntu %s main multiverse universe restricted\n' $(lsb_release -sc){,-security} > /etc/apt/sources.list

Además de la lista Launchpad, la lista proporcionada por el programa Software Sources es de /usr/share/python-apt/templates/Ubuntu.mirrors, que es del python-apt-commonpaquete. Este paquete es solo una dependencia indirecta de Sugieraapt , por lo que es posible que no se instale de forma predeterminada en un servidor.

muru
fuente
Eso es exactamente lo que quería aclaraciones. ¡Gracias!
Ryan Burnette
esto responde perfectamente para ambas publicaciones (la vinculada y esta)
Brian Thomas
¿Pero aún tendría que validar esta respuesta con la documentación en el sitio web de Ubuntu ya que no puede verificar las intenciones de la persona que proporciona esta respuesta?
Herbert Van-Vliet
7

Si comprende en qué consiste cada línea /etc/apt/sources.list, puede generar su propia lista. Por ejemplo, una línea en mi sources.listes,

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

Tiene 4 secciones:

  • Sección 1: La primera sección está debaquí, lo que significa que es un repositorio de todos los paquetes binarios. El único otro valor posible es lo deb-srcque significa que es un repositorio de códigos fuente.
  • Sección 2: Esta sección contiene el URI del repositorio ( http://us.archive.ubuntu.com/ubuntu/ en este caso). El URI puede variar para los espejos, por ejemplo, si desea usar el espejo oficial de EE. UU., Entonces el URI será http://us.archive.ubuntu.com/ubuntu/ .
  • Sección 3: Contiene el nombre en clave (y el nombre del canal) de la versión que está utilizando, en este caso, trustyque es el nombre en clave de mi versión de Ubuntu (14.04 LTS). Puedes encontrar el tuyo lsb_release -sc. Por ejemplo, si está utilizando 12.04, el nombre en clave será "preciso". Ahora para declarar otros canales, por ejemplo, para declarar el canal de seguridad que necesita usar trusty-security.

  • Sección 4: Esta sección contiene "nombres de sección" del repositorio. Por lo general hay 4 nombres de las secciones utilizados: main, restricted, universe, multiverse. Puede poner todos los nombres de sección en la misma línea de declaración de un repositorio o puede usar líneas diferentes para cada una de las secciones, pero no debe haber ninguna entrada duplicada. Si lee el /etc/apt/sources.list, verá la descripción de los paquetes que contiene cada una de estas secciones.

heemayl
fuente