Cómo crear deb con dpkg-buildpackage -rfakeroot (desde un programa compilado previamente desde código fuente)(ejemplo Inkscape 1.0)

Tal vez usted se pregunte ¿para qué hacer esto?, bueno es que ya no están actualizando mucho las versiones de programas de 32 bits (y hasta los están dejando de compilar) así que esta es la mejor manera de poder tener actualizada la aplicación para tener las últimas correcciones y mejoras y creando el deb uno puede instalar el programa en varios ordenadores e incluso compartirlo en Internet  

Nota: Este tutorial también sirve para 64 bits.
 
 

Añadir el nombre del Mantenedor o Responsable a su Sistema para que se compile con ese nombre (Opcional)

Esto es totalmente opcional

Para hacer esto ponga en una terminal lo siguiente (teniendo instalado Gedit):

gedit ~/.bashrc 

allí debe llegar hasta abajo y con enter hacerse un espacio::


 y allí debe de poner lo siguiente:

DEBEMAIL="your.email.address@example.org"
DEBFULLNAME="Firstname Lastname"
export DEBEMAIL DEBFULLNAME

y cambiar con sus datos, a mi me queda así:

 

ahora cierro Gedit y reinicio el ordenador. Con esto una vez que usted haya creado el deb al revisarlo en Synaptic se verá allí su nombre y su correo en la descripción (Pestaña: Comunes / Responsable o Mantenedor).
 

Paso 1.- Compilar con anterioridad el programa

Primero usted debe haber compilado antes su programa y asegurarse de que funciona correctamente. Para este ejemplo he compilado Inkscape desde código fuente en el siguiente tutorial:

Compilar Inkscape 1.0 desde código fuente en MX Linux 19, antiX 19 de 32 bit (basado en Debian 10 Buster)
https://facilitarelsoftwarelibre.blogspot.com/2020/05/compilar-inkscape-1-desde-codigo-fuente.html

ustedes lo pueden usar como ejemplo ese tutorial para instalar algún otro programa, aunque algunos programas puedan ser diferentes igual para que tengan una idea. También les cuento que después de compilarlo deben desinstalarlo para probar correctamente el deb generado (allí en el tutorial al final les explico).

Pienso que siempre que ustedes quieran usar "dpkg-buildpackage -rfakeroot" al programa deben de haberlo compilado antes pues es más fácil encontrar las dependencias faltantes.

Información sobre esta instalación:

- Laptop Dell Inspiron 1750
- MX Linux 19.3 de 32 bits



 

Construir desde código fuente

Paso 2.- Crear GPG Key (Opcional)

El siguiente paso si lo desea lo puede omitir. 

Poner en la terminal:

 

gpg --gen-key

 

aparecerá en la terminal:

 

Ponga sus datos, yo aquí pongo los míos:




 a continuación aparecerá una ventana donde hay que escrbir una contraseña, creela con letras mayusculas y minuscula, numeros y algún caracter dificil pero esta ventana congela las demás ventanas así que aconsejo en un cuaderno escribir la contraseña y luego escribirla en la ventana:

y aparecerá así:


Recuerde guarde sus datos porque se le pedirán luego.


Paso 3.- Preparando el entorno

Es necesario instalar los siguientes paquetes (esto es necesario hacer independientemente del programa en el que vaya a crear el deb):

sudo apt-get install build-essential autoconf automake \
autotools-dev dh-make debhelper devscripts fakeroot \
xutils lintian pbuilder


Paso 4.- Obtener y preparar el código fuente

Entrar en la siguiente dirección para descargar el código fuente de Inskcape:

https://inkscape.org/es/release/all/source/archive/xz/


Nota: Con el paso del tiempo aparecerán más versiones

 

Consejo.- No use el administrador de archivo Dolphin, pues más abajo hay un momento en que usted va a manipular el código fuente, y  el problema es que Dolphin crea un archivo de configuración llamado:

