Introducción a los repositorios de Debian

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).

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.

Orden de ingreso

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).

Sintaxis

Cada linea que describe un repositorio tiene una bien determinada sintaxis:

deb url distribution [component...]

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

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).

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:

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.

cdrom permite acceder a un repositorio presente en un cdrom.

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:[email protected]:port).

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.

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.

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

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

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

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

Nota:para tener paquetes mas actualizados en stable se pueden usar los backports.
1.-visitar http://backports.debian.org/
-ver el anuncio Backports integrated in the main http://www.debian.org/News/2013/20130320

2.-agregar al sources.list :

deb http://ftp.debian.org/debian/ wheezy-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 wheezy-backports main

3.-Ejecutar

#aptitude update

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

# aptitude -t squeeze-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)

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://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

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.

Subdivision 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 --> Squeeze
Stable --> Wheezy
Testing --> Jessie

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 Jessie, oldstable apuntará a Wheezy, stable será Jessie 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/

Artículos relacionados