Fedora

C Desarrollo en Linux - Embalaje para Debian y Fedora - XI.

C Desarrollo en Linux - Embalaje para Debian y Fedora - XI.

Introducción

Ya conoces el lenguaje de programación C. Tienes el sabor y sentiste que quieres ir más allá y escribir el tuyo. O tal vez ayude a la comunidad y empaquete ese software favorito para la distribución que le gusta y usa. Independientemente de la situación, esta parte de la serie de desarrollo C le mostrará cómo crear paquetes para dos de las distribuciones más populares, Debian y Fedora. Si lee nuestros artículos hasta ahora y tiene algún conocimiento sólido de la línea de comandos, y puede decir que conoce su distribución de elección, está listo.

Antes de ir más allá ..

Sacemos de algunos conceptos e ideas generales, solo para que nos aseguremos de que estemos en la misma página. Lo que estamos a punto de delinear aquí está disponible, independientemente del proyecto que decida empaquetar (o contribuir), ya sea Arch, NetBSD u OpenSolaris. La idea es: ten cuidado. Verifique el código, ya sea suyo o no, y asegúrese de recordar que tal vez mucha gente usará su código. Tienes una responsabilidad en tus manos y una bastante grande en eso. Si duda de esto, vuelva a revertir los lugares por un segundo: un mantenedor de paquetes no tiene cuidado al inspeccionar el código y algunos astutos, pero Grave Bug se instala en su computadora. Es astuto, ya que solo se manifiesta en ciertos hardware y en ciertas situaciones, pero es lo suficientemente grave como para eliminar todos los archivos residentes dentro de su carpeta de inicio. Tiene que tiene esa combinación exacta de hardware y caos, ya que olvidó escribir en DVD esas fotos de sus vacaciones. Te enojas, su primera reacción es manifestar el sentimiento negativo hacia el sistema operativo (o distribución) y, por lo tanto, después de su decisión de cambiar las distribuciones inmediatamente, que la distribución pierde a un usuario, todo porque la falta de atención y minuciosidad de una persona.

Debian

Dada la excelente documentación de Debian, no podremos cubrir todo las cosas que uno necesita para convertirse en desarrollador. Después de todo, esto no es lo que queríamos. Lo que queríamos es mostrarte básicamente cómo llegar de un tarball a un .debutante. Convertirse en un desarrollador de Debian lleva mucho tiempo e implica que ayude a la comunidad a través de IRC o listas de correo, informando y ayudando a solucionar errores, etc., por lo que ese no es el objeto de nuestro artículo. Eche un vistazo a la documentación que el proyecto proporciona para más información. La Política de Debian, la Guía de New Surderer y la Referencia del Desarrollador son más que importantes para comenzar, deben ser como una especie de libro con el que duermes bajo la almohada.

Su primera parada debe ser, como se describe anteriormente, la política, donde debe familiarizarse con la jerarquía del sistema de archivos, los archivos, los campos en un archivo de control y elementos específicos que se recordarán con respecto a diferentes categorías de software: binarias, bibliotecas, fuente, fuente, juegos, documentación ... recuerda que un .El archivo Deb no es más que un archivo, y está hecho de dos partes: la parte de control, con el archivo de control y los scripts de instalación/ desinstalación, y la carga útil, donde residen los archivos que se instalarán. No es tan difícil como uno pensaría que es. Es una muy buena idea que descargue un .archivo deb, aún mejor si está empacando algún software con el que está familiarizado y comienza a mirar adentro para ver qué es lo que es. [Sugerencia]: puede usar el archivo de control para crear el suyo, siempre que tenga cuidado. Como ejemplo, tomemos Vim. Los archivos DEB no son más que archivos AR (1), por lo que simplemente se pueden desempaquetar usando el siguiente comando Linux:

 $ ar vx vim-nox_7.3.547-5_amd64.debutante 

Por supuesto, V representa detenidamente, y X significa extracto. Después de esta operación, veremos tres archivos: control.alquitrán.GZ, datos.alquitrán.XZ y un pequeño archivo de texto llamado Debian-Binary, que no es más que un archivo que le dice a DPKG, el Administrador de paquetes de Debian, qué formato binario se usa. Pero eso no es de interés por el momento. El archivo de datos tampoco es el archivo de datos, que consiste en los archivos que deben desempaquetarse en su sistema: las páginas binarias, manuales, bibliotecas, etc., dependiendo del software del que estamos hablando. El archivo de control es de suma importancia aquí. Si lo desempaquete, verá el archivo esencial, el llamado control, las md5sums de los archivos que se instalarán y dos scripts, uno que se encarga de los problemas de instalación posteriores a la publicación y la otra que se encarga de la previa remoción. Dado que teníamos un ejemplo de software, tomemos y veamos cómo se vería el archivo de control. Depende de usted decidir, querido lector, si el Yest necesita esos dos scripts y, de ser así, ¿cómo deben ser alterados?. Así que aquí hay un archivo de control, tomado de Vim-Nox y modificado para el Yest.

Paquete: Fuente de Yest: Versión de Yest: 2.7.0.5 Arquitectura: AMD64 Mantenedor: Rares Aioanei Instalado tamaño: 40355 Depende: libc6 (> = 2.11) sugiere: Proporciona: Sección de Yest: Otra prioridad: Página de inicio normal: SourceForge.Net/Projects/Descripción del antojo: este es un programa de manipulación y formato de fecha y formato de línea de línea de comando, muy útil en scripts. Puede sumar o restar fácilmente días, horas y/o minutos desde una fecha especificada. Admite todos los formatos de salida de fecha (1) más más. 

