Configurar tu repositorio de GNU/Linux Debian

Configurar tu repositorio de GNU/Linux Debian de forma manual es sumamente sencillo. En algunas ocasiones, nuestra distribución Debian se instalará con los paquetes base y no tendremos configurados los repositorios oficiales, por lo que no podremos instalar paquetes ni programas nuevos con apt-get o aptitude o con nuestro gestor gráfico de paquetes.

Les enseñaré a configurar los repositorios oficiales de forma manual para poder instalar los paquetes que necesitemos de forma fácil y rápida.

¿QUÉ ES UN UNA RÉPLICA?

Debian se distribuye mediante réplicas=copias a través de cientos de servidores en Internet. Usar un servidor cercano a nuestro lugar de trabajo ayuda a acelerar la descarga a la vez que se reduce la carga en los servidores centrales así como en la propia Internet en general.

Las réplicas/copias de Debian pueden ser de tipo primarias o secundarias, según las siguientes definiciones:

  • Una réplica primaria posee un ancho de banda considerable, está disponible 24 horas al día y tiene un nombre fácil de recordar, del tipo ftp..debian.org.
    Las réplicas primarias se actualizan automáticamente cada vez que hay cambios en el repositorio de Debian.
  • Una réplica secundaria puede restringir qué es lo que replica (por posibles problemas de espacio). Aunque una réplica sea secundario eso no significa necesariamente que tenga que ser más lenta o estar menos actualizada que una primaria.

Para una descarga lo más rápida posible, debemos usar el servidor de réplicas más cercano a nosotros, ya sea una réplica primaria o secundaria.

1.- REQUERIMIENTOS

Los únicos requerimientos para seguir este tutorial son los siguientes:

  • PC con GNU/Linux Debian instalado
  • Conexión a Internet

2.- SINTAXIS DEL FICHERO SOURCES LIST

Una duda que a veces surge a la hora de configurar los repositorios es saber que significan las palabras maincontrib y non-free. Debian clasifica sus paquetes dependiendo del grado de libertad y que tan compatible son con la licencia GPL y sus directiva Debian. Cada paquete, por tanto, irá entro de una rama u otra.

  • main

    En este directorio se encuentran los paquetes 100% libres, esto quiere decir que cumplen o están de acuerdo con las directivas de Debian, en donde marcan cuando un paquete se le puede considerar que es 100% software libre.
  • non-free

    Aquí se encuentran paquetes que no pueden considerarse software libre según las directivas de Debian, por dar un ejemplo, hay software que puede ser distribuido e instalado, pero no se tiene acceso a su código fuente (No todos de esta sección son así hay software que si se proporciona su código fuente), simplemente por la licencia que trae el software de este paquete no cuadra con las directivas de Debian, debido a eso se decide almacenarlos en esta sección.
  • contrib

    En este directorio se pueden encontrar software libre, pero depende de alguna forma de otro paquete que no es 100% libre.

En el nombre de la distribución, podemos usar tanto el «nombre/alias» como la «clase». Así por ejemplo, se corresponden actualmente el nombre (wheezyjessiestretchsid) con la clase (oldstablestabletestingunstable) respectivamente. SID es siempre SID (Still in Development). Aunque podemos usar cualquiera de sus dos formas, hay una pequeña diferencia entre ellas.

Por ejemplo, si estamos usando un sistema con Debian 8.6 de nombre «jessie» y no queremos que se nos actualice cuando Debian publique nuevas versiones, debemos usar «jessie» en lugar de «stable». Si usamos «stable», el día que jessie pase a «oldstable» nuestro sistema se actualizará a «strech» que pasará de testing a stable.

Una vez entendido la anterior explicación, será necesario editar el fichero de repositorios /etc/apt/sources.list y añadirle/modificar las líneas correspondientes para nuestra distribución siguiendo la siguiente sintaxis:

deb http://site.example.com/debian distribción componente1 componente2 componente3
deb-src http://site.example.com/debian distribución componente1 componente2 componente3

Por ejemplo, para configurar nuestro equipo con «Debian Jessie» y el Mirror de FTP España de Debian, la sintaxis es la siguiente:

deb ftp://ftp.es.debian.org/debian jessie main contrib non-free
deb-src ftp://ftp.es.debian.orgdebian jessie main contrib non-free #código fuente

