Manera fácil de crear un paquete Debian y un repositorio de paquetes locales

Manera fácil de crear un paquete Debian y un repositorio de paquetes locales

Este artículo describe una forma simple de crear un paquete de Debian casero e incluirlo en un repositorio de paquetes locales. Aunque podríamos usar un paquete de Debian/Ubuntu existente, comenzaremos desde cero creando y empaquetando nuestra propia aplicación trivial. Una vez que nuestro paquete esté listo, lo incluiremos en nuestro repositorio de paquetes locales. Este artículo ilustra un enfoque muy simplista, sin embargo, puede servir como una plantilla en muchos escenarios diferentes.

En este tutorial aprenderás:

  • Cómo crear un paquete de Debian trivial
  • Cómo crear un repositorio de Debian local
  • Cómo agregar el repositorio a la lista de fuentes de software


Requisitos y convenciones de software utilizados

Requisitos de software y convenciones de línea de comandos de Linux
Categoría Requisitos, convenciones o versión de software utilizada
Sistema Debian
Software El paquete de construcción esencial
Otro Un servidor web de Apache que funcione y permisos raíz
Convenciones # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
ps - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado

Creación de un ejecutable binario

Lo primero que debemos hacer es crear un programa simple C ++, compilarlo y probarlo. En caso de que desee escribir un programa C simple, visite nuestro tutorial integral para la programación C. Nuestro programa no hará nada más, solo imprima "LinuxConfig.org "en la pantalla. Aquí está el código:

#include int main () usando Namespace std; cout << "linuxconfig.org\n"; 
Copiar

Guarde el código anterior como LinuxConfig.CC. Para compilar el programa necesitamos el gramo++ compilador, que proporciona el paquete de construcción y esencial. Podemos instalarlo ejecutando:

$ sudo apt-get instalación de construcción esencial

Para compilar el código, usamos el siguiente comando Linux:

$ G ++ LinuxConfig.cc -o linuxconfig $ ./LinuxConfig LinuxConfig.organizar

Todo se ve bien. En este punto, deberíamos tener un ejecutable llamado "LinuxConfig" que imprime alguna cadena en la pantalla.



Creando un paquete Debian

Ahora que tenemos nuestro pequeño programa listo en forma de un binario ejecutable, podemos crear un paquete Debian. Para hacer eso usamos el DPKG-DEB herramienta. En primer lugar, necesitamos crear la estructura del paquete Debian. Los únicos archivos necesarios para construir un paquete Debian son:

  • Debian/Control
  • archivos personalizados para ser parte del paquete (no es necesario)

Primero cree un directorio llamado LinuxConfig. Este directorio contendrá todos los archivos de paquete necesarios:

$ mkdir linuxconfig

A continuación, cree el directorio de Debian y el archivo de control:

$ Mkdir Linuxconfig/Debian $ vi Linuxconfig/Debian/Control

Dentro del archivo de control, ingresamos la siguiente información:

Paquete: LinuxConfig Versión: 1.0 Sección: Prioridad personalizada: Arquitectura opcional: Todo esencial: No hay tamaño instalado: 1024 Mantenedor: LinuxConfig.Org Descripción: Imprimir LinuxConfig.org en la pantalla

Genial, lo único que falta es nuestro programa LinuxConfig. Dentro de LinuxConfig Directorio, creamos un árbol de directorio que representa la ruta donde nuestro programa se instalará en el sistema y copiamos el
ejecutable en él:

$ mkdir -p linuxconfig/usr/bin/$ cp/path/to/linuxconfig linuxconfig/usr/bin/

En este punto estamos listos para crear el paquete:

$ DPKG-DEB--Build LinuxConfig DPKG-DEB: Building Package 'LinuxConfig' en 'LinuxConfig.debutante'. $ LS LinuxConfig LinuxConfig.debutante

Es posible que desee cambiar el nombre del paquete para que incluya la versión del programa y la arquitectura del paquete. Por ejemplo:

$ MV LinuxConfig.Deb LinuxConfig-1.0_amd64.debutante

Todo listo ! Nuestro paquete está listo ! (Nota: Esto es solo un ejemplo, la creación de paquetes oficiales requiere más trabajo).

Configuración de un repositorio de paquetes locales

Para crear un repositorio de paquetes local necesitamos un funcionamiento. En este caso asumiremos el uso de apache con configuración predeterminada. Para instalar Apache Webserver, todo lo que necesitamos hacer es ejecutar:

