2016-06-21 6 views
2

Je suis en train d'installer GD::Polygon en exécutant cpan install GD::Polygon, mais je reçois l'erreur suivante:Pourquoi j'obtiens "Impossible de trouver gdlib-config dans le chemin de recherche" quand j'essaye d'installer GD :: Polygon, même si gdlib-config est installé?

**UNRECOVERABLE ERROR** 
Could not find gdlib-config in the search path. Please install libgd 
2.0.28 or higher. 

J'ai installé manuellement libgd-2.2.1 de la source (./configure, make, make install) et maintenant quand je cours whereis gdlib-config , je vois qu'il est en effet installé:

gdlib-config: /usr/local/bin/gdlib-config 

Comment puis-je savoir cpan où trouver cette bibliothèque?

+3

Est-ce que 'gdlib-config' est dans votre' PATH'? – ThisSuitIsBlackNot

+1

aussi ... avez-vous essayé dans une nouvelle fenêtre de terminal de vous assurer que PATH a été mis à jour en conséquence? – stevieb

+0

@ThisSuitIsBlackNot/usr/local/bin est dans mon PATH ... dois-je inclure aussi gdlib-config? –

Répondre

2

Eh bien, réponse courte est: J'ai installé GD via yum au lieu de cpan.

sudo yum install perl-GD 

Si vous voulez toujours l'installer par cpan, vous devez inclure gdlib-config sur votre PATH (et pas seulement le dossier par exemple /usr/local/bin ou partout où il est).

Installation des paquets Perl avec yum est définitivement mieux qu'avec cpan

+1

'yum' (et' apt-get') ont un avantage sur 'cpan' pour les modules Perl qui doivent être intégrés avec des bibliothèques non-Perl, car ils peuvent gérer les dépendances et installer des objets précompilés qui sont testés et connus être compatible sur votre système. Vous abandonnez la flexibilité de travailler avec des 'perl's non-système ou de modifier la source du module, si vous êtes dans ce genre de chose. – mob

+1

Je n'arrive pas à faire fonctionner cela avec apt-get: 'apt-get install perl-GD', donne: E: Impossible de trouver le paquet perl-GD. Je ne peux pas croire combien il est difficile d'obtenir cette configuration du serveur, en utilisant les versions ultérieures de Perl:/ –

+3

@AndrewNewby: Vous cherchez 'sudo apt-get installer libgd-gd2-perl' – Nicorr

1

Je suis d'accord pour aller à l'aide du gestionnaire de paquets. Vous ne mentionnez pas le système d'exploitation que vous utilisez. Sur Ubuntu Linux,/usr/local/bin se trouve également dans le chemin de l'utilisateur root. Vous pouvez vérifier si le fichier est exécutable.

Assurez-vous également que le script qui effectue la compilation Perl ne gâche pas la variable PATH. J'utilise perlbrew et ne fonctionne pas en tant que root, en utilisant cpan pour installer des choses. Remarque: sur Ubuntu 16.10 et 17.04, il manque gdlib-config, car les mainteneurs Debian semblent l'avoir supprimé.

Pour l'obtenir, vous pouvez compiler la source ici: https://launchpad.net/ubuntu/+archive/primary/+files/libgd2_2.1.1.orig.tar.gz

avec le patch suivant appliqué:

diff webpimg.c.org libgd-gd-2.1.1-patched-16.10plus/src/webpimg.c 
714c714 
<  vpx_img_wrap(&img, IMG_FMT_I420, 
--- 
>  vpx_img_wrap(&img, VPX_IMG_FMT_I420, 
716,721c716,721 
<  img.planes[PLANE_Y] = (uint8*)(Y); 
<  img.planes[PLANE_U] = (uint8*)(U); 
<  img.planes[PLANE_V] = (uint8*)(V); 
<  img.stride[PLANE_Y] = y_stride; 
<  img.stride[PLANE_U] = uv_stride; 
<  img.stride[PLANE_V] = uv_stride; 
--- 
>  img.planes[VPX_PLANE_Y] = (uint8*)(Y); 
>  img.planes[VPX_PLANE_U] = (uint8*)(U); 
>  img.planes[VPX_PLANE_V] = (uint8*)(V); 
>  img.stride[VPX_PLANE_Y] = y_stride; 
>  img.stride[VPX_PLANE_U] = uv_stride; 
>  img.stride[VPX_PLANE_V] = uv_stride; 

acclamations

+0

Voir aussi ce rapport de bug: https://rt.cpan.org/Public/Bug/Display.html?id=121121 –

0

Par ailleurs, il semble que l'installateur CPAN a juste besoin une version "devel" de libgd pour construire le paquet. J'ai essayé de l'installer sur une ancienne plate-forme cygwin et enfin, il fonctionne avec le composant "libgd-devel".