Estoy intentando actualizar la versión 5.10.1 de Perl que trae CentOS 6.4 a la versión 5.14.4.
Una vez instalada la versión 5.14.4 he hecho:
# mv /usr/bin/perl /usr/bin/perl5101
# ln -s /usr/local/bin/perl /usr/bin/perl
de esta manera no pierdo la versión antigua. Lo único que tendría sería que instalar los módulos de CPAN, de nuevo.
Los módulos que tenía antes son GD,Image::GD::thumbnail,DBI y JSON.
He tenido problemas con GD pero forcé la instalación.
El problema me surge ahora cuando consulto con la base de datos; me da este error en el log:
[Wed Sep 18 12:45:44 2013] [error] [client 213.60.47.155] install_driver(mysql) failed: Can't locate DBD/mysql.pm in @INC (@INC contains: /usr/local/lib/perl5/site_perl/5.14.4/i686-linux-thread-multi /usr/local/lib/perl5/site_perl/5.14.4 /usr/local/lib/perl5/5.14.4/i686-linux-thread-multi /usr/local/lib/perl5/5.14.4 .) at (eval 26) line 3., referer: http://****/index1.htm
[Wed Sep 18 12:45:44 2013] [error] [client 213.60.47.155] Perhaps the DBD::mysql perl module hasn't been fully installed,, referer: http://*****/index1.htm
[Wed Sep 18 12:45:44 2013] [error] [client 213.60.47.155] or perhaps the capitalisation of 'mysql' isn't right., referer: http://******/index1.htm
[Wed Sep 18 12:45:44 2013] [error] [client 213.60.47.155] Available drivers: DBM, ExampleP, File, Gofer, Proxy, Sponge., referer: http://******/index1.htm
[Wed Sep 18 12:45:44 2013] [error] [client 213.60.47.155] at Bitacora_ComunesUTF8.pl line 3619, referer: http://*********/index1.htm
[Wed Sep 18 12:45:44 2013] [error] [client 213.60.47.155] Premature end of script headers: Bitacora_Acceso.pl, referer: http://***********/index1.htm
El módulo DBI me lo instaló sin problemas desde CPAN. El módulo DBD::mysql me da este error (este módulo nunca lo tuve que instalar en versiones antiguas de Perl):
- dbdimp.c:1355: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â
- dbdimp.c:4368: error: âsql_type_info_tâ no tiene un miembro llamado âtypeâ
- dbdimp.c:4368: aviso: el paso del argumento 1 de ânative2sqlâ crea un entero desde un puntero sin una conversión
- dbdimp.c:1355: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â
- dbdimp.c:4372: error: âsql_type_info_tâ no tiene un miembro llamado âmax_lengthâ
- dbdimp.c:4384: error: âsql_type_info_tâ no tiene un miembro llamado âflagsâ
- dbdimp.c:4384: error: âPRI_KEY_FLAGâ no se declaró aquà (primer uso en esta función)
- dbdimp.c:4384: error: âUNIQUE_KEY_FLAGâ no se declaró aquà (primer uso en esta función)
- dbdimp.c:4384: error: operandos inválidos para el binario | (se tiene âconst struct sql_type_info_t *â y âconst struct sql_type_info_t *â)
- dbdimp.c:4384: error: âMULTIPLE_KEY_FLAGâ no se declaró aquà (primer uso en esta función)
- dbdimp.c:4384: error: operandos inválidos para el binario | (se tiene âconst struct sql_type_info_t *â y âconst struct sql_type_info_t *â)
- dbdimp.c:4384: error: operandos inválidos para el binario & (se tiene âconst struct sql_type_info_t *â y âconst struct sql_type_info_t *â)
- dbdimp.c:4388: error: âsql_type_info_tâ no tiene un miembro llamado âflagsâ
- dbdimp.c:4392: error: âsql_type_info_tâ no tiene un miembro llamado âdecimalsâ
- dbdimp.c:4396: error: âsql_type_info_tâ no tiene un miembro llamado âlengthâ
- dbdimp.c:4396: error: âsql_type_info_tâ no tiene un miembro llamado âmax_lengthâ
- dbdimp.c:4396: error: âsql_type_info_tâ no tiene un miembro llamado âlengthâ
- dbdimp.c:4396: error: âsql_type_info_tâ no tiene un miembro llamado âmax_lengthâ
- dbdimp.c:4396: aviso: el paso del argumento 2 de âPerl_newSVivâ crea un entero desde un puntero sin una conversión
- /usr/local/lib/perl5/5.14.4/i686-linux-thread-multi/CORE/proto.h:2616: nota: se esperaba âIVâ pero el argumento es de tipo âconst struct sql_type_info_t *â
- dbdimp.c:4411: error: âimp_sth_tâ no tiene un miembro llamado âav_attrâ
- dbdimp.c:4411: error: asignación de la ubicación de sólo lectura â<erroneous-expression>[what]â
- dbdimp.c: En la función âmysql_st_FETCH_attribâ:
- dbdimp.c:4463: error: âimp_sth_tâ no tiene un miembro llamado âresultâ
- dbdimp.c:4463: aviso: el paso del argumento 3 de âmysql_st_FETCH_internalâ crea un entero desde un puntero sin una conversión
- dbdimp.c:4298: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â
- dbdimp.c:4463: error: demasiados argumentos para la función âmysql_st_FETCH_internalâ
- dbdimp.c:4465: error: âimp_sth_tâ no tiene un miembro llamado âresultâ
- dbdimp.c:4465: aviso: el paso del argumento 3 de âmysql_st_FETCH_internalâ crea un entero desde un puntero sin una conversión
- dbdimp.c:4298: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â
- dbdimp.c:4465: error: demasiados argumentos para la función âmysql_st_FETCH_internalâ
- dbdimp.c:4469: error: âimp_sth_tâ no tiene un miembro llamado âresultâ
- dbdimp.c:4469: aviso: el paso del argumento 3 de âmysql_st_FETCH_internalâ crea un entero desde un puntero sin una conversión
- dbdimp.c:4298: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â
- dbdimp.c:4469: error: demasiados argumentos para la función âmysql_st_FETCH_internalâ
- dbdimp.c:4481: error: âimp_sth_tâ no tiene un miembro llamado âparamsâ
- dbdimp.c:4481: error: âsql_type_info_tâ no tiene un miembro llamado âvalueâ
- dbdimp.c:4481: aviso: se pasa el argumento 2 de âPerl_newSVsvâ desde un tipo de puntero incompatible
- /usr/local/lib/perl5/5.14.4/i686-linux-thread-multi/CORE/proto.h:2657: nota: se esperaba âstruct SV * constâ pero el argumento es de tipo âconst struct sql_type_info_t *â
- dbdimp.c:4490: error: âimp_sth_tâ no tiene un miembro llamado âresultâ
- dbdimp.c:4490: aviso: el paso del argumento 3 de âmysql_st_FETCH_internalâ crea un entero desde un puntero sin una conversión
- dbdimp.c:4298: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â
- dbdimp.c:4490: error: demasiados argumentos para la función âmysql_st_FETCH_internalâ
- dbdimp.c:4494: error: âimp_sth_tâ no tiene un miembro llamado âresultâ
- dbdimp.c:4494: aviso: el paso del argumento 3 de âmysql_st_FETCH_internalâ crea un entero desde un puntero sin una conversión
- dbdimp.c:4298: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â
- dbdimp.c:4494: error: demasiados argumentos para la función âmysql_st_FETCH_internalâ
- dbdimp.c:4500: error: âimp_sth_tâ no tiene un miembro llamado âresultâ
- dbdimp.c:4500: aviso: el paso del argumento 3 de âmysql_st_FETCH_internalâ crea un entero desde un puntero sin una conversión
- dbdimp.c:4298: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â
- dbdimp.c:4500: error: demasiados argumentos para la función âmysql_st_FETCH_internalâ
- dbdimp.c:4504: error: âimp_sth_tâ no tiene un miembro llamado âresultâ
- dbdimp.c:4504: aviso: el paso del argumento 3 de âmysql_st_FETCH_internalâ crea un entero desde un puntero sin una conversión
- dbdimp.c:4298: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â
- dbdimp.c:4504: error: demasiados argumentos para la función âmysql_st_FETCH_internalâ
- dbdimp.c:4508: error: âimp_sth_tâ no tiene un miembro llamado âresultâ
- dbdimp.c:4508: aviso: el paso del argumento 3 de âmysql_st_FETCH_internalâ crea un entero desde un puntero sin una conversión
- dbdimp.c:4298: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â
- dbdimp.c:4508: error: demasiados argumentos para la función âmysql_st_FETCH_internalâ
- dbdimp.c:4510: error: âimp_sth_tâ no tiene un miembro llamado âresultâ
- dbdimp.c:4510: aviso: el paso del argumento 3 de âmysql_st_FETCH_internalâ crea un entero desde un puntero sin una conversión
- dbdimp.c:4298: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â
- dbdimp.c:4510: error: demasiados argumentos para la función âmysql_st_FETCH_internalâ
- dbdimp.c:4512: error: âimp_sth_tâ no tiene un miembro llamado âresultâ
- dbdimp.c:4512: aviso: el paso del argumento 3 de âmysql_st_FETCH_internalâ crea un entero desde un puntero sin una conversión
- dbdimp.c:4298: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â
- dbdimp.c:4512: error: demasiados argumentos para la función âmysql_st_FETCH_internalâ
- dbdimp.c:4514: error: âimp_sth_tâ no tiene un miembro llamado âresultâ
- dbdimp.c:4518: error: âimp_sth_tâ no tiene un miembro llamado âresultâ
- dbdimp.c:4518: aviso: el paso del argumento 3 de âmysql_st_FETCH_internalâ crea un entero desde un puntero sin una conversión
- dbdimp.c:4298: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â
- dbdimp.c:4518: error: demasiados argumentos para la función âmysql_st_FETCH_internalâ
- dbdimp.c:4525: error: âimp_sth_tâ no tiene un miembro llamado âinsertidâ
- dbdimp.c:4527: error: âimp_sth_tâ no tiene un miembro llamado âinsertidâ
- dbdimp.c:4527: error: demasiados argumentos para la función âmy_ulonglong2strâ
- dbdimp.c:4532: error: âimp_sth_tâ no tiene un miembro llamado âresultâ
- dbdimp.c:4532: aviso: el paso del argumento 3 de âmysql_st_FETCH_internalâ crea un entero desde un puntero sin una conversión
- dbdimp.c:4298: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â
- dbdimp.c:4532: error: demasiados argumentos para la función âmysql_st_FETCH_internalâ
- dbdimp.c:4536: error: âimp_sth_tâ no tiene un miembro llamado âresultâ
- dbdimp.c:4536: aviso: el paso del argumento 3 de âmysql_st_FETCH_internalâ crea un entero desde un puntero sin una conversión
- dbdimp.c:4298: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â
- dbdimp.c:4536: error: demasiados argumentos para la función âmysql_st_FETCH_internalâ
- dbdimp.c:4538: error: âimp_sth_tâ no tiene un miembro llamado âresultâ
- dbdimp.c:4538: aviso: el paso del argumento 3 de âmysql_st_FETCH_internalâ crea un entero desde un puntero sin una conversión
- dbdimp.c:4298: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â
- dbdimp.c:4538: error: demasiados argumentos para la función âmysql_st_FETCH_internalâ
- dbdimp.c:4540: error: âimp_sth_tâ no tiene un miembro llamado âuse_mysql_use_resultâ
- dbdimp.c:4544: error: âimp_sth_tâ no tiene un miembro llamado âwarning_countâ
- dbdimp.c:4556: error: âimp_sth_tâ no tiene un miembro llamado âresultâ
- dbdimp.c:4556: aviso: el paso del argumento 3 de âmysql_st_FETCH_internalâ crea un entero desde un puntero sin una conversión
- dbdimp.c:4298: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â
- dbdimp.c:4556: error: demasiados argumentos para la función âmysql_st_FETCH_internalâ
- dbdimp.c: En la función âmysql_bind_phâ:
- dbdimp.c:4646: error: âimp_dbh_tâ no tiene un miembro llamado âasync_query_in_flightâ
- dbdimp.c:4689: error: âimp_sth_tâ no tiene un miembro llamado âparamsâ
- dbdimp.c:4689: aviso: se pasa el argumento 1 de âbind_paramâ desde un tipo de puntero incompatible
- dbdimp.c:798: nota: se esperaba âstruct imp_sth_ph_t *â pero el argumento es de tipo âconst struct sql_type_info_t *â
- dbdimp.c: En la función âmysql_db_reconnectâ:
- dbdimp.c:4835: error: âMYSQLâ no se declaró aquà (primer uso en esta función)
- dbdimp.c:4835: error: expected â;â before âsave_socketâ
- dbdimp.c:4845: error: âimp_dbh_tâ no tiene un miembro llamado âpmysqlâ
- dbdimp.c:4845: error: âCR_SERVER_GONE_ERRORâ no se declaró aquà (primer uso en esta función)
- dbdimp.c:4845: aviso: comparación entre puntero y entero
- dbdimp.c:4849: error: âimp_dbh_tâ no tiene un miembro llamado âauto_reconnectâ
- dbdimp.c:4863: error: âsave_socketâ no se declaró aquà (primer uso en esta función)
- dbdimp.c:4863: error: âimp_dbh_tâ no tiene un miembro llamado âpmysqlâ
- dbdimp.c:4864: error: âimp_dbh_tâ no tiene un miembro llamado âpmysqlâ
- dbdimp.c:4864: aviso: el paso del argumento 3 de âmemcpyâ crea un entero desde un puntero sin una conversión
- /usr/include/bits/string3.h:49: nota: se esperaba âsize_tâ pero el argumento es de tipo âconst struct sql_type_info_t *â
- dbdimp.c:4865: error: âimp_dbh_tâ no tiene un miembro llamado âpmysqlâ
- dbdimp.c:4865: error: âimp_dbh_tâ no tiene un miembro llamado âpmysqlâ
- dbdimp.c:4865: aviso: el paso del argumento 1 de âmemsetâ descarta los calificadores del tipo del destino del puntero
- /usr/include/bits/string3.h:77: nota: se esperaba âvoid *â pero el argumento es de tipo âconst struct sql_type_info_t *â
- dbdimp.c:4873: error: âimp_dbh_tâ no tiene un miembro llamado âpmysqlâ
- dbdimp.c:4873: error: âimp_dbh_tâ no tiene un miembro llamado âpmysqlâ
- dbdimp.c:4874: aviso: el paso del argumento 3 de âmysql_dr_errorâ crea un puntero desde un entero sin una conversión
- dbdimp.c:1429: nota: se esperaba âconst char *â pero el argumento es de tipo âintâ
- dbdimp.c:4875: error: âimp_dbh_tâ no tiene un miembro llamado âpmysqlâ
- dbdimp.c:4875: aviso: el paso del argumento 1 de âmemcpyâ descarta los calificadores del tipo del destino del puntero
- /usr/include/bits/string3.h:49: nota: se esperaba âvoid * __restrict__â pero el argumento es de tipo âconst struct sql_type_info_t *â
- dbdimp.c:4875: aviso: el paso del argumento 3 de âmemcpyâ crea un entero desde un puntero sin una conversión
- /usr/include/bits/string3.h:49: nota: se esperaba âsize_tâ pero el argumento es de tipo âconst struct sql_type_info_t *â
- dbdimp.c:4876: error: âimp_dbh_tâ no tiene un miembro llamado âstatsâ
- dbdimp.c:4876: error: petición del miembro âauto_reconnects_failedâ en algo que no es una estructura o unión
- dbdimp.c:4876: error: se requiere un l-valor como un operando de incremento
- dbdimp.c:4885: error: âimp_dbh_tâ no tiene un miembro llamado âstatsâ
- dbdimp.c:4885: error: petición del miembro âauto_reconnects_okâ en algo que no es una estructura o unión
- dbdimp.c:4885: error: se requiere un l-valor como un operando de incremento
- dbdimp.c: En la función âmysql_db_quoteâ:
- dbdimp.c:5047: error: âimp_dbh_tâ no tiene un miembro llamado âpmysqlâ
- dbdimp.c: En la función âmysql_db_last_insert_idâ:
- dbdimp.c:5072: error: âimp_dbh_tâ no tiene un miembro llamado âasync_query_in_flightâ
- dbdimp.c:5073: error: âimp_dbh_tâ no tiene un miembro llamado âpmysqlâ
- dbdimp.c:5073: error: demasiados argumentos para la función âmy_ulonglong2strâ
- dbdimp.c: En el nivel principal:
- dbdimp.c:5078: error: expected declaration specifiers or â...â before âMYSQL_RESâ
- dbdimp.c: En la función âmysql_db_async_resultâ:
- dbdimp.c:5083: error: âMYSQLâ no se declaró aquà (primer uso en esta función)
- dbdimp.c:5083: error: âsvsockâ no se declaró aquà (primer uso en esta función)
- dbdimp.c:5083: error: operandos inválidos para el binario * (se tiene âconst struct sql_type_info_t *â y âconst struct sql_type_info_t *â)
- dbdimp.c:5084: error: âMYSQL_RESâ no se declaró aquà (primer uso en esta función)
- dbdimp.c:5084: error: â_resâ no se declaró aquà (primer uso en esta función)
- dbdimp.c:5084: error: operandos inválidos para el binario * (se tiene âconst struct sql_type_info_t *â y âconst struct sql_type_info_t *â)
- dbdimp.c:5088: error: ârespâ no se declaró aquà (primer uso en esta función)
- dbdimp.c:5103: error: âimp_dbh_tâ no tiene un miembro llamado âasync_query_in_flightâ
- dbdimp.c:5107: error: âimp_dbh_tâ no tiene un miembro llamado âasync_query_in_flightâ
- dbdimp.c:5107: aviso: la comparación de diferentes tipos de puntero carece de una conversión
- dbdimp.c:5111: error: âimp_dbh_tâ no tiene un miembro llamado âasync_query_in_flightâ
- dbdimp.c:5113: error: âimp_dbh_tâ no tiene un miembro llamado âpmysqlâ
- dbdimp.c:5116: error: asignación de la ubicación de sólo lectura â*(const struct sql_type_info_t *)&<erroneous-expression>â
- dbdimp.c:5119: aviso: el paso del argumento 3 de âmysql_dr_errorâ crea un puntero desde un entero sin una conversión
- dbdimp.c:1429: nota: se esperaba âconst char *â pero el argumento es de tipo âintâ
- dbdimp.c:5120: error: argumento de tipo erróneo para el signo de exclamación unario
- dbdimp.c:5124: aviso: la comparación de diferentes tipos de puntero carece de una conversión
- dbdimp.c:5132: error: âmy_ulonglongâ no se declaró aquà (primer uso en esta función)
- dbdimp.c:5132: aviso: comparación entre puntero y entero
- dbdimp.c:5133: error: argumento de tipo erróneo para el signo de exclamación unario
- dbdimp.c:5134: error: âimp_sth_tâ no tiene un miembro llamado âinsertidâ
- dbdimp.c:5140: error: âimp_sth_tâ no tiene un miembro llamado âresultâ
- dbdimp.c:5141: error: âimp_sth_tâ no tiene un miembro llamado âdone_descâ
- dbdimp.c:5142: error: âimp_sth_tâ no tiene un miembro llamado âfetch_doneâ
- dbdimp.c:5145: error: âimp_sth_tâ no tiene un miembro llamado âwarning_countâ
- dbdimp.c:5149: aviso: el paso del argumento 3 de âmysql_dr_errorâ crea un puntero desde un entero sin una conversión
- dbdimp.c:1429: nota: se esperaba âconst char *â pero el argumento es de tipo âintâ
- dbdimp.c: En la función âmysql_db_async_readyâ:
- dbdimp.c:5173: error: âimp_dbh_tâ no tiene un miembro llamado âasync_query_in_flightâ
- dbdimp.c:5174: error: âimp_dbh_tâ no tiene un miembro llamado âasync_query_in_flightâ
- dbdimp.c:5174: aviso: la comparación de diferentes tipos de puntero carece de una conversión
- dbdimp.c:5178: error: âimp_dbh_tâ no tiene un miembro llamado âpmysqlâ
- dbdimp.c:5178: error: âsql_type_info_tâ no tiene un miembro llamado ânetâ
- dbdimp.c:5178: error: petición del miembro âfdâ en algo que no es una estructura o unión
- dbdimp.c:5178: aviso: la asignación crea un entero desde un puntero sin una conversión
- make: *** [dbdimp.o] Error 1
- CAPTTOFU/DBD-mysql-4.024.tar.gz
- /usr/bin/make -- NOT OK
- 'YAML' not installed, will not store persistent state
- Running make test
- Can't test without successful make
- Running make install
- Make had returned bad status, install seems impossible
- Failed during this command:
- CAPTTOFU/DBD-mysql-4.024.tar.gz : make NO
- cpan[2]>
Si compruebo con yum si están instalados los módulos me dice que is up to date...
¿Qué puede estar pasando? ¿Alguna idea?
Muchas gracias