Instalar JAVA en Ubuntu

Debido a diversos motivos que no se expondrán en este artículo me he visto obligado a desarrollar ciertas aplicaciones en JAVA, por todos es bien sabido que JAVA es un formato restrictivo, a pesar del formato abierto del API en sí, hasta ahora las únicas implementaciones de JAVA en GNU/Linux con una amplia compatibilidad se derivan de la implementación de Sun Microsystem, ésta implementación lleva consigo términos de licencias no libres.

A pesar de la existencia de proyectos que buscan crear implementaciones libres de JAVA, estos aún no son comparables en rendimiento, acabado y compatibilidad con la implementación de Sun Microsystem.

Estos proyectos son:

Así que procederé a describir el método más elegante que he encontrado hasta ahora para instalar la implementación de JAVA de Sun Microsystem.

Obtenga la versión más reciente del fichero binario desde la página de descargas de Sun. Seleccione cualquiera de los enlaces de acuerdo a sus necesidades, ya sea para JDK o JRE. Recuerde que JDK soporta la creación de aplicaciones para plataforma de desarrollo J2SE, es decir, ideal para desarrolladores, mientras que JRE permite a los usuarios finales ejecutar aplicaciones JAVA.

Una vez culminada la descarga, ejecute las siguientes sentencias:

$ sudo apt-get install java-package fakeroot
$ fakeroot make-jpkg jdk-1_5_0_02-linux-i586.bin
$ sudo dpkg -i sun-j2sdk1.5_1.5.0+update02_i386.deb

Es importante aclarar que en las sentencias anteriores se asume que el paquete descargado ha sido el jdk-1_5_0_02-linux-i586.bin, evidentemente usted debe sustituir el nombre del paquete por el cual corresponda.

Si desea verificar la correcta instalación de JAVA, proceda de la siguiente manera:

$ java -version

Después de la sentencia anterior usted debe recibir un mensaje similar al siguiente:

java version "1.5.0_02"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_02-b09)
Java HotSpot(TM) Client VM (build 1.5.0_02-b09, mixed mode, sharing)

Lo anterior solo ha sido probado bajo Ubuntu Linux versión Hoary y Breezy. Una pequeña nota antes de culminar, en el caso de aparecerle el mensaje /java-web-start.applications: Permission denied mientras contruye el paquete .deb, no tiene mayor relevancia, puede ser ignorado.

Nota para los usuario de Breezy

Si al ejecutar el comando java -version obtiene algo similar a lo mostrado a continuación:

$ java -version
java version "1.4.2"
gij (GNU libgcj) version 4.0.2 20050808 (prerelease) (Ubuntu 4.0.1-4ubuntu9)

Copyright (C) 2005 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

No se preocupe, simplemente cambie la versión de JAVA por omisión, para ello lea el artículo Como cambiar entre versiones de JAVA bajo Breezy.

Referencias:

2 min read

Primer Congreso Nacional de Software Libre

El día de hoy se dió inicio en Mérida al Primer Congreso Nacional de Software Libre, el cual es auspiciado por el Grupo de Usuarios de GNU/Linux de Venezuela UNPLUG. El objetivo de este congreso es promocionar el uso, implementación, características y posibilidades del Software Libre en Venezuela, generando una estructura de soporte y apoyo a los diferentes Grupos de Usuarios de GNU/Linux y Software Libre en todo el territorio nacional.

Las charlas de día de hoy han sido:

  • El Software Libre y GNU/Linux, Ponente: Octavio Rossell
  • Diseño Gráfico Digital en Software Libre, Ponente: Leonardo Caballero
  • ¿Por qué Open Office es la alternativa?, Ponente: Joskally Carrero
  • La respuesta está en el Software Libre, Ponente: Francisco Palm
  • Sistemas de Información Geográfica en GNU, Ponente: Damian Fossi

Las charlas del día de mañana serán:

  • Fábrica del Software Libre, Ponente: Javier Riviera
  • Software Libre como palanca para el desarrollo endógeno, Ponente: Mariángela Petrizzo
  • El Software Libre en la Educación Universitaria, Ponente: Samuel Rojas
  • Redes Inalámbricas bajo Software Libre, Ponente: Walter Vargas
  • Metodología de Migración hacia el Software Libre, Ponente: Jorge González
  • El escritorio en GNU/Linux, Ponente: Vladimir Llanos

Según anuncio Octavio Rossell al finalizar la jornada del día de hoy, la entrada el día de mañana será libre al público en general. La jornada del día de mañana comenzará a las 9:00 a.m. hora local.

En los próximos días trataré hacer un resúmen acerca de las charlas, ya estoy tomando notas.

1 min read

Smeg, simple editor del menú para GNOME

Smeg, es un simple editor del menú para Gnome. Esta herramienta le permitirá agregar entradas al menú de opciones, de igual manera podrá ordenarlo, agregar separadores, hasta editar el menú de aplicaciones de superusuario. Smeg aún no ofrece soporte completo para los entornos de escritorio KDE y XFCE.

