Inconsistencia en archivos .la

En una ocasión, al tratar de compilar sys-auth/consolekit me arrojó el siguiente error: "CONFIG_AUDITSYSCALL: is not set when it should be". Posteriormente, leyendo el mensaje de error, observe que decía: "libtool: link: cannot find the library `/usr/lib64/libdbus-glib-1.la' or unhandled argument `/usr/lib64/libdbus-glib-1.la' ". [+/-] Ver el error completo


Pensé que debía ser una inconsistencia de mi sistema con las librerías, así que resincronicé mi árbol Portage (emerge --sync world), actualicé el sistema (emerge -avuDN world), comprobé las dependencias (revdep-rebuild) y volví a compilar. Sin embargo el problema persistía.

Busqué referencias a estos archivos .la, y encontré que libtool crea estos archivos para almacenar información referente al directorio de destino de la librería (-rpath), así como de la librería matemática (-lm). Es decir, los archivos .la funcionan como si fueran enlaces a librerías y/o programas; de tal forma que si instalas una librería X, que a su vez utiliza la librería Y, se crea un archivo .la que almacena esta información.

En caso de que la información almacenada en el archivo .la no concuerde con el estado del sistema en el momento de la compilación, surgen errores de enlace hacia bibliotecas, es decir, exactamente lo que me estaba ocurriendo: "libtool: link: cannot find the library `/usr/lib64/libdbus-glib-1.la' or unhandled argument `/usr/lib64/libdbus-glib-1.la' ".

La solución la encontré en un bug abierto en Gentoo Bugzilla, donde recomendaban usar: dev-util/lafilefixer. La función de dev-util/lafilefixer es corregir las inconsistencias existentes entre los archivos .la y el sistema; por ello su uso es muy sencillo limitándose tan solo a una opción --justfixitlafilefixer --justfixit.

Por último solo tuve que hacer un emerge -av sys-auth/consolekit y esperar a que terminara de compilarse e instalarse.

0 comentarios:

Publicar un comentario

Recuerde que puede utilizar algunos códigos HTML como <b>para negrita</b>, <i>para cursiva</i> y <a href="URL">para enlaces</a>.