Cómo escribir gentoo ebuilds

Cómo escribir gentoo ebuilds
Si no tienes el paquete gentoo que deseas, no temas! Puedes construir el tuyo! Para hacer esto, necesitará algo de experiencia con la compilación del software utilizando la marca de herramientas Linux conocida, GCC y otros. Para crear un paquete gentoo, 'emake' se utiliza para controlar y ajustar el proceso. Usando estas herramientas, puede crear paquetes muy delgados que se ejecutan de manera rápida y confiable.

Estructura ebuild

Para crear su propio ebuild, debe comenzar con el correcto *.archivo ebuild. Su archivo ebuild es el corazón de todo tu ebuild. El archivo ebuild depende de muchos otros archivos, al igual que hacer does. De hecho, en la mayoría de los casos, su ebuild dependerá de hacer, aunque es su elección. El siguiente es el árbol de Neovim:
/Mnt/SW/Projects/System/Gentoo/Gentoo/App-Editors/Neovim
├iqute archivos
│ ├── Neovim-0.4.3-GCC-10-FIX.parche
│ ├── Neovim-0.4.4-CMake_LUAVersion_Patch
│ ├── Neovim-0.4.4-CMake-liberable.parche
│ └── Sysinit.empuje
Manifiestas
Metadatos.xml
├── Neovim-0.4.4-R100.ebuild
└── Neovim-9999.ebuild

Entonces, ¿para qué usa estos archivos en su aplicación?? El *.El archivo ebuild es el archivo obvio. Este archivo contiene el src_uri, que apunta directamente al código. Otra información en el archivo incluye la descripción, el sitio web y la información más necesaria para compilar el paquete.

El archivo manifiesto contiene el hash que identifica de manera única el código.

Los metadatos.El archivo XML contiene el nombre y la dirección de correo electrónico del mantenedor, el nombre del proyecto y algunas banderas para compilar. La identidad remota también se encuentra en este archivo, como el repositorio de GitHub para el río arriba. El directorio de archivos contiene cualquier parche que pueda necesitar y cualquier configuración especial que necesite. El ejemplo anterior muestra un archivo con la configuración apropiada de acuerdo con los mantenedores de Gentoo.

Dentro del archivo Ebuild

Los valores dentro del archivo son fáciles de entender, en su mayor parte. La descripción y la página de inicio son para la ayuda del desarrollador. El número EAPI indica qué versión de gentoo se ejecutará. También tiene la licencia, que es bastante clara; Haga coincidir la licencia con el código para el que está construyendo un archivo de Ebuild.

Aún más complicado es la ranura, que se usa si necesita tener varias versiones. Luego, la ranura apuntará esta construcción a la versión que está admitiendo. La mayoría del software tendrá el valor 0, permitiendo solo una versión a la vez.

Las palabras clave es el valor que indica qué plataformas a las que puede compilar su código fuente. Los dados son AMD65, X86 y posiblemente ARM64. Una lista completa está disponible en su sistema gentoo. Tenga en cuenta que si desea contribuir, debe Establecer un Tilde (~) frente a la arquitectura. Esto significa que el código no está probado, así que asegúrese de que el código esté bien probado antes de eliminar este símbolo. Preferiblemente, que muchos usuarios vea el código antes de eliminar el Tilde.

La variable iuse vuelve a los parámetros que desea establecer para su compilador.

También tienes dependido, que viene en tres tipos diferentes. Los valores rdepend son los valores que usa al ejecutar el código. Los valores bdepend son los valores dependientes de la construcción. El paquete que está tratando de agregar a Gentoo contendrá un archivo que describe las dependencias necesarias.

Para paquetes simples, no necesitas nada más. Sin embargo, el paquete específico en el que está trabajando probablemente tendrá algunas cosas que deben hacerse antes de compilar el código. Si esto no coincide con lo que los desarrolladores de Gentoo han esperado, puede configurar el suyo propio.

Funciones

En el archivo, el instalador utilizará ciertas funciones para todo el proceso. Por ejemplo, para aplicar parches antes de ejecutar el comando, el src_prepare () la función manejará esta situación.

El src_configure () la función usa ECONF para establecer, yo.mi., 'Use_enable.'En esta función, puede desempaquetar sus archivos utilizando el comando Desempacar. También puedes pasar args a ./Configurar para su proyecto utilizando econf. Como puede ver, estas funciones se nombran de acuerdo con sus equivalentes de MakE, y muchas veces, pasan argumentos a través de.

El src_install () la función realiza la misma función que hacer instalar lo haría en una compilación C/C ++. Sin embargo, contiene muchas opciones que puede buscar en el documento de referencia.

La mayoría de las funciones están ahí para cuando tiene software de casos especiales. Probablemente comenzará a cavar a través de estas funciones cuando intente implementar su primer paquete.

Ejemplo: archivo de paquete simulido

Aquí, presentamos un archivo creado para el paquete Simulide. El paquete requiere un entorno de desarrollo QT5, por lo que deberá agregarlo en su archivo Ebuild. En la siguiente imagen, puede ver los valores rdepend que reflejan esta idea. Las bibliotecas ya están contenidas dentro de los repositorios de Gentoo, lo que hace que sea fácil señalar.

# Copyright 2021 Mats Tage Axelsson
# Distribuido bajo los términos de la Licencia Pública General de GNU V3
Eapi = 7
Descripción = "La simulida simula sus diseños de circuito, incluye la emulación de Arduino."
HomePage = "https: // www.simulida.com/P/Inicio.html "
Src_uri = "https: // mailfence.com/pub/docs/santigoro/web/simulide_0.4.14/simulide_0.4.14-SR4_Sources.alquitrán.GZ "
Licencia = "GPL-3"
Slot = "0"
Palabras clave = "~ x86 ~ amd64"
Rdepend = "dev-qt/qtsvg
dev-qt/qtxml
dev-qt/qtscript
dev-qt/qtwidgets
dev-qt/qtconcurrent
dev-qt/qtserialport
dev-qt/qtmultimedia "
Depender = "$ rdepend
Dev-libs/Libelf
Dev-Embedded/AVR-LIBC "
src_prepare ()
Desempacar simulide_0.4.14-SR4_Sources.alquitrán.GZ

src_configure ()
ECONF-con pop

En el src_prepare () función, puede ver que el paquete está desempaquetado antes de usar.

Cubrir

Cuando haya recortado y limpiado todos sus errores, es posible que desee agregar su paquete al proyecto Gentoo. Se creó laico para que pueda usar software experimental para su instalación de distribución principal. El proyecto se llama superposiciones, pero el comando para instalarlo se llama Layman.

Conclusión

Crear nuevos paquetes para Gentoo es una empresa que puede extender sus habilidades. Aun así, si ha creado muchos paquetes antes de usar Make y el conjunto de herramientas GCC, debería poder elegir este proceso bastante rápido. Además, asegúrese de contribuir a la comunidad tanto como pueda.