Mostrando entradas con la etiqueta paquete deb. Mostrar todas las entradas
Mostrando entradas con la etiqueta paquete deb. Mostrar todas las entradas

martes, 3 de octubre de 2017

Crear paquete deb con Checkinstall

  1. Instalar los requisitos mínimos para utilizar checkinstall
    sudo aptitude install build-essential checkinstall
  2. Descargar archivo TAR.GZ con el código fuente de la aplicación.
  3. Descomprimir el archivo TAR.GZ
    tar -xzvf paquete-versión.tar.gz
  4. Entrar en la carpeta descomprimida
    cd paquete-versión
  5. Configurar
    ./configure
  6. Instalamos las dependencias de compilación utilizando el comando:
    sudo aptitude install dependencia1 dependencia2 #etc 
  7. Compilar
    make
  8. Crear e instalar paquete
    sudo checkinstall -D --nodoc -y

domingo, 22 de mayo de 2016

Compilar un paquete DEB a partir del código fuente

Me encontré en la situación de no tener un paquete DEB adecuado para instalar en el sistema, ya que no había portado a la versión estable todavía, pero sí tener acceso a las fuentes del paquete.

Lo primero es instalar  los paquetes básicos para la compilación de paquetes DEB
sudo aptitude install build-essential devscripts fakeroot
Luego buscamos el paquete deseado en la página de búsqueda de paquetes de Debian, y descargamos los archivos fuentes, los cuales suelen ser de la forma:
  • paquete_versión.dsc : Archivo de Control de Fuente Debian (Debian Source Control)
  • paquete_versión.orig.tar.gz : Código fuente original
  • paquete_versión.debian.tar.xz : Modificaciones realizadas para empaquetar la aplicación
Colocamos estos tres archivos en un directorio de trabajo propio, y descomprimimos el archivo tar.xz con el comando:
tar xf paquete_versión.debian.tar.xz
Creamos un directorio nuevo y movemos la carpeta debian recién descomprimida, allí. Esto, porque compilar el paquete se hace desde el directorio que contenga la carpeta debian, y el archivo paquete_versión.orig.tar.gz se busca en el directorio superior (..)
mkdir deb-src
mv debian deb-src/
Para instalar las dependencias de compilación del paquete, la opción sencilla es ejecutar el comando
sudo aptitude build-depends paquete
Pero esto sólo nos funcionará si el paquete ya se encuentra en los repositorios. De lo contrario, aptitude reportará que no conoce dicho paquete. En estos casos, debemos examinar el archivo paquete_versión.dsc o el archivo control que se encuentra dentro del directorio debian e instalar los paquetes indicados en la sección Build-Depends, utilizando el comando:
sudo aptitude install dependencia1 dependencia2 #etc 
La opción más recomendada para compilar el paquete es entrar en deb-src, y ejecutar debuild
cd deb-src
debuild
Sin embargo, esto produjo el siguiente error
dpkg-source: error: aborting due to unexpected upstream changes
Este artículo tiene más información sobre este error. Y una forma distinta de evitarlo.

Finalmente, logré compilar el paquete, sin tanta complicación, utilizando el siguiente comando
dpkg-buildpackage -b -uc
Con lo cual, obtuve el paquete paquete_versión.deb

Para instalarlo este paquete, ejecutamos:
cd ..
sudo dpkg -i paquete_versión.deb
En caso de que APT nos indique que hubo un error de dependencias con la instalación, procedemos a ejecutar
sudo apt-get install -f
Lo cual debería calcular cuáles dependencias es necesario instalar, intalarlas y culminar la instalación de nuestro paquete.

La estructura de los directorios es de la siguiente forma:
  • Directorio de trabajo/
    • paquete_versión.dsc
    • paquete_versión.orig.tar.gz
    • paquete_versión.debian.tar.xz
    • paquete_versión.deb
    • deb-src/
      • debian/

Instalar un paquete DEB no disponible en el repositorio de Bananian

Conseguí una aplicación que quería instalar en mi Banana Pi, pero sólo se encontraba en la rama de pruebas (testing), todavía no había pasado a estable.

Lo primero que hice fue intentar descargar el paquete DEB desde la página de búsqeda de paquetes de Debian, aunque estas instrucciones aplican a cualquier paquete DEB que se desee instalar.

Para instalar el paquete, ejecutamos el comando:
sudo dpkg -i archivo.deb
Lo cual arrojó un error de APT indicando que no se pudo terminar de configurar la aplicación ya que faltaban dependencias. Este mensaje de error es previsible ya que al instalar el paquete de esta forma, APT no descarga las dependencias necesarias automáticamente.

Para decargar estas dependencias, ejecuté el comando de APT que hace las instalaciones y desinstalaciones necesarias para resolver los conflictos de dependencias en el sistema de gestión de paquetes.
sudo apt-get install -f
Al ejecutar este comando, lo más común es que APT calcule las dependencias necesarias, y solicite una confirmación antes de instalar dichas dependencias y culminar la configuración de la aplicación que instalamos desde el archivo DEB. Sin embargo, en esta ocasión, sí me arrojó un error inesperado, pidiendo que confirmase deshacer  dicha instalación.

Entonces fui instalando una por una las dependencias faltantes utilizando el comando de costumbre
sudo aptitude install dependencia
Hasta que conseguí el problema: el paquete requería una versión más reciente de una de las dependencias que la disponible en el repositorio.

Dado que la aplicación que quería instalar no forma parte del núcleo de la distribución, ni tiene otras aplicaciones que dependan de ella, ni tampoco es particularmente vanguardista, decidí intentar compilar el paquete DEB a partir del código fuente.