Introducción a los repositorios de Debian

Solapas principales

Indice

1. Introducción:

El repositorio es a todos los efectos un archivo ordenado donde son almacenados los paquetes Debian (sean estos paquetes binarios o fuentes) en modo bien organizado, con una estructura bien definida y constantemente actualizados.

Los paquetes contenidos en un repositorio son indexados en estos archivos:

  
Packages.gz (son paquetes que contienen los binarios).
Sources.gz (son aquellos que contienen los fuente).

2. El archivo sources.list:

En cada sistema Debian, los repositorios utilizados vienen indicados en el archivo /etc/apt/sources.list, en este fichero cada línea representa a un repositorio y la forma en la que se obtendrán los paquetes, así como la rama de debian que se desea utilizar (stable, testing, unstable). Cada línea que comience con un # será ignorada, así como las líneas vacías.

Es importante ingresar los repositorios en un orden justo, los primeros en la lista, son los mas importantes (o favoritos).

Para mejorar el rendimiento, es aconsejable ordenarlos por velocidad (primero el CDROM, después la red local, internet etc).

3. Sintaxis:

Cada línea que describe un repositorio tiene una bien determinada sintaxis:

deb url distribution [component...]

Analizamos los componentes por separado, así lo entendemos mejor:

3.1 Parte 1 deb o deb-src

deb o deb-src sirve para indicar si el repositorio indicado contiene paquetes binarios o paquetes fuente (si tiene ambos es necesario especificarlo en dos lineas diferentes).

3.2 Parte 2 url

url indica la dirección donde es posible encontrar el repositorio, y además podemos elegir entre los siguientes métodos de acceso a los paquetes:

a). file permite acceder a un repositorio presente en el disco de nuestro pc. Ejemplo:

  deb file:/home/gaucho/repos ./

Que no es ni mas ni menos que uno situado en la /home del usuario gaucho creado con dpkg-scanpackages.

b). cdrom permite acceder a un repositorio presente en un cdrom.

c). http permite acceder tramite el protocolo http (si es especificada una variable de ambiente http_proxy con el formato ,seran usadas estas opciones para acceder al repositorio, en caso de necesitar identificación, sera posible indicar la dirección del proxy, en la variable de ambiente de la siguiente forma; http://user:pass@server:port).

d). https igual que el anterior pero bajo el protocolo seguro de transferencia de hipertexto (Hypertext Transfer Protocol Secure). Requiere tener previamente instalado el paquete apt-transport-https luego edite su sources.list para incluir solo URLs https: //.

e). tor Proporciona soporte en APT para descargar paquetes de forma anónima a través de la red Tor.APT ya incluye mecanismos para garantizar la autenticidad de los paquetes que descargue. Sin embargo, un adversario que olfatea su tráfico de red todavía puede ver qué software está instalando. Requiere tener previamente instalado el paquete apt-transport-tor luego edite su sources.list para incluir solo URLs tor: //.

f). ftp permite acceder a un repositorio tramite el protocolo ftp, también es posible especificar un proxy,de la misma forma que en http sustituyendo http_proxy por ftp_proxy.

  * A partir del 1 de Noviembre de 2017 Debian retira los repositorios ftp://ftp.debian.org y ftp://security.debian.org para el público, manteniendo los repositorios ftp://ftp.upload.debian.org y ftp://security-master.debian.org para desarrolladores.

g). copy es identico a file, pero los archivos serán guardados en la cache de apt y/o aptitude, útil para soportes como memorias-flash, floppy, etc.

h). rsh,ssh permite acceder a un repositorio tramite el protocolo ssh , la identificacion sera tramite el intercambio de llaves RSA.

3.3 Parte 3 mirror

Espejo o replica Debian se distribuye en todo el mundo mediante el uso de servidores réplica con el propósito de proporcionar un mejor acceso y reducir la carga de nuestros servidores. Las réplicas de Debian están mantenidas por voluntarios, así que si usted tiene la posibilidad de donar espacio de disco y conectividad puede crear una réplica y así contribuir a hacer a Debian más accesible.

  • Lista de replicas del repositorio Debian https://www.debian.org/mirror/list

    Cuando se desconoce cual sería la replica mas conveniente, se aconseja usar httpredir el servicio de redirección de réplica en el archivo sources.list de apt. Redirige dinámicamente las peticiones de descarga de paquetes a la mejor réplica disponible, basándose en un número de factores como la disponibilidad de las réplicas, localización, arquitectura y frescura. Use esta dirección en su sources.list para usar el redirector de réplica:

    ... http://httpredir.debian.org/debian ...
  • Lista de replicas del repositorio debian-archive para las versiones antiguas de Debian https://www.debian.org/distrib/archive
    ...   http://archive.debian.org/debian/ ...

3.4 Parte 4 distribución

distribution indica la distribución (o rama) utilizada... es posible usar el nombre en código (Stretch, Buster, sid) o el nombre genérico (stable, testing, unstable)

En el caso de usar una version de debian que a la fecha ya se encuentra en el repositorio debian-archive hay que poner el nombre en código de dicha version por ejemplo:

deb http://archive.debian.org/debian/ stretch contrib main non-free

3.5 Parte 5 component

component indica las secciones del repositorio, non-free , main , contrib....

A continuación veremos una lista de repositorios oficiales para agregar a nuestro sources.list

4. Ramas de desarrollo:

Vieja Estable

  ## Debian - vieja estable
deb http://ftp.br.debian.org/debian/ oldstable main contrib non-free
deb-src http://ftp.br.debian.org/debian/ oldstable main contrib non-free
##Actualizaciones de seguridad
deb http://security.debian.org/ oldstable main contrib non-free
deb-src http://security.debian.org/ oldstable main contrib non-free

Estable

  ## Debian - stable