3.- LISTADO DE REPOSITORIOS

El listado de los repositorios que podemos usar están publicados en la Web Oficial de Debian aquí https://www.debian.org/mirror/list

4.- ACTUALIZANDO LA INFORMACIÓN DISPONIBLE EN EL/LOS REPOSITORIOS

El siguiente paso será actualizar los paquetes disponibles con el comando «apt update». Si todo ha ido bien, veremos la salida del comando muy similar a la siguiente:

# apt update
Obj http://security.debian.org jessie/updates InRelease
Ign http://ftp.debian.org jessie InRelease
Obj http://ftp.debian.org jessie Release.gpg          
Obj http://ftp.debian.org jessie Release              
Obj http://security.debian.org jessie/updates/main Sources
Obj http://ftp.debian.org jessie/main Sources           
Obj http://security.debian.org jessie/updates/main amd64 Packages
Obj http://security.debian.org jessie/updates/main Translation-en     
Obj http://ftp.debian.org jessie/contrib Sources                      
Obj http://ftp.debian.org jessie/non-free Sources
Obj http://ftp.debian.org jessie/main amd64 Packages
Obj http://ftp.debian.org jessie/contrib amd64 Packages
Obj http://ftp.debian.org jessie/non-free amd64 Packages
Obj http://ftp.debian.org jessie/contrib Translation-en
Obj http://ftp.debian.org jessie/main Translation-es
Obj http://ftp.debian.org jessie/main Translation-en
Obj http://ftp.debian.org jessie/non-free Translation-en
Leyendo lista de paquetes... Hecho

Tras comprobar que accedemos correctamente a los repositorios configurados manualmente, podemos ya instalar paquetes de forma individual, actualizar el sistema o subir de versión. EN el siguiente ejemplo se ve un upgrade de los paquetes de Debian Jessie:

# apt upgrade
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias       
Leyendo la información de estado... Hecho
Calculando la actualización... Los paquetes indicados a continuación se instalaron de forma automática y ya no son necesarios.
  libgssapi3-heimdal libheimntlm0-heimdal libkdc2-heimdal
Utilice «apt-get autoremove» para eliminarlos.
Listo
Los siguientes paquetes se han retenido:
  iceweasel openjdk-7-jre openjdk-7-jre-headless
