2009-07-26 5 views
0

J'essaie d'installer un logiciel (moddims) qui dépend de "Imagemagick 6.3.9+" - J'ai essayé d'installer la dernière version d'ImageMagick (6.5.4-5) mais j'ai eu l'erreur suivante quand j'ai essayé de "make" moddims:Comment configurer/créer/installer par rapport à une ancienne version d'une bibliothèque?

mod_dims_ops.c: In function ‘dims_smart_crop_operation’: 
mod_dims_ops.c:34: error: too few arguments to function ‘ParseGravityGeometry’ 

On peut supposer que la signature de la fonction a changé quelque part entre ImageMagick 6.3.9 et la version actuelle. Je voudrais essayer d'installer des moddims par rapport à l'ancienne version d'ImageMagick - mais je veux installer ImageMagick 6.3.9 sans interférer avec la version 6.5.4-5 déjà installée. Quelles incantations ./configure puis-je utiliser pour a) installer l'ancienne version d'ImageMagick de telle sorte qu'elle ne va pas écraser ou autrement interférer avec ma version moderne et b) compiler des moddims pour utiliser cette ancienne version ?

Je suis sur OSX, mais je prévois avoir le même problème pour quand j'ai besoin d'installer plus tard des moddims sur un serveur de production Linux.

Répondre

2

De toute évidence, vous devez obtenir, compiler et installer l'ancienne version d'ImageMagick.

Face à ce problème - d'autant plus qu'il est à une phase expérimentale (vous ne savez pas que vous voulez garder cette version de ImageMagick autour) - Je:

  • Créer un nouveau répertoire installer ImageMagick:

    /opt/ImageMagick 
    
  • Configurer ImageMagick 6.3.9 pour installer là - probablement:

    ./configure --prefix=/opt/ImageMagick 
    
  • Créez, testez et installez-le.

  • moddims Configurer pour regarder dans l'emplacement ImageMagick avant endroits standards:

    export LDFLAGS=-L/opt/ImageMagick/lib 
    export CPPFLAGS=-I/opt/ImageMagick/include 
    ./configure .... 
    
  • Vérifiez que le code moddims produit utilise vos bibliothèques préférées:

    otool -L ...moddims-progam-or-library... # MacOS X 
    ldd ...moddims-program-or-library...  # Linux, etc. 
    

Le premier chèque sera be "est-ce que moddims compile lorsqu'il est configuré"; Si ce n'est pas le cas, vous utilisez probablement la version 'standard' du fichier d'en-tête moddims malgré cette tentative pour éviter cela.

Il pourrait aussi être configure options pour spécifier où la bibliothèque ImageMagick doit être tirée de - vérifier avec « ./configure --help » (et/ou « grep -i image configure »).

+0

Grande réponse, mais pour "Configurer ImageMagick 6.3.9 pour installer là" ai-je raison de penser que j'ai besoin d'utiliser "./configure --prefix =/opt/ImageMagick/--exec-prefix =/opt/ImageMagick/"? –

+0

Aussi, pourquoi "/ opt/ImageMagick" par opposition à quelque part d'autre (comme dans mon propre répertoire personnel quelque part)? Serait-il possible de créer un lien statique dans les bibliothèques ImageMagick pour les supprimer et ne pas les encombrer de mon système de fichiers? –

+0

Je pense que je pourrais être foutu ... J'ai tout compilé, mais j'ai reçu "httpd: Erreur de syntaxe sur la ligne 117 de /private/etc/apache2/httpd.conf: Impossible de charger/usr/libexec/apache2/libmod_dims .so dans le serveur: dlopen (/usr/libexec/apache2/libmod_dims.so, 10): aucune image trouvée trouvée Trouver: \ n \ t/usr/libexec/apache2/libmod_dims.so: mach-o, mais faux architecture "- Je pense que je dois compiler des moddims comme 64 bits au lieu de 32 bits, mais cela signifie faire la même chose pour ImageMagick, qui lance des erreurs désagréables. –

1

Depuis ImageMagick utilise pkg-config. Tout ce que vous devez faire est d'ajuster votre PKG_CONFIG_PATH pour référencer l'ancienne version. (Cela suppose que votre paquet appelle PKG_CHECK_MODULES pour se configurer pour ImageMagick.) Si votre paquet ne le fait pas, vous devez le modifier.

Fondamentalement, vous voulez récupérer l'ancien ImageMagick et l'installer quelque part (par exemple ./ configure --prefix = $ HOME/obsolète & & make install), puis allez dans votre paquet et configurez avec l'argument PKG_CONFIG_PATH = $ HOME/obsolete/lib/pkgconfig. Malheureusement, ImageMagick va installer les fichiers en dehors de votre préfixe spécifié (par exemple dans/Library/perl), donc il n'est pas garanti de ne pas modifier votre bibliothèque actuelle. (IMO, il s'agit d'un bogue d'empaquetage ImageMagick.)

Consultez la documentation de pkg-config pour plus de détails.

Questions connexes