$ sudo apt-get install apache2


Una vez instalado, para verificar que el servidor web funcione, podemos navegar a la dirección IP de la máquina (o a 'http: // localhost', si ejecutamos un navegador en la máquina en sí) que, en nuestro caso, es http: // 10.1.1.4. Deberíamos ver el
famoso Funciona! mensaje.

El software del servidor web se está ejecutando, pero no se ha agregado contenido, todavía. El Raiz del documento del apache predeterminado Anfitrión virtual, es /var/www/html: Aquí es donde crearemos nuestro repositorio.

Creemos el directorio "Debian" en el interior /var/www/html y copiar el linuxconfig-1.0_amd64.Paquete Deb dentro de él:

$ sudo mkdir/var/www/html/Debian $ sudo cp/path/to/linuxconfig-1.0_amd64.Deb/var/www/html/Debian/

El siguiente paso consiste en la generación de una lista de paquetes. Nos movemos hacia el debian directorio y use el dpkg-scanpackages utilidad para realizar la tarea. Es posible que deba instalar el dpkg-dev paquete en caso de que el dpkg-scanpackages Falta el comando:

$ dpkg-scanpackages . | paquetes GZIP -C9>.GZ DPKG-SCANPACKAGES: Información: Escribir 1 entradas para el archivo de paquetes de salida.

Nuestro repositorio local ahora está listo.

Agregar el repositorio a las fuentes de software

En este punto para poder instalar nuestro paquete desde el repositorio local que creamos, necesitamos editar el /etc/apt/fuentes.lista Archivo, agregue la entrada en relación con él (cambie la dirección IP para reflejar la de su máquina) y
Sincronice los repositorios:

echo "Deb [confianza = sí] http: // 10.1.1.4/Debian ./"| Tee -a/etc/apt/fuentes.Lista> /dev /null 

Asegúrese de agregar lo anterior [confianza = sí] Para evitar el siguiente mensaje de error:

 Release 'no tiene un archivo de versión. N: La actualización de dicho repositorio no se puede hacer de forma segura y, por lo tanto, se deshabilita de forma predeterminada. 

Repositorios de sincronización:

$ sudo apt-get actualización ign: 1 http: // 10.1.1.4/Debian ./InRelease IGN: 2 http: // 10.1.1.4/Debian ./Release IGN: 3 http: // 10.1.1.4/Debian ./Paquetes ign: 3 http: // 10.1.1.4/Debian ./Paquetes ign: 3 http: // 10.1.1.4/Debian ./Los paquetes obtienen: 3 http: // 10.1.1.4/Debian ./ Paquetes [303 b]

Para instalar nuestro paquete, ahora podemos usar la herramienta Apt-Get:

$ sudo apt-get install linuxconfig Lectura de paquetes de lectura ... Dado de construir la información de estado de lectura de árbol de dependencia ... HECHO Los siguientes paquetes nuevos se instalarán: LinuxConfig 0 actualizado, 1 recién instalado, 0 para eliminar y 8 no actualizados. Necesito obtener 3174 b de archivos. Después de esta operación, se utilizarán 1.049 kb de espacio en disco adicional. ADVERTENCIA: Los siguientes paquetes no se pueden autenticar! LinuxConfig Instale estos paquetes sin verificación [S/N]? Y

Ejecutar:

$ LinuxConfig LinuxConfig.organizar

Para eliminar el paquete del sistema, simplemente ejecute:

$ sudo apt-get elimina listas de paquetes de lectura de LinuxConfig ... Dado de construir la información de estado de lectura de árbol de dependencia ... Hacer los siguientes paquetes se eliminarán: LinuxConfig 0 actualizado, 0 recién instalado, 1 para eliminar y 3 no actualizados. Después de esta operación, se liberará el espacio en disco de 1049 kb. Quieres continuar? [Y/n] y

Tutoriales de Linux relacionados:

  • Una introducción a la automatización, herramientas y técnicas de Linux
  • Cosas para instalar en Ubuntu 20.04
  • Mastering Bash Script Loops
  • Mint 20: Mejor que Ubuntu y Microsoft Windows?
  • Cómo trabajar con la API REST de WooCommerce con Python
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Cómo crear archivos temporales usando mktemp en Linux
  • Cómo reconstruir un paquete utilizando el sistema de compilación Arch Linux
  • Cómo crear una aplicación Flatpak desde cero
  • Cómo trabajar con grupos de paquetes DNF