Para los usuarios de Ubuntu Linux (versión Hoary) se encuentra disponible un script que realizará la instalación de Smeg de manera automática. También puede hacer uso del .deb más reciente para Smeg. Si usted no utiliza Ubuntu Linux, no se preocupe, Smeg también está disponible en .tar.gz, lo cual le facilitará la instalación en otras distribuciones.

Los usuarios de Gentoo ya pueden hacer uso de Smeg vía portage.

En Ubuntu Forums podrá discutir todo lo relacionado con éste editor del menú en la sección exclusiva para Smeg.

~1 min read

Eliminando ficheros inútiles de manera recursiva

En algunos casos mientras redactamos, codificamos o trabajamos en algunos editores de texto se van generando ficheros temporales que puede irse acumulando en nuestros directorios, estos suelen ser utiles en aquellos casos en los cuales las aplicaciones terminan de manera inesperada, seguramente podremos recuperar los ultimos cambios hechos al utilizar este tipo de ficheros, o en el caso de los ficheros core, nos pueden servir en aquellos casos en los cuales alguna funcion de nuestros programas no funciona como deberia y genera una violacion de segmento, los ficheros core nos pueden facilitar el analisis en la busqueda de los posibles errores en la funcion.

En muchas ocasiones nos encontramos que estos ficheros temporales se encuentran dispersos en algunos directorios y el hecho de borrarlos uno a uno suele ser un proceso mas bien tedioso. Por la razon mencionada anteriormente podriamos hacernos la siguiente pregunta, ¿es posible automatizar el proceso de eliminacion de ficheros “inutiles” de manera recursiva?, la respuesta es si.

El siguiente script nos ayudara servira para lograr lo que deseamos.

#!/bin/bash

#Borrar de manera recursiva los ficheros inutiles.

echo Directorio Raiz: $PWD
echo Procesando...

find $PWD \( -name \*~ -or -name \*.o -or -name \*\# -or -name core \) -exec rm -vf {} \;

echo Listo!

En el codigo mostrado anteriormente el comando que realiza todo el trabajo por nosotros es find, voy a explicar brevemente que hace este comando.

El comando find necesita de un camino o ruta y de una expresion regular para lograr encontrar alguna coincidencia al recorrer el arbol de directorios cuya raiz es el camino especificado, find evaluara de izquierda a derecha las expresiones indicadas, tomando en cuenta las reglas de precedencia en los operadores, al conocer el resultado (cierto o falso) find continuara con el siguiente fichero.

Dentro del comando find encontrara el uso de ciertas opciones, entre las cuales cabe mencionar las siguientes:

  • -or: Representa el o logico, es equivalente a utilizar la opcion -o.
  • -exec: Ejecuta la orden especificada siempre y cuando find haya encontrado alguna concordancia con la expresion regular, por lo tanto se devuelve valor cierto. Las ordenes seran aquellos argumentos que siguen a -exec hasta que encontrar el caracter ; (punto y coma). Si desea ser consultado antes de realizar la ejecucion al encontrarse alguna coincidencia, es preferible hacer uso de la opcion -ok.
  • -name: Especifica la base del nombre del fichero que deseamos buscar, no es necesario especificar el directorio, hace distincion entre mayusculas y minusculas. Se puede hacer uso de metacaracteres.
  • {}: Cadena que es reemplazada por el nombre del fichero que se esta procesando en ese instante.

Puede copiar el script mostrado arriba, supongamos que lo ha llamado rmnull, debe moverlo dentro del directorio /usr/local/bin/ (haciendolo como superusuario). Posteriormente debe otorgarle permisos de ejecucion.

$ sudo mv rmnull /usr/local/bin/
chmod +x /usr/local/bin/rmnull

Ahora bien, para hacer uso del script simplemente debera teclear en consola rmnull, el directorio raiz sera el directorio en el que se encuentre actualmente. Veamos un ejemplo de ejecucion del script.

[email protected]:~$ touch file# file.o file~ pruebas/file# pruebas/file~ pruebas/core
[email protected]:~$ pwd
/home/milton
[email protected]:~$ rmnull
Directorio Raiz: /home/milton
Procesando...
«/home/milton/Desktop/find.txt~» borrado
«/home/milton/pruebas/file#» borrado
«/home/milton/pruebas/file~» borrado
«/home/milton/pruebas/core» borrado
«/home/milton/file#» borrado
«/home/milton/file.o» borrado
«/home/milton/file~» borrado
Listo!

En el ejemplo de ejecucion hago uso del comando touch para crear los ficheros especificados (en caso de no existir), estos archivos en principio se encuentran vacios y con permisos de lectura y escritura para el dueño del fichero, grupo al pertenece el dueño y demas usuarios. Posteriormente hago uso del comando pwd para conocer mi ubicacion actual, a continuacion “invoco” al script rmnull quien hara el trabajo de limpieza de manera automatizada.

3 min read