Ahí vas, amigos. ¿Crees que hay algo más que necesite para crear un paquete?? Compruebe si todos sus archivos están en su lugar, puede usar un método más de la vieja escuela, especialmente porque el software es pequeño, simple y no sorprendente, si tales palabras existen.

 $ dpkg -b yestdir yest.debutante 

Ahora, mucha gente me dirá, y no puedo esperar, por supuesto, que este es un viejo método para hacer cosas, etc. Y tienen razón. Sugiero mirar a través del dpkg-buildpackage página manual, así como Lintian para verificar la calidad de su .Deb, y recuerde hacer esto antes de comenzar algo, para que pueda asegurarse de que todo esté instalado:

 # Apt-Get Instale Build-Essential Autoconf Autotools AutoTools-Dev DH-Make Desvscripts Fakeroot Xutils Lintian Pbuilder 

Fedora

En mi opinión, Fedora/Red Hat facilita que las personas les empaqueten en comparación con Debian y Derivados. Dicho esto, más fácil no siempre significa mejor, al menos en el mundo de TI. Podrá hacer una opinión educada después de este artículo, esperamos.

Nuevamente, asegúrese de tener todas las herramientas instaladas, lo que se puede hacer escribiendo esto:

 # yum instalación @desarrollo de desarrollo Fedora-Packager 

Ahora crea un usuario nombrado makerpm, Asegúrese de que esté en el grupo simulado y asigne una contraseña:

 # userAdd -m -g Mock MakerPM && Passwd MakerPM 

Inicie sesión como ese usuario y emita el comando

 $ rpmdev-setuptree 

En el directorio de inicio. Verá, después de que salga el comando, una nueva estructura de directorio llamada RPMBuild. Tómese un tiempo para examinarlo y descubra los propósitos de cada directorio y archivo. Ahora, justo cuando Debian utiliza archivos de control, Fedora usa Specfiles. Se llaman así porque tienen el .Extensión de especificaciones, por lo que el usuario lo sabe especifica los parámetros de la construcción de paquetes: versión, nombre, autor, mantenedor, depende, etc. De todos modos, me estoy adelantando. Comencemos como lo hicimos antes y descargamos un paquete fuente (nuevamente Vim, para consistencia) para ver dónde está dónde. Para eso, se necesita instalar el paquete Yum-Utils, que ofrece YumDownloader:

 $ yumdownloader--fuente vim-mejorado 

Ahora, para instalar en ~/rpmbuild, escribimos

 $ rpm -ivh vim -mejorado […].SRC.rpm 

Recuerde que un archivo RPM es un archivo, así como .Los archivos deb son. La diferencia es el formato: mientras Debian usa AR, Fedora/RH usa CPIO como formato de elección. Sabiendo esto, ¿cuál sería el método para usar para desempacar manualmente? .rpms?

Es posible que haya notado que hay un directorio llamado especificaciones en su ~/rpmbuild. CD y crea un archivo con VIM o emacs, un archivo llamado Yest.Especificaciones. Se sorprenderá gratamente al descubrir que esos dos editores están modificados por Fedora de tal manera para que le ofrezcan un "esqueleto" de una especie (siempre que el archivo que desea crear tiene el .Extensión de especificaciones), por lo que puede completar los espacios en blanco. Ahora, su asignación es, basada en el archivo de control anterior y su conocimiento hasta ahora, escribir una especie completa para el año y, por supuesto, crear un RPM fuera de él. El Wiki de Fedora tiene una explicación detallada en cada sección de una especificación, léelo. Solo lo ayudaremos con el edificio real y la verificación del paquete. En resumen, usa el yest.La especificación como argumento a RPMLint para verificar el cumplimiento del archivo con las pautas de empaque de Fedora y luego, cuando todo demuestra estar en orden, y después de leer el manual de rpmbuild, haga algo como esto:

 $ rpmbuild -ba yest.Especificaciones 

Las opciones dadas a RPMBuild son "Build All", pero también puede construir solo el paquete fuente, usando -BS. Recuerde que Mock y Koji son dos herramientas muy útiles, y también recuerde que RPMLint es su boleto hacia las especificaciones de calidad.

Conclusión

Una cosa para recordar es que si creó el software que está empaquetando o no, el mantenimiento es muy importante, a veces aún más importante como el acto de la creación en sí. Así que asegúrese de saber qué responsabilidad está asumiendo sobre usted: si no está preparado para donar el tiempo, es mejor que no comience en absoluto, o asegúrese de que pueda dar el paquete a otra persona para mantener. Esperamos que hayas disfrutado de nuestro pequeño recorrido por el empaque de Linux.

Todos los artículos de esta serie:

Cómo reproducir el formato WMV en el códec de video de alias de Linux no disponible
Recientemente intenté abrir un archivo WMV (Microsoft ASF) usando VLC. VLC no pudo abrir la transmisión de video, así que intenté un par de reproducto...
Habilite múltiples pantallas de clonos en VGA Interface Projector o TV
Si está haciendo una presentación con su computadora portátil, desea usar múltiples pantallas. Una pantalla será la pantalla de la computadora portáti...
Conexión a Internet de banda ancha móvil y sakis3g
Este artículo es solo una continuación de mi primer artículo sobre mi experiencia con Internet de banda ancha móvil en un sistema Linux. Para acortar ...