¿Qué son los paquetes *-devel?

3 minutos de lectura

avatar de usuario
Diferencia

¿Cuál es la utilidad de los paquetes de desarrollo como “libgtk+-devel” o “python-devel”, etc.? ¿Contienen fuente de la biblioteca? ¿En qué se diferencia de los paquetes que no son de desarrollo como libgtk+?

  • No vale la pena abrir otra respuesta, pero además de las respuestas existentes, debo enfatizar que los empaquetadores intentan incluir un paquete que no es de desarrollo, como libgtk+ la huella mínima necesaria para ejecutar (a diferencia de “desarrollar”) programas gtk+. Eso significa solo bibliotecas dinámicas y archivos de configuración. Todo lo demás va en el complementario. -devel paquete.

    – Pascal Cuoq

    2 de marzo de 2010 a las 4:33

avatar de usuario
Joaquín Sauer

los *-devel paquetes (normalmente llamados *-dev en las distribuciones basadas en Debian) suelen ser todos los archivos necesarios para compilar el código en una biblioteca determinada.

Para ejecutar una aplicación utilizando la biblioteca. libfoo solo el archivo de biblioteca realmente compartido (*.so.*por ejemplo libfoo.so.1.0) son necesarios (más posiblemente algunos archivos de datos y algunos enlaces simbólicos específicos de la versión).

Cuando realmente desee compilar una aplicación C que use esa biblioteca, necesitará los archivos de encabezado (*.hpor ejemplo foo.h) que describen la interfaz de esa aplicación, así como un enlace simbólico sin versión a la biblioteca compartida (*.sopor ejemplo libfoo.so -> libfoo.so.1.0). Esos generalmente se agrupan en el *-devel paquetes

A veces el *-devel Los paquetes también incluyen versiones compiladas estáticamente de las bibliotecas (*.apor ejemplo libfoo.a) en caso de que desee crear una aplicación independiente completa que no dependa en absoluto de bibliotecas dinámicas.

Otros lenguajes (como Java, Python, …) usan una forma diferente de anotar la API de una biblioteca (incluyendo efectivamente toda la información necesaria en la biblioteca real) y, por lo tanto, generalmente no necesitan *-devel paquetes (excepto quizás para documentación y herramientas adicionales).

  • Casi. los .so el archivo está en el paquete -devel; la biblioteca compartida normal pasa .so.*, ya que incluye un SONAME. los .so el archivo es utilizado por el enlazador, y el .so.* biblioteca se utiliza en tiempo de ejecución.

    – Ignacio Vázquez-Abrams

    2 de marzo de 2010 a las 4:48

  • Entonces, básicamente, necesita las bibliotecas *devel de la aplicación en cuestión si es una dependencia de otra aplicación, ¿porque necesita exponer la interfaz?

    – Oh

    31 de julio de 2018 a las 9:54

  • @ohhh: no. Solo necesita esos paquetes si compilar algo que necesita esa biblioteca. Si un paquete usos esa biblioteca entonces no necesitas la -devel paquete. En otras palabras: la mayoría de los usuarios normales nunca necesitarán el -devel paquete, pero los desarrolladores podrían.

    – Joaquín Sauer

    26 de julio de 2021 a las 8:53

Por lo general, contienen encabezados y bibliotecas necesarios. Por ejemplo, python-devel proporcionará los encabezados y las bibliotecas de Python que necesita si desea integrar el intérprete de Python en su propia aplicación. También se incluyen algunas herramientas y documentación adicionales (por ejemplo, un manual para desarrolladores o ejemplos de código).

  • ¿Son herramientas como pyinstaller un ejemplo del uso de esto? Porque los congeladores AFAIK también incorporan un intérprete de Python en el paquete que crean, que es justo lo que ha dicho aquí.

    – aderchox

    7 de agosto de 2020 a las 19:32

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad