• Publicidad

Actualizar Perl 5.10.1 a 5.14.4

¿Eres administrador de sistemas? Este foro es para todos aquellos temas relacionados con el uso de Perl para administración de sistemas.

Actualizar Perl 5.10.1 a 5.14.4

Notapor lr_emilio » 2013-09-18 06:09 @298

Hola,

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):
Sintáxis: [ Descargar ] [ Ocultar ]
  1. dbdimp.c:1355: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â 
  2. dbdimp.c:4368: error: âsql_type_info_tâ no tiene un miembro llamado âtypeâ 
  3. dbdimp.c:4368: aviso: el paso del argumento 1 de ânative2sqlâ crea un entero desde un puntero sin una conversión 
  4. dbdimp.c:1355: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â 
  5. dbdimp.c:4372: error: âsql_type_info_tâ no tiene un miembro llamado âmax_lengthâ 
  6. dbdimp.c:4384: error: âsql_type_info_tâ no tiene un miembro llamado âflagsâ 
  7. dbdimp.c:4384: error: âPRI_KEY_FLAGâ no se declaró aquí (primer uso en esta función) 
  8. dbdimp.c:4384: error: âUNIQUE_KEY_FLAGâ no se declaró aquí (primer uso en esta función) 
  9. 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 *â) 
  10. dbdimp.c:4384: error: âMULTIPLE_KEY_FLAGâ no se declaró aquí (primer uso en esta función) 
  11. 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 *â) 
  12. 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 *â) 
  13. dbdimp.c:4388: error: âsql_type_info_tâ no tiene un miembro llamado âflagsâ 
  14. dbdimp.c:4392: error: âsql_type_info_tâ no tiene un miembro llamado âdecimalsâ 
  15. dbdimp.c:4396: error: âsql_type_info_tâ no tiene un miembro llamado âlengthâ 
  16. dbdimp.c:4396: error: âsql_type_info_tâ no tiene un miembro llamado âmax_lengthâ 
  17. dbdimp.c:4396: error: âsql_type_info_tâ no tiene un miembro llamado âlengthâ 
  18. dbdimp.c:4396: error: âsql_type_info_tâ no tiene un miembro llamado âmax_lengthâ 
  19. dbdimp.c:4396: aviso: el paso del argumento 2 de âPerl_newSVivâ crea un entero desde un puntero sin una conversión 
  20. /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 *â 
  21. dbdimp.c:4411: error: âimp_sth_tâ no tiene un miembro llamado âav_attrâ 
  22. dbdimp.c:4411: error: asignación de la ubicación de sólo lectura â<erroneous-expression>[what]â 
  23. dbdimp.c: En la función âmysql_st_FETCH_attribâ: 
  24. dbdimp.c:4463: error: âimp_sth_tâ no tiene un miembro llamado âresultâ 
  25. dbdimp.c:4463: aviso: el paso del argumento 3 de âmysql_st_FETCH_internalâ crea un entero desde un puntero sin una conversión 
  26. dbdimp.c:4298: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â 
  27. dbdimp.c:4463: error: demasiados argumentos para la función âmysql_st_FETCH_internalâ 
  28. dbdimp.c:4465: error: âimp_sth_tâ no tiene un miembro llamado âresultâ 
  29. dbdimp.c:4465: aviso: el paso del argumento 3 de âmysql_st_FETCH_internalâ crea un entero desde un puntero sin una conversión 
  30. dbdimp.c:4298: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â 
  31. dbdimp.c:4465: error: demasiados argumentos para la función âmysql_st_FETCH_internalâ 
  32. dbdimp.c:4469: error: âimp_sth_tâ no tiene un miembro llamado âresultâ 
  33. dbdimp.c:4469: aviso: el paso del argumento 3 de âmysql_st_FETCH_internalâ crea un entero desde un puntero sin una conversión 
  34. dbdimp.c:4298: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â 
  35. dbdimp.c:4469: error: demasiados argumentos para la función âmysql_st_FETCH_internalâ 
  36. dbdimp.c:4481: error: âimp_sth_tâ no tiene un miembro llamado âparamsâ 
  37. dbdimp.c:4481: error: âsql_type_info_tâ no tiene un miembro llamado âvalueâ 
  38. dbdimp.c:4481: aviso: se pasa el argumento 2 de âPerl_newSVsvâ desde un tipo de puntero incompatible 
  39. /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 *â 
  40. dbdimp.c:4490: error: âimp_sth_tâ no tiene un miembro llamado âresultâ 
  41. dbdimp.c:4490: aviso: el paso del argumento 3 de âmysql_st_FETCH_internalâ crea un entero desde un puntero sin una conversión 
  42. dbdimp.c:4298: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â 
  43. dbdimp.c:4490: error: demasiados argumentos para la función âmysql_st_FETCH_internalâ 
  44. dbdimp.c:4494: error: âimp_sth_tâ no tiene un miembro llamado âresultâ 
  45. dbdimp.c:4494: aviso: el paso del argumento 3 de âmysql_st_FETCH_internalâ crea un entero desde un puntero sin una conversión 
  46. dbdimp.c:4298: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â 
  47. dbdimp.c:4494: error: demasiados argumentos para la función âmysql_st_FETCH_internalâ 
  48. dbdimp.c:4500: error: âimp_sth_tâ no tiene un miembro llamado âresultâ 
  49. dbdimp.c:4500: aviso: el paso del argumento 3 de âmysql_st_FETCH_internalâ crea un entero desde un puntero sin una conversión 
  50. dbdimp.c:4298: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â 
  51. dbdimp.c:4500: error: demasiados argumentos para la función âmysql_st_FETCH_internalâ 
  52. dbdimp.c:4504: error: âimp_sth_tâ no tiene un miembro llamado âresultâ 
  53. dbdimp.c:4504: aviso: el paso del argumento 3 de âmysql_st_FETCH_internalâ crea un entero desde un puntero sin una conversión 
  54. dbdimp.c:4298: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â 
  55. dbdimp.c:4504: error: demasiados argumentos para la función âmysql_st_FETCH_internalâ 
  56. dbdimp.c:4508: error: âimp_sth_tâ no tiene un miembro llamado âresultâ 
  57. dbdimp.c:4508: aviso: el paso del argumento 3 de âmysql_st_FETCH_internalâ crea un entero desde un puntero sin una conversión 
  58. dbdimp.c:4298: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â 
  59. dbdimp.c:4508: error: demasiados argumentos para la función âmysql_st_FETCH_internalâ 
  60. dbdimp.c:4510: error: âimp_sth_tâ no tiene un miembro llamado âresultâ 
  61. dbdimp.c:4510: aviso: el paso del argumento 3 de âmysql_st_FETCH_internalâ crea un entero desde un puntero sin una conversión 
  62. dbdimp.c:4298: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â 
  63. dbdimp.c:4510: error: demasiados argumentos para la función âmysql_st_FETCH_internalâ 
  64. dbdimp.c:4512: error: âimp_sth_tâ no tiene un miembro llamado âresultâ 
  65. dbdimp.c:4512: aviso: el paso del argumento 3 de âmysql_st_FETCH_internalâ crea un entero desde un puntero sin una conversión 
  66. dbdimp.c:4298: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â 
  67. dbdimp.c:4512: error: demasiados argumentos para la función âmysql_st_FETCH_internalâ 
  68. dbdimp.c:4514: error: âimp_sth_tâ no tiene un miembro llamado âresultâ 
  69. dbdimp.c:4518: error: âimp_sth_tâ no tiene un miembro llamado âresultâ 
  70. dbdimp.c:4518: aviso: el paso del argumento 3 de âmysql_st_FETCH_internalâ crea un entero desde un puntero sin una conversión 
  71. dbdimp.c:4298: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â 
  72. dbdimp.c:4518: error: demasiados argumentos para la función âmysql_st_FETCH_internalâ 
  73. dbdimp.c:4525: error: âimp_sth_tâ no tiene un miembro llamado âinsertidâ 
  74. dbdimp.c:4527: error: âimp_sth_tâ no tiene un miembro llamado âinsertidâ 
  75. dbdimp.c:4527: error: demasiados argumentos para la función âmy_ulonglong2strâ 
  76. dbdimp.c:4532: error: âimp_sth_tâ no tiene un miembro llamado âresultâ 
  77. dbdimp.c:4532: aviso: el paso del argumento 3 de âmysql_st_FETCH_internalâ crea un entero desde un puntero sin una conversión 
  78. dbdimp.c:4298: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â 
  79. dbdimp.c:4532: error: demasiados argumentos para la función âmysql_st_FETCH_internalâ 
  80. dbdimp.c:4536: error: âimp_sth_tâ no tiene un miembro llamado âresultâ 
  81. dbdimp.c:4536: aviso: el paso del argumento 3 de âmysql_st_FETCH_internalâ crea un entero desde un puntero sin una conversión 
  82. dbdimp.c:4298: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â 
  83. dbdimp.c:4536: error: demasiados argumentos para la función âmysql_st_FETCH_internalâ 
  84. dbdimp.c:4538: error: âimp_sth_tâ no tiene un miembro llamado âresultâ 
  85. dbdimp.c:4538: aviso: el paso del argumento 3 de âmysql_st_FETCH_internalâ crea un entero desde un puntero sin una conversión 
  86. dbdimp.c:4298: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â 
  87. dbdimp.c:4538: error: demasiados argumentos para la función âmysql_st_FETCH_internalâ 
  88. dbdimp.c:4540: error: âimp_sth_tâ no tiene un miembro llamado âuse_mysql_use_resultâ 
  89. dbdimp.c:4544: error: âimp_sth_tâ no tiene un miembro llamado âwarning_countâ 
  90. dbdimp.c:4556: error: âimp_sth_tâ no tiene un miembro llamado âresultâ 
  91. dbdimp.c:4556: aviso: el paso del argumento 3 de âmysql_st_FETCH_internalâ crea un entero desde un puntero sin una conversión 
  92. dbdimp.c:4298: nota: se esperaba âintâ pero el argumento es de tipo âconst struct sql_type_info_t *â 
  93. dbdimp.c:4556: error: demasiados argumentos para la función âmysql_st_FETCH_internalâ 
  94. dbdimp.c: En la función âmysql_bind_phâ: 
  95. dbdimp.c:4646: error: âimp_dbh_tâ no tiene un miembro llamado âasync_query_in_flightâ 
  96. dbdimp.c:4689: error: âimp_sth_tâ no tiene un miembro llamado âparamsâ 
  97. dbdimp.c:4689: aviso: se pasa el argumento 1 de âbind_paramâ desde un tipo de puntero incompatible 
  98. dbdimp.c:798: nota: se esperaba âstruct imp_sth_ph_t *â pero el argumento es de tipo âconst struct sql_type_info_t *â 
  99. dbdimp.c: En la función âmysql_db_reconnectâ: 
  100. dbdimp.c:4835: error: âMYSQLâ no se declaró aquí (primer uso en esta función) 
  101. dbdimp.c:4835: error: expected â;â before âsave_socketâ 
  102. dbdimp.c:4845: error: âimp_dbh_tâ no tiene un miembro llamado âpmysqlâ 
  103. dbdimp.c:4845: error: âCR_SERVER_GONE_ERRORâ no se declaró aquí (primer uso en esta función) 
  104. dbdimp.c:4845: aviso: comparación entre puntero y entero 
  105. dbdimp.c:4849: error: âimp_dbh_tâ no tiene un miembro llamado âauto_reconnectâ 
  106. dbdimp.c:4863: error: âsave_socketâ no se declaró aquí (primer uso en esta función) 
  107. dbdimp.c:4863: error: âimp_dbh_tâ no tiene un miembro llamado âpmysqlâ 
  108. dbdimp.c:4864: error: âimp_dbh_tâ no tiene un miembro llamado âpmysqlâ 
  109. dbdimp.c:4864: aviso: el paso del argumento 3 de âmemcpyâ crea un entero desde un puntero sin una conversión 
  110. /usr/include/bits/string3.h:49: nota: se esperaba âsize_tâ pero el argumento es de tipo âconst struct sql_type_info_t *â 
  111. dbdimp.c:4865: error: âimp_dbh_tâ no tiene un miembro llamado âpmysqlâ 
  112. dbdimp.c:4865: error: âimp_dbh_tâ no tiene un miembro llamado âpmysqlâ 
  113. dbdimp.c:4865: aviso: el paso del argumento 1 de âmemsetâ descarta los calificadores del tipo del destino del puntero 
  114. /usr/include/bits/string3.h:77: nota: se esperaba âvoid *â pero el argumento es de tipo âconst struct sql_type_info_t *â 
  115. dbdimp.c:4873: error: âimp_dbh_tâ no tiene un miembro llamado âpmysqlâ 
  116. dbdimp.c:4873: error: âimp_dbh_tâ no tiene un miembro llamado âpmysqlâ 
  117. dbdimp.c:4874: aviso: el paso del argumento 3 de âmysql_dr_errorâ crea un puntero desde un entero sin una conversión 
  118. dbdimp.c:1429: nota: se esperaba âconst char *â pero el argumento es de tipo âintâ 
  119. dbdimp.c:4875: error: âimp_dbh_tâ no tiene un miembro llamado âpmysqlâ 
  120. dbdimp.c:4875: aviso: el paso del argumento 1 de âmemcpyâ descarta los calificadores del tipo del destino del puntero 
  121. /usr/include/bits/string3.h:49: nota: se esperaba âvoid * __restrict__â pero el argumento es de tipo âconst struct sql_type_info_t *â 
  122. dbdimp.c:4875: aviso: el paso del argumento 3 de âmemcpyâ crea un entero desde un puntero sin una conversión 
  123. /usr/include/bits/string3.h:49: nota: se esperaba âsize_tâ pero el argumento es de tipo âconst struct sql_type_info_t *â 
  124. dbdimp.c:4876: error: âimp_dbh_tâ no tiene un miembro llamado âstatsâ 
  125. dbdimp.c:4876: error: petición del miembro âauto_reconnects_failedâ en algo que no es una estructura o unión 
  126. dbdimp.c:4876: error: se requiere un l-valor como un operando de incremento 
  127. dbdimp.c:4885: error: âimp_dbh_tâ no tiene un miembro llamado âstatsâ 
  128. dbdimp.c:4885: error: petición del miembro âauto_reconnects_okâ en algo que no es una estructura o unión 
  129. dbdimp.c:4885: error: se requiere un l-valor como un operando de incremento 
  130. dbdimp.c: En la función âmysql_db_quoteâ: 
  131. dbdimp.c:5047: error: âimp_dbh_tâ no tiene un miembro llamado âpmysqlâ 
  132. dbdimp.c: En la función âmysql_db_last_insert_idâ: 
  133. dbdimp.c:5072: error: âimp_dbh_tâ no tiene un miembro llamado âasync_query_in_flightâ 
  134. dbdimp.c:5073: error: âimp_dbh_tâ no tiene un miembro llamado âpmysqlâ 
  135. dbdimp.c:5073: error: demasiados argumentos para la función âmy_ulonglong2strâ 
  136. dbdimp.c: En el nivel principal: 
  137. dbdimp.c:5078: error: expected declaration specifiers or â...â before âMYSQL_RESâ 
  138. dbdimp.c: En la función âmysql_db_async_resultâ: 
  139. dbdimp.c:5083: error: âMYSQLâ no se declaró aquí (primer uso en esta función) 
  140. dbdimp.c:5083: error: âsvsockâ no se declaró aquí (primer uso en esta función) 
  141. 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 *â) 
  142. dbdimp.c:5084: error: âMYSQL_RESâ no se declaró aquí (primer uso en esta función) 
  143. dbdimp.c:5084: error: â_resâ no se declaró aquí (primer uso en esta función) 
  144. 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 *â) 
  145. dbdimp.c:5088: error: ârespâ no se declaró aquí (primer uso en esta función) 
  146. dbdimp.c:5103: error: âimp_dbh_tâ no tiene un miembro llamado âasync_query_in_flightâ 
  147. dbdimp.c:5107: error: âimp_dbh_tâ no tiene un miembro llamado âasync_query_in_flightâ 
  148. dbdimp.c:5107: aviso: la comparación de diferentes tipos de puntero carece de una conversión 
  149. dbdimp.c:5111: error: âimp_dbh_tâ no tiene un miembro llamado âasync_query_in_flightâ 
  150. dbdimp.c:5113: error: âimp_dbh_tâ no tiene un miembro llamado âpmysqlâ 
  151. dbdimp.c:5116: error: asignación de la ubicación de sólo lectura â*(const struct sql_type_info_t *)&<erroneous-expression>â 
  152. dbdimp.c:5119: aviso: el paso del argumento 3 de âmysql_dr_errorâ crea un puntero desde un entero sin una conversión 
  153. dbdimp.c:1429: nota: se esperaba âconst char *â pero el argumento es de tipo âintâ 
  154. dbdimp.c:5120: error: argumento de tipo erróneo para el signo de exclamación unario 
  155. dbdimp.c:5124: aviso: la comparación de diferentes tipos de puntero carece de una conversión 
  156. dbdimp.c:5132: error: âmy_ulonglongâ no se declaró aquí (primer uso en esta función) 
  157. dbdimp.c:5132: aviso: comparación entre puntero y entero 
  158. dbdimp.c:5133: error: argumento de tipo erróneo para el signo de exclamación unario 
  159. dbdimp.c:5134: error: âimp_sth_tâ no tiene un miembro llamado âinsertidâ 
  160. dbdimp.c:5140: error: âimp_sth_tâ no tiene un miembro llamado âresultâ 
  161. dbdimp.c:5141: error: âimp_sth_tâ no tiene un miembro llamado âdone_descâ 
  162. dbdimp.c:5142: error: âimp_sth_tâ no tiene un miembro llamado âfetch_doneâ 
  163. dbdimp.c:5145: error: âimp_sth_tâ no tiene un miembro llamado âwarning_countâ 
  164. dbdimp.c:5149: aviso: el paso del argumento 3 de âmysql_dr_errorâ crea un puntero desde un entero sin una conversión 
  165. dbdimp.c:1429: nota: se esperaba âconst char *â pero el argumento es de tipo âintâ 
  166. dbdimp.c: En la función âmysql_db_async_readyâ: 
  167. dbdimp.c:5173: error: âimp_dbh_tâ no tiene un miembro llamado âasync_query_in_flightâ 
  168. dbdimp.c:5174: error: âimp_dbh_tâ no tiene un miembro llamado âasync_query_in_flightâ 
  169. dbdimp.c:5174: aviso: la comparación de diferentes tipos de puntero carece de una conversión 
  170. dbdimp.c:5178: error: âimp_dbh_tâ no tiene un miembro llamado âpmysqlâ 
  171. dbdimp.c:5178: error: âsql_type_info_tâ no tiene un miembro llamado ânetâ 
  172. dbdimp.c:5178: error: petición del miembro âfdâ en algo que no es una estructura o unión 
  173. dbdimp.c:5178: aviso: la asignación crea un entero desde un puntero sin una conversión 
  174. make: *** [dbdimp.o] Error 1 
  175.  CAPTTOFU/DBD-mysql-4.024.tar.gz 
  176.  /usr/bin/make -- NOT OK 
  177. 'YAML' not installed, will not store persistent state 
  178. Running make test 
  179.  Can't test without successful make 
  180. Running make install 
  181.  Make had returned bad status, install seems impossible 
  182. Failed during this command: 
  183. CAPTTOFU/DBD-mysql-4.024.tar.gz       : make NO 
  184.  
  185. 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