deb http://ftp.us.debian.org/debian/ stable main contrib non-free
deb-src http://ftp.us.debian.org/debian/ stable main contrib non-free
## Actualizaciones de seguridad
deb http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free

Para tener paquetes mas actualizados en stable se pueden usar los backports.

-visitar http://backports.debian.org/

-ver el anuncio Backports integrated in the main http://www.debian.org/News/2013/20130320

Debemos añadirlo a sources.list

  deb http://ftp.debian.org/debian/ stretch-backports main contrib non-free

Nota, o como dice en la pagina de backports, poner tu espejo de descarga: deb http://YOURMIRROR.debian.org/debian stretch-backports main

Y actualizamos los repositorios:

  #aptitude update

Todos los backport están deshabilitados por defecto, así que para instalarlos:

  # aptitude -t stretch-backports install “nombre-paquete”

Testing

  ## Debian Testing
deb http://ftp.de.debian.org/debian/ testing main contrib non-free
deb-src http://ftp.de.debian.org/debian/ testing main contrib non-free
## Actualizaciones de seguridad
deb http://security.debian.org/ testing/updates main contrib non-free
deb-src http://security.debian.org/ testing/updates main contrib non-free

Unstable (Sid)

  ## Debian Unstable (sid)
deb http://ftp.it.debian.org/debian/ unstable main contrib non-free
deb-src http://ftp.it.debian.org/debian/ unstable main contrib non-free

Para la rama inestable no hay repositorios de seguridad dado que eventuales fallos vienen corregidos simplemente con la actualización del paquete afectado. Como han notado he utilizado diferentes mirrors en los ejemplos anteriores, ¿por que? Porque la lista completa de los mirrors de Debian esta aquí:

http://www.debian.org/mirror/list

Y deberemos de ser capaces de individuar aquellos que mejor se adaptan a nuestras exigencias y velocidad (para deberes:averiguar como determinamos la velocidad de los mirrors)

5. Repositorios no oficiales:

También tenemos a disposición una gran lista de repositorios no oficiales:

http://www.apt-get.org/main/

Entre los cuales destacan los multimedia:

http://www.esdebian.org/foro/24349/nuevo-mirror-debian-multimedia

  
## Multimedia estable (actual)
deb http://www.deb-multimedia.org stable main non-free
#Multimedia testing
deb http://www.deb-multimedia.org testing main non-free
## Multimedia Sid
deb http://www.deb-multimedia.org sid main non-free

Nota: Tras agregar el repositorio multimedia a nuestro sources.list, debemos añadir la llave pública

6. Estructura de los repositorios:

Un repositorio se puede dividir a grandes rasgos en dos secciones. Por ejemplo, si navegáramos con nuestro navegador preferido a por ejemplo:

http://ftp.de.debian.org/debian/

Encontraríamos un directorio con los siguientes subdirectorios;

dist en esta rama están contenidos los archivos de control, que permiten el funcionamiento del sistema de empaquetamiento. Lógicamente están presentes los archivos que describen los paquetes presentes en el archivo (divididos por la release o rama a la que pertenecen).

doc recoge la documentación de base para Debian (señalizaciones de bugs, Faq, el contrato social y demás)

indices contiene los índices de los archivos contenidos en todos los paquetes. Esta información es usada por apt-file. apt-file es un potente motor de búsqueda en grado de indicarnos a que paquete pertenece un determinado archivo., para saber mas man apt-file.

non-US OBSOLETOS - a causa de problemas legales debidos a la prohibición de exportación de material para la defensa (entre ellos material criptográfico, utilizados en PGP, SSH etc). Para solucionar este problema,los paquetes han sido puestos en una sección diferente, cuya distribución esta ligada a servers no estadounidenses.

pool este es el verdadero archivo, donde son contenidos los paquetes, ordenados por la letra inicial.

project contiene material para los desarrolladores.

tools contiene instrumentos Dos para la creación de discos de boot, particionamiento y arranque de Linux.

7. Subdivisión del repositorio:

Navegando un poco (sin marearse !!!) entre los directorios Debian, notamos una particular subdivisión, los repositorios, por cierto, están divididos en :

main es la sección principal, que contiene el 90% de los paquetes presentes en nuestra Debian.

contrib encontramos los paquetes que cumplen con 5 o 6 puntos de las DFSG(Debian Free Software Guidelines), pero que dependen de paquetes que no la respetan. (DFSG = lineamientos o requisitos que una licencia debe cumplir para que sea definida como libre según el proyecto Debian http://www.debian.org/social_contract#guidelines).

non-free contiene los paquetes que poseen limitaciones en su distribución (como por ejemplo aquellos que no pueden ser usados en ámbito comercial o porque dependen de paquetes que no respetan las DFSG).

Aclarando:

Cuando un repositorio apunta a una de las ramas (oldstable, stable, testing), apuntan a las versiones de turno, que en este momento son:

Oldstable --> jessie

Stable --> stretch

Testing --> buster

    Cada vez que se libera una nueva versión de Debian, se actualizan los enlaces para que apunten a los nuevos nombres-clave, por ejemplo, cuando se libere buster, oldstable apuntará a stretch, stable será buster y testing será el nombre de Toy-Story que siga.

    En caso de tener los repositorios apuntando a stable, cada vez que se libere una versión de Debian se podrá inmediatamente actualizar los paquetes a la nueva versión, sin hacer cambios en el sources.list, ídem en el caso de apuntar a oldstable o testing.

    http://www.debian.org/releases/

    Fuentes:

    https://web.archive.org/web/20150317213748/
    http://www.esdebian.org/wiki/introduccion-repositorios-debian
    https://wiki.debian.org/SourcesList
    http://httpredir.debian.org/
    https://www.debian.org/mirror/index.es.html