.directory

el cual está oculto (se puede ver con Alt + .), y luego si usted por curiosidad entra en el código fuente desde Dolphin éste creará el archivo y cuando usted vaya a compilar le va a aparecer un error diciendole lo siguiente:



Crear la carpeta build

Cree una carpeta en su HOME con el nombre build (con minuscula), así:


Éntre allí y ponga allí el código fuente. 

Pasos para compilar el código fuente sin modificarlo.- Los siguientes pasos son para compilar el código fuente sin modificarlo, digo esto pues el comando a usar es para eso, pero en caso de que usted quiera modificar algo del código fuente más abajo le indico como.

Ahora hay que descomprimirlo:



 

Nota: Dentro de la carpeta build usted va a poder poner más carpetas de otros programas y dentro de cada carpeta de programa una carpeta con un nombre de versión correspondiente

queda así:


ahora para ver mejor las cosas a thunar yo le voy a poner la vista "Detalles":

 

es para ver bien el nombre del archivo, ahora borre el código fuente pues esa carpeta tiene el nombre muy largo y para el momento de compilar desde el código fuente vamos a utilizar un nombre más corto:


ahora debo renombrar la carpeta y debe tener el nombre así:

nombre-version

y como vieron en la imagen de arriba la carpeta tiene un nombre muy grande pero al inicio dice así: "inkscape-1.0.1" por lo que lo renombraré:

 


 

 y lo dejaré así:


así queda:


ahora comprima esa capeta a .tar.gz así:

 
asegúrese que esté en tar.gz
 

y me queda así:


Ahora cree una carpeta con el nombre de su programa, con minúsculas, para este caso: inkscape


entre en al carpeta con el nombre de su programa, en el caso del mío inkscape y allí cree una carpeta con el número de la versión, en este caso para mi:

 

y así:


 

Bien, ahora dentro de esa carpeta hay que poner la carpeta del código fuente y el archivo .tar.gz que creamos del código fuente, is usted desea puede abrir una pestaña para desde allí buscar los archivos y hacer el procedimiento:

 


aquí les dejo una imagen de cómo me queda a mi:


Ahora debo entrar en la carpeta del código fuente:


y abrir una terminal allí:

 

y así quedo en la terminal:



 ahora allí debo yo de escribir lo siguiente:

dh_make -e wachin.id@gmail.com -f ../inkscape-1.0.1.tar.gz

ustedes deben de poner su correo y el nombre de su programa:

dh_make -e sucorreo@servidor.com -f ../suprograma-1.0.1.tar.gz

aquí les dejo una imagen de como me queda en mi caso:



y doy ENTER y me pregunta:


luego:


Allí hay un mensaje que dice:

Currently there is not top level Makefile. This may require additional tuning Done. Please edit the files in the debian/ subdirectory now

la traducción es:

Actualmente no hay Makefile en nivel superior. Esto puede requerir hacer un ajuste adicional. Edite ahora los archivos del subdirectorio debian/ 

Nota: Ese mensaje no quiere decir que está mal, avance nomás (cuidado vaya a pensar que es un mensaje de error y vaya a ya no querer seguir con el tutorial).

En nuestro directorio apareció un nuevo subdirectorio llamado "debian" que contiene los archivos necesarios para un ensamblaje posterior. Ahora debemos editar la información sobre nuestro paquete:

control


el archivo abierto está así:

este archivo es un poco complicado, no deben tocar lo siguiente:

Si quieren no lo editen aquí (se lo puede editar después de compilado).

Además en la misma carpeta "debian", encontrará un archivo "copyright" que necesita editar y poner allí el tipo de licencia.

Asegúrese de que el correo electrónico utilizado en el siguiente archivo sea correcto (debe ser el mismo que se utilizó para la generación de claves gpg):

changelog

Importante: Les cuento que la primera vez que edité el archivo control lo edité mal y ya no me quería compilar el programa, así que lo dejé así nomás y lo edité después de compilarlo.