lr_emilio
Perlero nuevo
Perlero nuevo
 
Mensajes: 25
Registrado: 2013-08-01 11:57 @539

Publicidad

Re: Actualizar Perl 5.10.1 a 5.14.4

Notapor explorer » 2013-09-18 06:46 @324

Por favor, no hagas eso...

No se te ocurra actualizar Perl en un sistema, salvo si es utilizando los propios paquetes de instalación de la distribución de tu sistema operativo.

Eso quiere decir que si quieres actualizar el Perl del sistema, SIEMPRE debes usar el yum para actualizarlos. Si te dice que está actualizado, es que en CentOS no tienen versiones más modernas de Perl.

Sí que se podría intentar lo que dices: mover el perl actual a un directorio aparte... bajarlo desde CPAN..., pero ten en cuenta que Perl se utiliza para muchas cosas dentro del sistema operativo. Muchos scripts y programas siempre irán a ejecutar /usr/bin/perl, y éste esperará encontrarse las bibliotecas en /usr/lib/perl o /usr/lib/perl5. Si cambias de nombre los directorios, algunas cosas dejarán de funcionar.

Repito: se puede hacer (es mucho trabajo, y muy delicado), pero no compensa el esfuerzo.

Es mucho mejor actualizar la distribución entera (todo el sistema operativo). O usar un sistema operativo que traiga un Perl más moderno (yo estoy en una OpenSuSE v12.3, y trae el Perl v5.16.2).

