A ver... varias cosas... Primero, terminar la "chapuza" para que al menos, funcione.
Puedes ejecutar el
script en sh con los argumentos que luego quieras que el segundo perl coja.
Me explico... freq.cgi llama a carrega_moduls_imatge.sh con los argumentos que quieres pasar luego a imatge.pl. Lo harás con
system("carrega_moduls_imatge.sh arg1 arg2 componentes de la lista");Luego, en carrega...sh, en la línea que llamas a imatge.cgi.pl, lo haces con
/usr/usuaris/it/gralggen/cgi-bin/freq/imatge.cgi.pl "$*"y de esa manera le estás pasando todos los argumentos a imatge.pl.
Dentro de él, los lees accediendo al
array @ARGV.
Para el tema de la librería...
Si al hacer un
perl -MGD -e 1te da un error, es que la librería está mal instalada... eso de tener que indicar la posición de la librería a mano es que algo está mal...
Localiza el fichero
GD.so dentro del sistema. Es la librería que necesita el módulo
GD.pm a partir del cual se llaman al resto de librerías. Supongamos que está en
/usr/lib/perl5/auto/GD/GD.so.
Haz luego un
ldd /usr/lib/perl5/auto/GD/GD.soSaldrá el listado de librerías que
GD.so necesita. Entre esas líneas, busca la del
freetype. Sin hacer el
export que hacías antes, dirá que la freetype no la encuentra.
Bien, tienes entonces dos opciones:
- O copias la librería libfreetype* a uno de los directorios que el sistema reconoce como repositorios de librerías, por ejemplo, /usr/lib,
- O editas el fichero /etc/ld.so.conf y agregas una línea que se llame /usr/local/freetype-2.0.5/lib
y a continuación ejecutar el comando
ldconfig.
Al final, vuelve a ejecutar el comando
ldd al fichero
GD.so, como antes, y ver si el sistema localiza la freetype.
Si lo hace, entonces tampoco te fallará el comando
perl -MGD... de antes.
Y si eso no falla, entonces ya te sobran las líneas LD_LIBRARY_PATH...
Si todo va bien... luego podrás eliminar el
script sh y el perl freq.cgi, para tenerlo todo en un sólo programa.