Posible error.- Por un caso no entren en la carpeta


Compilar un código fuente modificado (opcional)

En caso de que usted quiera compilar este Inkscape haciéndole alguna modificación, ejemplo podría usted querer cambiar algún icono por otro, u otra modificación, el comando que debe usar es:

dh_make -e su.email@serviciodemensajeria.com --createorig

esto estando en una terminal ubicada en la carpeta donde estuviera el código fuente, además el codigo fuente comprimido que puede estar en tar.gz o .tar.xz que está afuera al lado de esa carpeta usted debe eliminarlo pues con este comando se va a crear otro tar.gz o .tar.xz  el cuál tendrá los cambios que usted le habrá hecho (necesario para la compilación).

Paso 5. Compilar el paquete

Bien, así usted haya o no editado los archivos indicados igual puede avanzar, ahora es necesario poner en la terminal:

dpkg-buildpackage -rfakeroot

 aquí una imágen:


Y aparece así:

 

y si en algún otro programa que usted esté compilando no se puede así, ponga 

dpkg-buildpackage -rfakeroot -b -uc -us

Donde:

      sudo: Algunos programas lo necesitan para este proceso
     dpkg-buildpackage: comando para crear paquetes binarios o fuente a partir de fuentes.
     -rfakeroot: crea un entorno fakeroot para simular privilegios de root (para evitar problemas de propiedad y permisos).
     -b: compila solo el paquete binario.
     -uc - No firma criptográficamente el registro de cambios. es decir, no firma los archivos .buildinfo y .changes
     -us: no firma el paquete fuente.

Tiempo transcurrido

A las 13H18 ha empezado la Compilación en esta Laptop Dell Inspiron 1750

A las 15H32 termina la compilación. 

restando eso da 2H12


Bueno yo había salido de casa, parece que debía aparecer una ventana par poner la clave gpg pero no importa:


allí al final hay un mensaje que dice: "fallo", en realidad no se para qué es eso, parecería ser que es para enviar el deb por internet a algún servidor, bueno, lo que importa para mi es que está generado el .deb en el directorio en un nivel anterior:


y allí ahora están los archivos generados:


ahora voy a poner la vista detalles:




6.- Cómo editar un .deb

En caso que alguna vez usted necesite editar un deb, se puede, en el caso de este deb voy a copiar el nombre:

y lo pego en algún editor de texto:

 

inkscape_1.0.1-1_i386.deb
 

ahora abrimos una terminal allí en esa ruta donde está el deb:

 


y para editar el archivo control preparo el siguiente texto con el nombre completo del .deb así:

dpkg-deb -x inkscape_1.0.1-1_i386.deb tmpdir
dpkg-deb --control inkscape_1.0.1-1_i386.deb tmpdir/DEBIAN
gedit tmpdir/DEBIAN/control
dpkg -b tmpdir inkscape_1.0.1-1_i386_OK.deb


copio todas las cuatro lineas y las pego allí en la terminal:



y se abrirá gedit con el archivo control abierto. Ejemplo, si el deb no tenía nombre usted se lo puede poner, o le puede poder algúna sección https://www.debian.org/doc/debian-policy/ch-archive.html#s-subsections


 

y como ven allí arriba en las flechas sólo editaré esas partes, luego regreso a la terminal y doy enter en la cuarta línea que está sin ejecutarse:

 

y listo se habrán guardado los cambio en el deb

También les explico que manualmente pueden realizar cualquier cambio a cualquier archivo que esté dentro de la carpeta: tmpdir

la siguiente imagen es de cuando el cambio ya está hecho:

 


 

Ejemplos de cambios a realizar, añadir información mime

Si desean pueden ver cómo está construido el deb original que esté subido a los servidores del programa en el sistema operativo linux que sea, ejemplo para este es MX Linux entonces como está construido con debian debo de buscar aquí:

