Subversion es un sistema de control de versiones concurrente. Su objetivo es muy similar al de CVS aunque tiene grandes ventajas sobre éste, y por eso, cada día muchos proyectos de desarrollo de software cambian a subversion.
Esta receta explica la instalación y configuración inicial de NINO (NINO is not Openview) en Debian GNU/Linux. Concretamente se ha realizado la instalación en Debian Sid con núcleo Linux 2.6.14.
NINO es una solución para la gestión de red vía interfaz web que emplea SNMP, WMI, y SNMP para monitorizar equipos y dispositivos de red.
Para más información visitar la página oficial de NINO.
A menudo resulta interesante crear un paquete debian de un programa, para su sencilla instalación/desinstalación. Esta receta, inicialmente escrita por Fernando Rincón, explica cómo hacer lo básico en pocos pasos.
Generación de la estructura de directorios
En primer lugar debe crearse un directorio de trabajo (debian), a partir del cual se generará la estructura de directorios del paquete, considerando que el directorio de trabajo es el directorio raíz. A continuación se distribuirán los archivos que forman parte del paquete en los subdirectorios correspondientes.
Si se desea instalar el fichero mi_ejecutable en la ubicación /usr/bin/mi_ejecutable, la estructura del directorio de trabajo debería ser la siguiente:
./debian/usr/bin/mi_ejecutable
Generación de los ficheros de control
Hay varios tipos de ficheros de control. El fichero control propiamente dicho indica las características y dependencias del paquete. Los ficheros preinst, postinst, prerm y postrm son los scripts que se ejecutan durante la instalación, la actualización y el borrado de un paquete, para la configuración/desconfiguración de los programas incluidos en el paquete (Ver sección 6 de [3]).
Los ficheros de control deben almacenarse en la siguiente ubicación:
debian/DEBIAN
El fichero Control
Para la generación del paquete es imprescindible la creación de un fichero de control (también llamado control), en el que se indicará el nombre del paquete, la versión, la sección a la que pertenece, la prioridad de instalación, etc ... La descripción exacta del contenido de cada campo puede encontrarse en la sección 3 de [3].
Por ejemplo:
Package: linuxstatus
Version: 1.1-1
Section: base
Priority: optional
Architecture: all
Depends: bash (>= 2.05a-11), textutils (>= 2.0-12), awk, procps (>= \
1:2.0.7-8), sed (>= 3.02-8), grep (>= 2.4.2-3), coreutils (>= 5.0-5)
Maintainer: Chr. Clemens Lee
Description: Linux system information
This script provides a broad overview of different
system aspects.
Configuración mediante debconf
Debconf proporciona una base de datos con un frontend que facilita el proceso de configuración de un paquete recién instalado o actualizado. Se basa en el uso de una serie de reglas que definen las preguntas a realizar al usuario, y el tipo de valores que
Construcción del paquete
Desde el directorio inmediatamente superior al directorio de trabajo debian debe ejecutarse:
Mirando en la biblioteca de mi padre me he llevado una sorpresa mayúscula al encontrarme un libro sobre las leyes de Murphy. En el prefacio, te explica que han hecho recopilación de todas las que han encontrado (y se ve claramente que han buscado en google). El libro consiste en una lista interminable de frases relacionadas con la ley de Murphy, pero, en la primera página pone eso de "El contenido de este libro no podrá ser reproducido, ni total ni parcialmente, sin el previo permiso del editor". ¿Significa ésto que no puedo utilizar las frases que vienen dentro, aunque éstas no sean del autor del libro?
¿Nunca habéis deseado probar un programa de una distribución más inestable sabiendo que podéis volver atrás? ¿Nunca habéis tenido que recurrir a una versión anterior de ningún paquete? Pues existía una manera más fácil, y aquí os explico cómo.
Asunciones
Asumiremos que tenemos instalada una "unstable", pero queremos tener acceso a algunos paquetes de "experimental" y... bueno, ya que nos ponemos, también de "stable" y "testing", pero con menor prioridad.
Configurar la "release" por defecto
Editáis el fichero (si no existe lo creáis) /etc/apt/apt.conf y añadís la línea:
APT::Default-Release "unstable";
Configurar las otras distros
APT ya sabe cuál es la distro que queremos tener instalada, pero hay que decirle que existe más mundo. Para ello se utiliza el fichero /etc/apt/preferences:
NOTA: No, aún no lo he probado.
Debo advertir que las prioridades son bastante curiosas y hay que tener cuidadín:
< 0: La versión no se instalará jamás.
0 - 100: El paquete no se reemplazará por una versión superior. Los paquetes instalados tienen prioridad 100.
101-500: La versión se instala si es más moderna que la existente y no existe ningún ejemplar en la versión objetivo.
501-1000: La versión se instala aunque no esté en la distro por defecto.
1000: La versión se instalará a toda costa, incluso si es inferior a la actual.
Típicamente se utilizan los valores -1, 100, 500, 900 y 1001.
Lo de bloquear Ubuntu no es por mala leche: a menudo suele dar problemas mezclar paquetes. Cada uno que haga lo que quiera.
Editar sources.list
Claro, nos falta editar el sources.list y añadir todos los repositorios que nos dé la gana. Ya sabemos que no se va a instalar nada "extraño" (siempre que no metáis repositorios "extraños").
Cómo usarlo
Muy fácil: Para los paquetes de la distribución por defecto, como siempre:
apt-get install lo-que-sea
Para el resto, también fácil (donde pongo "experimental" poner el nombre de la distro):
apt-get install -t experimental lo-que-sea
Todos ellos se "updatean" a la vez por el método habitual.
Otras referencias
Me disponía a escribir esta receta basándome en un ejemplo que tenía por algún lado. No he encontrado el ejemplo, pero sí un documento titulado Jugando con APT, que explica cómo hacer lo mismo para Ubuntu.
También están interesantes el Manual de APT y un documentillo que he encontrado titulado Using APT with more than 2 sources, este último en inglés, claro.
Hace tiempo, concretamente el pasado 12 de Enero de 2004, 3DRealms liberó el código fuente de uno de sus mejores juegos de todos los tiempos, Duke Nukem 3D. Desde aquel momento muchos programadores comenzaron a intentar adaptar el juego a los nuevos sistemas operativos.
No tardaron en llegar las primeras versiones para GNU/Linux, que con mas o menos dificultades consiguieron que se pudiese jugar.