¿Cómo build una herramienta con bibliotecas específicas sin romper Fedora?

Esta es probablemente una pregunta novato, pero hasta ahora nunca fue necesario desviarse de los componentes de desarrollo de núcleo estándar de Fedora 16. Necesito build el proyecto clutter-mx , pero esta biblioteca requiere glib-2.0.32. Junto con esto, glib-2 necesita libffi-3.0.11.

Puedo download la fuente y build estas bibliotecas, sin embargo, me preocupa que instalarlas romperá el rest del sistema.

El proyecto clutter-mx usa autotools y busca la versión glib-2.

Las preguntas son:

  1. Si construyo e instalo los nuevos componentes, y algo sale mal, ¿puedes volver usando yum, o algo similar?

  2. ¿Hay alguna manera de hacer que las autotools busquen en otro directory los encabezados instalados?

Gracias.

Las fonts que buscan dependencies a través de herramientas automáticas tienen un file configure.ac (y / o Makefile.am, no estoy seguro de este) en el que se definen esas dependencies. La mayoría de las veces las personas / IDE simplemente pondrán sus versiones actualmente instaladas de las bibliotecas como dependencia, pero en realidad no las necesitan en una versión reciente.

Puede intentar modificar las versiones requeridas de sus versiones e intentar comstackr el package.

No se puede hacer que las autotools se vean en una ruta alternativa, pero IIRC las autotools usan pkg-config para determinar las especificaciones de installation del package (man pkg-config). Puede decirle a pkg-config que busque en otros directorys la variable ambiental PKG_CONFIG_PATH. Sin embargo, la ruta pkg-config solo funciona si tiene las bibliotecas más recientes realmente instaladas en alguna parte. Pero luego creo que puede editar los files * .pc para forzar que clutter-mx enlace estáticamente esas bibliotecas.

Si instala dos versiones de una biblioteca y algunas veces usa una y otras veces puede tener problemas. Si realmente reemplazas los files que fueron puestos allí por rpm, estás a punto de atornillarlos.

Mi consejo es modificar las dependencies de build o, si es necesario, determinar por qué es necesaria la versión más reciente de la biblioteca XY y modificar las fonts de clutter-mx para no requerir esa versión reciente y trabajar con su versión actual. Mi segundo mejor consejo es get / crear packages para su distribución de las bibliotecas requeridas e instalarlas. Realmente no deberías salir del mundo configurado por tu distribución, es decir, administrador de packages. Hay fuerzas malvadas por ahí. 🙂

No intente instalar bibliotecas Gtk / Gnome más nuevas en un directory del sistema. Tienen poca compatibilidad con versiones anteriores y se arriesga a romper los progtwigs existentes.

Comstack e instala nuevas bibliotecas en una jerarquía de directorys separada. Ejecute ./configure --help para ver cómo especificar routes a bibliotecas e include files cuando comstack una biblioteca. Por ejemplo, si ves

 PANGO_CFLAGS C compiler flags for PANGO, overriding pkg-config PANGO_LIBS linker flags for PANGO, overriding pkg-config 

luego configure las siguientes variables de entorno:

 export PANGO_CFLAGS='-I /path/to/my/gnome/stuff/include' export PANGO_LIBS='-L /path/to/my/gnome/stuff/libs' 

Pase --prefix=/path/to/my/gnome/stuff a ./configure , para get todo instalado en su propio directory.

O bien, y esto será más fácil si necesita instalar muchas bibliotecas, rebuild todo, incluso con pkg-config . Instala pkg-config en /path/to/my/gnome/stuff también, luego configura

 export PKG_CONFIG=/path/to/my/gnome/stuff/bin/pkg-config