https://www.debian.org/distrib/packages


allí está inkscape:

https://packages.debian.org/buster/inkscape

allí puedo descargar el deb que ellos han construido y puedo ver si me falta algún archivo a mi para scarlo de allá y ponerlo en el mío

Ejemplo el equipo de Escuelas Linux me explicaban que a mi archivo generado le faltaba el archivo mime:



  

ver hacerca de mime en:

Creating new mime types in a shortcut Debian packaging | plashless
https://plashless.wordpress.com/2013/08/29/creating-new-mime-types-in-a-shortcut-debian-packaging/

y como ven efectivamente hay una carpeta con ese archivo la cual no se generó, pero el deb (se lo descomprime con clic derecho extraer aquí) de Debian Buster si lo tiene:


y ese se lo copio a mi proyecto y como explico arriba lo puse en la carpeta tmpdir y luego si di ENTER en la cuarta línea en la terminal y listo generado correctamente.

También puede usar los deb desde

https://packages.ubuntu.com/

 

IMPOSIBILIDAD EN LA COMPILACIÓN POR EL ARCHIVO RULES (POSIBLE SOLUCIÓN)

Traté de crear el deb de ffmpeg 4.2.4 pero me aparece esto:


  y lo que pasa es que al archivo rules en este caso le faltan más instrucciones las cuales investigué y no las encontré

Pero hay otra manera de poer crear el deb sin necesidad del archivo rules, pero es bastante extenso el tutorial que he hecho:

Creando paquete deb del editor de Markdown "VNote" en MX Linux 21 al estilo Alien (este método podría servir para crear el deb desde cualquier programa Qt si no tiene el archivo rules ni install_manifest.txt )
https://facilitarelsoftwarelibre.blogspot.com/2022/11/creando-paquete-deb-de-vnote-en-mx-linux-21.html


Dios les bendiga

Basado en:

How to create debian package from source (Example)
https://coderwall.com/p/urkybq/how-to-create-debian-package-from-source?fbclid=IwAR0WUM-6L1ce7HtEPYWVH87irWQjvy19Vh1Pwa7oGvUZPj53X9KFfdxBdqY

Guide for Debian Maintainers
https://www.debian.org/doc/manuals/debmake-doc/index.en.html
Chapter 3. Tool Setups
https://www.debian.org/doc/manuals/debmake-doc/ch03.en.html#email-setup

3.1. Email address
Various Debian maintenance tools recognize your email address and name to use by the shell environment variables $DEBEMAIL and $DEBFULLNAME.
Let’s setup these packages by adding the following lines to ~/.bashrc [7].

Add to the ~/.bashrc file.

DEBEMAIL="your.email.address@example.org"
DEBFULLNAME="Firstname Lastname"
export DEBEMAIL DEBFULLNAME}

1 comentario:

  1. Cómo Crear Deb Con Dpkg-Buildpackage -Rfakeroot (Desde Un Programa Compilado Previamente Desde Código Fuente)(Ejemplo Inkscape 1.0) ~ Proyecto Facilitar El Software Libre En El Ecuador >>>>> Download Now

    >>>>> Download Full

    Cómo Crear Deb Con Dpkg-Buildpackage -Rfakeroot (Desde Un Programa Compilado Previamente Desde Código Fuente)(Ejemplo Inkscape 1.0) ~ Proyecto Facilitar El Software Libre En El Ecuador >>>>> Download LINK

    >>>>> Download Now

    Cómo Crear Deb Con Dpkg-Buildpackage -Rfakeroot (Desde Un Programa Compilado Previamente Desde Código Fuente)(Ejemplo Inkscape 1.0) ~ Proyecto Facilitar El Software Libre En El Ecuador >>>>> Download Full

    >>>>> Download LINK fU

    ResponderBorrar