Se actualizarán los siguientes paquetes:
  apache2-utils apt apt-utils base-files bind9 bind9-host bind9utils bogofilter bogofilter-bdb bogofilter-common ca-certificates cpio cron dbconfig-common dbus dmsetup dnsutils dpkg e2fslibs e2fsprogs evince evince-common exim4
  exim4-base exim4-config exim4-daemon-light file fontconfig fontconfig-config fonts-opensymbol fuse ghostscript gimp gimp-data gir1.2-evince-3.0 gir1.2-gdkpixbuf-2.0 gir1.2-javascriptcoregtk-3.0 gir1.2-polkit-1.0 gir1.2-webkit-3.0
  gnome-maps gnome-orca gnome-shell-extension-weather gnome-sudoku gnupg gnupg-agent gnupg2 gpgv grub-common grub-pc grub-pc-bin grub2-common gstreamer0.10-gconf gstreamer0.10-plugins-bad gstreamer0.10-plugins-good
  gstreamer0.10-pulseaudio gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gstreamer1.0-pulseaudio gtk2-engines-pixbuf host imagemagick imagemagick-6.q16 imagemagick-common initramfs-tools isc-dhcp-client isc-dhcp-common
  isc-dhcp-server krb5-locales ldap-utils libapache2-mod-php5 libapt-inst1.5 libapt-pkg4.12 libarchive13 libavcodec56 libavformat56 libavresample2 libavutil54 libbind9-90 libc-bin libc6 libcairo-gobject2 libcairo2 libcomerr2
  libcupsfilters1 libcurl3-gnutls libdbd-mysql-perl libdbus-1-3 libdevmapper1.02.1 libdns-export100 libdns100 libevdocument3-4 libevview3-3 libexpat1 libfontconfig1 libfreetype6 libfuse2 libgail-common libgail18 libgbm1 libgcrypt20
  libgd3 libgdk-pixbuf2.0-0 libgdk-pixbuf2.0-common libgif4 libgimp2.0 libgl1-mesa-dri libglib2.0-0 libglib2.0-bin libgme0 libgnutls-deb0-28 libgnutls-openssl27 libgraphite2-3 libgs9 libgs9-common libgssapi-krb5-2
  libgstreamer-plugins-bad0.10-0 libgstreamer-plugins-bad1.0-0 libgtk2.0-0 libgtk2.0-bin libgtk2.0-common libgudev-1.0-0 libhogweed2 libicu52 libidn11 libimage-magick-perl libimage-magick-q16-perl libintl-perl libio-socket-ssl-perl
  libirs-export91 libisc-export95 libisc95 libisccc90 libisccfg-export90 libisccfg90 libjansson4 libjasper1 libjavascriptcoregtk-3.0-0 libk5crypto3 libkrb5-3 libkrb5support0 libksba8 libldap-2.4-2 libldb1 libltdl7 liblwres90 libmagic1
  libmagick++-6.q16-5 libmagickcore-6.q16-2 libmagickcore-6.q16-2-extra libmagickwand-6.q16-2 libminiupnpc10 libmysqlclient18 libndp0 libnet-ssleay-perl libnettle4 libnspr4 libnss3 libpam-cracklib libpam-modules libpam-modules-bin
  libpam-runtime libpam-systemd libpam0g libpcre3 libperl5.20 libpng12-0 libpolkit-agent-1-0 libpolkit-backend-1-0 libpolkit-gobject-1-0 libpoppler-glib8 libpoppler46 libpurple-bin libpurple0 libpython2.7 libpython2.7-minimal
  libpython2.7-stdlib libreoffice-avmedia-backend-gstreamer libreoffice-base libreoffice-base-core libreoffice-base-drivers libreoffice-calc libreoffice-common libreoffice-core libreoffice-draw libreoffice-evolution libreoffice-gnome
  libreoffice-gtk libreoffice-impress libreoffice-java-common libreoffice-math libreoffice-sdbc-firebird libreoffice-sdbc-hsqldb libreoffice-style-galaxy libreoffice-style-tango libreoffice-writer librsvg2-2 librsvg2-common libsane
  libsane-common libservlet2.5-java libsmbclient libsndfile1 libsqlite3-0 libsrtp0 libss2 libssh2-1 libssl1.0.0 libswscale3 libsystemd0 libtalloc2 libtasn1-6 libtdb1 libtevent0 libtiff5 libudev1 libvdpau1 libwbclient0
  libwebkitgtk-3.0-0 libwebkitgtk-3.0-common libxapian22 libxatracker2 libxml2 libxslt1.1 linux-image-3.16.0-4-amd64 locales login multiarch-support mysql-client mysql-client-5.5 mysql-common mysql-server mysql-server-5.5
  mysql-server-core-5.5 ndiff nmap nscd nslcd nslcd-utils openssh-client openssh-server openssh-sftp-server openssl p7zip-full passwd perl perl-base perl-modules perlmagick php5 php5-cli php5-common php5-gd php5-mcrypt php5-mysql
  php5-readline php5-snmp pidgin-data policykit-1 python-apt python-apt-common python-ldb python-libxml2 python-pil python-pygments python-samba python-talloc python-tdb python2.7 python2.7-minimal python3-uno rsyslog samba
  samba-common samba-common-bin samba-dsdb-modules samba-libs samba-vfs-modules sane-utils smbclient ssh systemd systemd-sysv tar task-desktop tasksel tasksel-data tdb-tools tzdata tzdata-java udev uno-libs3 unzip ure vim-common
  vim-tiny vsftpd wget winbind wpasupplicant xserver-xorg-video-modesetting
300 actualizados, 0 nuevos se instalarán, 0 para eliminar y 3 no actualizados.
Se necesita descargar 316 MB de archivos.
Se utilizarán 7.606 kB de espacio de disco adicional después de esta operación.
¿Desea continuar? [S/n]

Funcional el chido

deb http://ftp.fr.debian.org/debian/ bullseye main
deb-src http://ftp.fr.debian.org/debian/ bullseye main
deb http://security.debian.org/debian-security bullseye-security main contrib
deb-src http://security.debian.org/debian-security bullseye-security main contrib
deb http://ftp.fr.debian.org/debian/ bullseye-updates main contrib
deb-src http://ftp.fr.debian.org/debian/ bullseye-updates main contrib