miércoles, 22 de mayo de 2013

El caracter ^M en archivos Unix y Linux

El caracter ^M en archivos Unix y Linux

Con demasiada frecuencia ocurre que importamos un texto de MS-DOS a UNIX, y al editarlo con el vi (por ejemplo), sale lleno de "^M" al final de todas las líneas. Esto de los ^M ocurre porque el delimitador de línea de los ficheros de texto en DOS es CR-LF (carriage return-linefeed, o sea, retorno de carro y salto de línea), y en UNIX son simplemente LF. Así, muchas herramientas de UNIX (al menos por defecto), buscan como delimitador de línea el LF, así que al final de cada línea hay un caracter extraño (el CR).
Esto, en vi, se puede arreglar fácilmente con la orden 

 :%s/<Ctrl-V><Ctrl-M>//g
 
NOTA. Con esto me refiero a abrir el archivo con vi y ejecutar el comando anterior.  
 
Descripción del comando: El "%" sirve para que se sustituya en todas las líneas, y no sólo en la actual, la "s" para que se realice una sustitución, el Ctrl-V Ctrl-M es necesario para que el vi no se crea que estamos pulsando un ENTER (Ctrl-V sirve para insertar literales), y, por supuesto, se sustituye por nada, así que entre la segunda y la tercera barras no ponemos nada.

Por si no te gusta el vi, puedes cambiar el formato de los ficheros de texto desde la línea de órdenes, escribiendo:

 sed 's/<Ctrl-V><Ctrl-M>//' fichero-CRLF >fichero-LF
 
Si no conocías el sed (lo más probable, porque si lo conocieras ya se te habría ocurrido a ti el truco), es una herramienta bastante versátil de proceso de texto (no tanto como el perl), y no muy complicada de utilizar. 


lunes, 20 de mayo de 2013

java.lang.UnsatisfiedLinkError on Linux Fedora 17 x86_64 bits

Issue: java.lang.UnsatisfiedLinkError on Linux Fedora 17 

Buenos dias!!!!!!

Hoy le dejo la sulocion a este problema

java.lang.UnsatisfiedLinkError: Could not load SWT library

y es que este error es ocasionado cuando tratas de abrir el WebSphere MQ Explorer, realizar la instalación y configuración de Instalation Manager(El cual es necesario para instalar las ultimas versiones de los productos como MQ, Broker, WAS, Fixes, etc) en modo gráfico. Y es que este error se preseta debido a que la distribución de Linux no cuenta con la librerias adecuadas para lanzar el modo grafico de las tareas antes mencionadas:

1. ./IBMIM command - para lanzar la consola de IM.
2. ./install command - para lanzar la instalacion de IM.
3. ./strmqcfg - para lanzar MQ Explorer.

Para solucionar este problema basta con ejecutar el siguiente comando con privilegios de root.

yum install gtk2.i686 gtk2-engines.i686 PackageKit-gtk-module.i686 PackageKit-gtk-module.x86_64 libcanberra-gtk2.x86_64 libcanberra-gtk2.i686


Nota. Se utiliza YUM debido a la distribución pero podría variar de acuerdo a la misma.

Una vez realizado lo anterior deberíamos poder lanzar el modo gráfico sin ningún problema.

A continuacion el error completo:

----------------------------------------------------------------------------------------------------------------
!ENTRY org.eclipse.osgi 4 0 2013-05-13 22:57:12.833
!MESSAGE Application error
!STACK 1
java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:
        /opt/IB/InstallationManager/eclipse/configuration/org.eclipse.osgi/bundles/336/1/.cp/libswt-pi-gtk-3659.so (libXtst.so.6: cannot open shared object file: No such file or directory)
        swt-pi-gtk (Not found in java.library.path)
        /tmp/swtlib-32/libswt-pi-gtk-3659.so (libXtst.so.6: cannot open shared object file: No such file or directory)
        /tmp/swtlib-32/libswt-pi-gtk.so (/tmp/swtlib-32/liblibswt-pi-gtk.so.so: cannot open shared object file: No such file or directory)

----------------------------------------------------------------------------------------------------------------