Sobre mi


 Hola, soy Washington Indacochea Delgado (Wachín), la siguiente es la historia de cómo empecé a usar Ubuntu. Todo empezó hace muchos años atrás en el año 2007 cuando estaba haciendo un deber y eran como las once de la noche y estaba en la computadora en Windows XP que se había puesto muy lento, demasiado, y había estado lidiando tratando de hacer el deber desde las ocho de la noche y el deber era para el siguiente día y yo ya quería dormir, y seguí tratando de usar la computadora para terminar el deber pero no pude, y ya era pasado de las doce casi la una (luego supe que tenía un virus) y tuve que irme a dormir y yo quedé muy frustrado por lo sucedido, ¡tanto tiempo allí con esa maquina lentísima y sin poder avanzar en la tarea! ¡fue algo horrible! todo funcionaba en camara lenta, era desesperante y sin poder hacer nada y con el apuro de terminar un deber importante para la mañana siguiente (no lo pude entregar).
  Al siguiente día en la noche en la iglesia había el culto de oración, yo fui y allí le pedí a Dios que me ayudará para nunca más volver a pasar por algo así por los virus. Luego pasó medía semana y mi hermano (estudiante de informática, muy inteligente) me dió un CD con el Sistema Operativo Ubuntu 7.10 (Gutsy Gibbon liberado en Octubre del 2007), y el me dijo que a éste no le afectaban los virus, y el me enseñó a instalarlo y me explicó como usarlo. Y desde allí empecé a practicar en este sistema operativo Ubuntu y poco a poco avanzando y leyendo en los foros en español y en inglés (allí hay más información). Pero usaba en ese tiempo más Windows que Ubuntu y ya para el año 2012 cuando hice mi tesis de Ingeniería en Alimentos usaba más Ubuntu (estaba probando los sabores https://kubuntu.org, https://ubuntustudio.org, y me había quedo usando Ubuntu Studio), sin embargo en ese año para hacer mi tesis utilicé Windows porque decía entre mi: "No sea que luego no me acepten mi tesis presentándola en formato odt del LibreOffice o algo me reclamen, o tenga luego yo que pasar de odt a doc, habiendo mucha posibilidad que se mueva algo del formato y tenga que corregirlo lo cual sería horas y horas", pero desde que terminé mi tesis estaba usando casi en su totalidad Ubuntu Studio (soy una persona musical y este UbuntuStudio es también para eso, usa un Kernel de baja latencia). Bien, a la fecha puedo decir que estoy libre de los virus, pero eso si frecuentemente actualizo el Sistema Operativo pues como ya sabrán los que usan Linux esa es la manera de protegerse de posibles ataques. Y también añado que desde el año 2020 estoy usando MX Linux porque Ubuntu dejó de dar soporte a 32 bits y con ello también UbuntuStudio. A continuación les dejo con varios vídeos sobre el tema de porqué Linux es más seguro:


[Aalto Talk with Linus Torvalds (Subtitulado)] min 31:52 sobre el Kernel.

Nota: Estas ultimas dos de Red Hat las puede ver con subtítulos en español si les da clic en la Tuerca y allí lo selecciona entre los varios idiomas que tiene.
Si usted quiere saber las vulnerabilidades que van encontrando en Ubuntu puede revisar esta página:

Ubuntu security notices (usn)

está sobre entendido que una vez que las encuentren las arreglarán y el parche se lo enviarán en las actualizaciones.
Puede leer también:

SecurityTeam - Ubuntu Wiki


 A mediados del 2018 estoy usando Xubuntu 18.04 de 32 bits por la razón de que Ubuntu Studio ha dejado de dar soporte a 32 bits, no obstante para hacer música estoy usando Jack Audio Connection Kit pues he aprendido a configurarlo.

También lea sobre la Historia de esta página

Proyecto Facilitar el Software Libre en el Ecuador: Historia
https://facilitarelsoftwarelibre.blogspot.com/2019/08/historia-de-esta-pagina.html

Que Dios les bendiga