A nivel de usuario, sí que es sencillo y fácil instalar un Perl más moderno, con herramientas como perlbrew (me falta por comentarlo en el hilo Instalación de módulos y bibliotecas en Perl).

En cuanto al mensaje de error, es claro: no está instalado DBD::mysql. Lo más sencillo es usar yum para que lo instale. Pero lo instalará en el Perl del sistema, claro.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Actualizar Perl 5.10.1 a 5.14.4

Notapor lr_emilio » 2013-09-18 07:06 @337

Ahora tengo un buen cacao montado...

He eliminado el enlace de una versión de perl a la otra.

Y he vuelto a la de por defecto. Me fallaba el servidor mysql y lo volví a reinstalar.

Ahora vuelvo a estar funcionando como antes sólo que si hago un perl -v me devuelve que tengo la versión 5.14.4.

¿¿¿Esto quiere decir que el sistema está trabajando con perl 5.14.4 y mis scripts con la versión 5.10.1???
lr_emilio
Perlero nuevo
Perlero nuevo
 
Mensajes: 25
Registrado: 2013-08-01 11:57 @539

Re: Actualizar Perl 5.10.1 a 5.14.4

Notapor explorer » 2013-09-18 09:59 @458

Pues... depende...

Si ejecutas el intérprete 'perl' desde la línea de comandos, el sistema buscará por las rutas indicadas por la variable $PATH el lugar donde está ese 'perl'. Tu mismo lo puedes saber si ejecutas el comando

which perl

Otra cosa son los programas Perl... Si en la primera línea del programa pone

#!/usr/local/bin/perl

entonces, al ejecutar el programa

./programa.pl

lo hará con el intérprete de perl que está en esa posición. Pero... si lo ejecutas como

perl programa.pl

entonces lo estarás ejecutando con el perl que el sistema encuentre en el $PATH.

Y a esto tienes que sumarle la posible presencia de la variable del sistema $PERL5LIB, que indica la posición de las bibliotecas.

Yo lo intenté hace diez años, y no me salió bien.

Bienvenido al infierno.

(A los programadores de Python, Java, y demás, también les pasa lo mismo).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Administración

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados