Cómo instalar Cairo 1.8.10

12

El paquete libcairo2-deves la última versión de la biblioteca de gráficos de El Cairo (1.10.2). ¿Hay alguna forma de instalar la versión 1.8.10?

Estoy ejecutando 11.10, pero estaría interesado en una solución general si es posible.

Daniel Standage
fuente
¿Podría explicar por qué desea instalar la versión anterior? La instalación de la versión anterior en todo el sistema probablemente no sea una posibilidad (algunos programas pueden depender de las características de la versión más reciente), pero si tiene un requisito más limitado para la versión anterior, entonces podría ser posible una solución.
James Henstridge
Personalmente, sé muy poco sobre El Cairo, pero he escrito un programa que enlaza con una biblioteca que a su vez usa El Cairo para generar gráficos. Hice la mayor parte del desarrollo original en mi Mac, para lo cual la instalación de Cairo solo estaba disponible a través de algo como Fink (que solo tiene v1.8.10) ...
Daniel Standage
... El programa también usa OpenMP, y uno de los bucles paralelos incluye llamadas a las funciones de la biblioteca de El Cairo. El programa funciona en Ubuntu cuando lo ejecuto en un solo procesador, y funciona en Mac para cualquier cantidad de procesadores. Pero cuando lo ejecuto en Ubuntu con múltiples procesadores, obtengo abortos, segfaults, glibcs, etc.
Daniel Standage
Entiendo que degradar a v1.8.10 no es algo que desearía para una solución a largo plazo, y si pudiera aislar la instalación, incluso podría ser mejor. Ya he distribuido el software y simplemente quiero tener una interrupción temporal hasta que pueda descubrir qué está realmente mal con mi programa.
Daniel Standage
Como referencia, los números de versión para Cairo van 1.8 -> 1.9 -> 1.10, por lo que la versión incluida con Ubuntu debería poder hacer todo lo que hizo la versión que usó en MacOS. Si solo está accediendo a El Cairo a través de una biblioteca de terceros que no está modificando, tampoco debería tener que preocuparse por usar accidentalmente nuevas características y romper la compatibilidad con su antiguo entorno de desarrollo. Si ha tenido un problema con la nueva versión, ¿podría explicar qué es?
James Henstridge

Respuestas:

9

Si desea probar una versión anterior de Cairo, puede compilarla en un prefijo temporal en su directorio de inicio.

En primer lugar, asegúrese de tener instaladas las dependencias de compilación de Cairo. Puede hacer esto con el siguiente comando:

sudo apt-get build-dep cairo

Ahora descargue y desempaquete la versión anterior de El Cairo:

wget http://cairographics.org/releases/cairo-1.8.10.tar.gz
tar xzf cairo-1.8.10.tar.gz
cd cairo-1.8.10

Ahora desea convertir El Cairo en un prefijo temporal. Lo he usado ~/prefixen algunas ocasiones, pero puedes usar cualquier directorio.

./configure --prefix=$HOME/prefix
make
make install

Ahora necesita hacer que su propio software use esta versión de Cairo. Si el software utiliza pkg-configpara localizar sus dependencias, solo debería ser necesario establecer la siguiente variable de entorno:

export PKG_CONFIG_PATH=$HOME/prefix/lib/pkgconfig

Si no está utilizando pkg-config, es posible que deba ajustar CFLAGSpara incluir -I$HOME/prefix/includee LDFLAGSincluir -L$HOME/prefix/lib.

Finalmente, para ejecutar su programa usando la versión personalizada de Cairo, necesitará configurar el enlazador dinámico para que busque bibliotecas compartidas en su prefijo temporal:

export LD_LIBRARY_PATH=$HOME/prefix/lib

Una vez que esté configurado, puede verificar que su programa se esté vinculando con su copia de Cairo usando ldd. Si eso se ve bien, ya está.

Limpiar

Una vez que haya terminado con esta instalación temporal, la limpieza es bastante fácil. Simplemente restablezca las variables de entorno y elimine el prefijo de instalación temporal:

unset LD_LIBRARY_PATH
unset PKG_CONFIG_PATH
rm -rf $HOME/prefix

Es posible que deba volver a configurar / reconstruir su programa después de hacer esto para que vuelva a usar el sistema Cairo.

James Henstridge
fuente
1
Instrucciones excelentes y claras, con un proceso limpio de instalación y desinstalación. ¡Gracias!
Daniel Standage
Cómo eliminar las rutas de acceso predeterminadas de $ HOME para que no use los archivos de cairo predeterminados
Dau