Archive for category Linux

‘Wirelessgeist’ en un Giada N10 (Ahtec)

Hace cosa de dos meses escribía una pequeña comparación entre los mini-PCs Ahtec N10 y Acer Aspire Revo. Al final del artículo ya ponía que, aunque el modelo de Acer tuviera detalles técnicos que lo hacían interesante, el ordenador de Ahtec me tenía totalmente encandilado.

A los pocos días fui a comprar el ordenador y la verdad es que es una pasada. Si bien se hecha de menos un poco de rendimiento cuando tienes bastantes cosas abiertas (sobretodo el OpenOffice), el ordenador es muy práctico y se puede meter en cualquier rincón ahorrando mucho espacio. Un detalle que me encanta de este equipo es el bajo nivel de ruido; comparado con mi antiguo Pentium-IV es como si lo tuviese siempre apagado (true story: un dia intenté encenderlo cuando ya lo estaba!).

Pues bien, el equipo funciona de puta madre a las mil maravillas con Ubuntu 10.04 pero hace unos días dejaron de funcionar las conexiones vía Wi-Fi. Todo parecía correcto, el comando ‘lspci’ mostraba información correcta sobre el dispositivo -para vuestra información, este equipo monta una RealTek RTL8187SE-, los logs del sistema no arrojaban ningún error pero el equipo no detectaba ninguna red.

He intentado reinstalar el SO, instalar otra versión de Ubuntu, compilar versiones diferentes del driver, arrancar versiones Live de las principales distribuciones para ver si funcionaba; vamos, que lo he probado todo menos instalar el driver mediante ndiswrapper, pero eso no lo pienso hacer (y menos sabiendo que el dispositivo tiene soporte en el kernel distribuido actualmente en Ubuntu 10.04).

Como nada de lo descrito había funcionado me veía llevando el equipo al servicio técnico… pero antes de ir, realicé una pequeña prueba de forma instintiva: Desconectar el equipo de la red eléctrica.

Exacto… funcionó… el equipo ha vuelto a su rendimiento habitual y las redes Wi-Fi han vuelto. ¿Conclusión? Me hubiese ahorrado unas cuantas instalaciones de diferentes distribuciones de Linux y un montón de tiempo si se hubiese ido la luz durante unos pocos segundos. Antes de empezar a reinstalar cosas desconectad el equipo de la corriente, sacad la batería si es un portátil, os puede ahorrar un montón de tiempo!!!

Lo dicho: True Story

, , , , , , , , ,

3 Comments

Oracle VirtualBox 3.2

Leo en Ubuntulife que ya ha salido la primera versión de VirtualBox bajo la marca de Oracle. La versión 3.2 trae como principal novedad soporte experimental para huéspedes con Mac OS X. Creo recordar que, recientemente, la licencia de Mac OS X Server abrió la puerta a la virtualización (no así la versión estándar).

Hay más detalles acerca de las novedades y los bugs solucionados en la siguiente página. La descarga a través de esta otra.

Seguiremos vigilando cómo Oracle trata este proyecto…

, , ,

No Comments

Árbol de directorios en el terminal

Una de las cosas que más me gusta de Ubuntu es la facilidad con la que se puede cambiar el comportamiento de Nautilus. Quieres cambiar de vista? Crtl+2, quieres mostrar los archivos ocultos? Ctrl+h… y así con los atajos más comunes de este (en mi opinión) gran programa. Toda esta potencia viene por defecto con Nautilus así que hoy no entraré a comentar los plugins que se le pueden instalar (nota mental… hacer un post con addons interesantes para Nautilus).

Actualización: Leo en Ubuntulife un atajo que probablemente sea más útil aun que los que he comentado. Podeis leerlo en la entrada: Panel dividido en Nautilus Lucid

Uno de mis atajos favoritos es ctrl+2. Esta combinación de teclas nos permite navegar por nuestro árbol de directorios visualizando los diferentes niveles y mostrando o no el contenido de las carpetas. Es una visualización muy cómoda y que permite hacerse una idea de una estructura de directorios de una forma gráfica. La visualización en árbol es muy útil sobretodo cuando no has sido tú quien ha creado los archivos (por ejemplo en una instalación automatizada a través de un script).

Pues bien, hasta hoy, cuando tenia que trabajar con la linea de comandos, cada vez que tenía que comprobar una estructura de directorios me dedicaba a dibujarla en una libreta después de innumerables ls, cd .. y otros participantes invitados… Hasta hoy!!

Dando vueltas por la documentación buscando instrucciones de cómo instalar un software en Ubuntu me he topado con el comando tree. Este comando actúa de una forma similar a ls pero nos muestra el sub-árbol de directorios completo con diferentes niveles. Igual que a ls, también se le puede pasar como parámetro el directorio del que queremos hacer la consulta y si no pasamos ninguno se muestra el actual. Os dejo con una pequeña captura de pantalla para que os hagais una idea de los resultados del comando:

En Ubuntu 10.04 no viene instalado por defecto pero se puede instalar mediante:

$> sudo apt-get install tree

Otro post corto pero con algo que mejorará una barbaridad mi productividad!!

, , , , , ,

No Comments

Variables de entorno (locales) en Ubuntu

Hace tiempo subí un apunte para indicar cómo se podían definir variables de entorno en Ubuntu. El método explicaba un sistema válido para variables transversales de sistema (para todas las sessiones de usuario igual) pero requería privilegios de administrador (usuario root o permisos de sudo). Una limitación que no siempre podemos superar.

Este post intenta mirar el mismo tema desde un punto de vista más usuario-céntrico, es decir, setear variables de sistema para un usuario concreto sin necesidad de privilegios de administrador. Estas variables tienen otras ventajas (a parte de no requerir privilegios de administrador) que no podemos olvidar; por ejemplo: para cada usuario diferente del sistema podemos tener las mismas variables con valores diferentes.

Dichas variables se setean mediante la modificación del archivo .bashrc. Este archivo se aloja en el directorio del usuario (/home/usuario/.bashrc) y se ejecuta cuando el usuario abre una sesión en el sistema. Para añadir una variable de sesión sólo tenemos que añadir una línea al final del archivo con el código que normalmente utilizaríamos en BASH para realizar esta acción:

export VARIABLE=VALOR

Notamos entonces que el procedimiento no es almacenar una variable de entorno sino que cada vez que el usuario acceda al sistema se ejecutará un comando que la añada.

Para confirmar que las variables se han seteado de forma correcta, en el siguiente login del usuario, podemos ejecutar el comando que aparece a continuación y repasar la lista que se nos muestra en pantalla para localizar nuestra variable.

$> printenv

NOTA: Se puede forzar la ejecución de este archivo sin necesidad de reiniciar el sistema o desconectar al usuario con el siguiente comando:

$> source /home/usuario/.bashrc

Este es un tema sobre el que estoy seguro que ya se han escrito mil manuales y sus correspondientes entradas en blogs y foros pero espero que os ayude igualmente :-)

,

No Comments

Programar con Flex Builder en una Ubuntu de 64 bits

Adobe no tiene una versión estable de su IDE Flex Builder para Linux pero si existe una versión Alpha (bastante estable) de su plugin para Eclipse. Los puntos más negativos de este plugin son los siguientes:

  • No permite la edición visual de los archivos MXML (ni la previsualización).
  • Sólo se ejecuta con la versión 3.2 de Eclipse (Europa) y para una máquina virtual de java de 32 bits.

El primero de los puntos no se puede solucionar de ninguna de las maneras hasta que Adobe se ponga las pilas con la versión del IDE para Linux. El segundo de los puntos sí que se puede “arreglar” si estamos trabajando en una distribución de 64 bits (en nuestro caso para Ubuntu 9.10); en el siguiente artículo voy a describir el proceso que he seguido para poder programar en Flex con el plugin de Adobe en la versión 9.10 de Ubuntu (64 bits).

NOTA: El equipo donde he probado esta instalación ya tenia otras instalaciones de Java y librerías para compatibilizar software de 32 y 64 bits. Por este motivo no puedo asegurar que sólo siguiendo la instrucciones que vienen a continuación funcione todo correctamente.

Requisitos iniciales

Para poder realizar todo el proceso debemos descargar la versión 6 de Java (sobretodo de Sun) para Linux y la útlima Alpha para Linux del plugin de Eclipse de Adobe.

  • Sun Java JDK 6:
    Aquí. Descargar la versión para Linux (no Linux 64) y .bin (no .rpm.bin)
  • Adobe Flex Eclipse plugin:
    Aquí.

Una vez descargados se deben dar permisos de ejecución al instalador del plugin de Flex. Por ejemplo:

chmod +x ./flexbuilder_linux_install_a5_112409.bin

Otro requisito esencial para la instalación es tener el plugin de Flash en el sistema (versión 9 o superior) y Eclipse Europa en un directorio sobre el que tengamos permisos para “cacharrear”.

Instalar el JDK de 32 bits

Para instalar el JDK de 32 bits primero tenemos que instalar el paquete java-package:

sudo apt-get install java-package

Y generar el archivo desde el binario de java:

DEB_BUILD_GNU_TYPE=i686-linux-gnu DEB_BUILD_ARCH=i386 fakeroot make-jpkg jdk-6u18-linux-i586.bin

NOTA: Esta instrucción se debe ejecutar como un usuario sin permisos y es un sólo comando(!). En caso de ejecutarse como root falla.

NOTA 2: El archivo resultante de este comando llevará el postfijo amd64 pero esto no quiere decir que sea una máqunia virtual de Java de 64 bits, sigue siendo el JDK de 32 que hemos bajado de la página de Sun.

Una vez ejecutados estos pasos debemos instalar el paquete DEB generado mediante GDebi o con el comando dpkg -i nombre de comando. En mi caso el comando completo era el siguiente:

dpkg -i sun-j2sdk1.6_1.6.0+update18_amd64.deb

NOTA: El proceso de instalación puede resultar fallido pero seguramente el JDK estará instalado correctamente.

Instalar Flex Plugin para Eclipse

Una vez instalado el JDK podemos ejecutar correctamente el instalador de Flex. Este nos preguntará por algunos datos referentes a la instalación y, en los últimos pasos, es posible que nos diga que no tenemos la versión 9 de Flash instalada en el sistema.

Si anteriormente hemos instalado el plugin de Flash para Firefox es posible que se trate de una versión posterior y no la detecte; en ese caso aceptaremos el mensaje de alerta y seguiremos adelante (sino seguimos adelante igualmente y lo instalamos posteriormente desde los repositorios).

Restaurar la versión de Java por defecto y otros pequeños ajustes

Una vez se ha realizado la instalación tendremos la máquina virtual de Java de 32 bits como versión de Java por defecto. Para cambiar esto debemos utilizar el comando alternatives:

sudo alternatives –config java

Seguimos los pasos que se indican en la consola y ya tendremos restaurada la versión de Java que utilizábamos por defecto antes de la instalación de la de 32 bits.
Para arrancar Eclipse con el plugin ya no podremos hacer doble click sobre el ejecutable de nombre eclipse sino que tendremos que hacer un pequeño script (yo lo he llamado flex.sh). Este script corrige el problema de los botones de Eclipse en Ubuntu 9.10 y especificarà con que Java se ejecutará el IDE. A continuación muestro el contenido de mi flex.sh:

#!/bin/sh
export GDK_NATIVE_WINDOWS=1
/usr/lib/j2sdk1.6-sun/bin/java -jar /home/usuario/eclipse/startup_fb.jar

Evidentemente los PATHS pueden cambiar dependiendo de la configuración de la máquina, del directorio donde se haya instalado el Eclipse, etc.

Una vez creado flex.sh y con este contenido le tenemos que dar permisos de ejecución:

chmod +x flex.sh

Y ejecutarlo!!!

Espero que este proceso pueda ayudar en su totalidad o parcialmente ya que se tocan muchos puntos :)

, , , , , , ,

No Comments

Instalar PostgreSQL 8.3 en CentOS desde Yum

Trabajar con servidores Linux, muchas veces comporta trabajar con CentOS. CentOS es una distribución de Linux muy orientada a servidores corporativos y ofrece un rendimiento muy alto en una amplia gama de entornos.

Para trabajar con este sistema es mejor estar habituado al trabajo con el gestor de paquetes de Red Hat (RPM) y Yum, sino tendremos que buscar información sobre como manipular los repositorios y encontrar el software necesario para nuestras aplicaciones. En el siguiente artículo intentaré detallar como instalar un servidor de bases de datos PostgreSQL 8.3 en un CentOS 5.2 (mis pruebas se han realizado en una instancia de Amazon EC2 con una imagen de CentOS 5.2 proporcionada por RightScale).

Desactivar los repositorios por defecto de CentOS

Para poder instalar la versión 8.3 de PostgreSQL tenemos que deshabilitar los repositorios de PostgreSQL que vienen con nuestro sistema operativo. Si no hicieramos este paso es posible que sólo consiguiéramos instalar la vesión que proporcionan los paquetes de la distribución en cuestión.

Para desactivar dichos repositorios debemos editar el fichero /etc/yum.repos.d/CentOS-Base.repo. Yo lo hago con Nano porque me parece un editor más ligero que otros pero el editor cada uno prefiere el suyo:
$> nano /etc/yum.repos.d/CentOS-Base.repo
Y en las secciones base y updates tenemos que excluir PostgreSQL, Para ello añadiremos exclude=postgresql* al final de cada sección. Dichas secciones deben acabar pareciendose a lo siguiente:
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&rep$
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
exclude=postgresql*

[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&rep$
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
exclude=postgresql*

Añadir los repositorios de PostgreSQL 8.3

Una vez desactivados los repositorios por defecto debemos definir los nuevos repositorios. Para ello utilizaremos los RPM de la página de repositorios de PostgreSQL. En la página copiaremos en enlace de la última versión de la rama 8.3 y iremos a la línea de comandos:
$> cd /tmp
$> wget http://yum.pgsqlrpms.org/reporpms/8.3/pgdg-centos-8.3-6.noarch.rpm
$> rpm -ivh pgdg-centos-8.3-6.noarch.rpm

NOTA: Recuerda que debes cambiar la URL de descarga del paquete RPM por la que corresponda en el momento que realices la operación.

Instalar el servidor de base de datos

Una vez activados los repositorios tenemos que instalar el servidor de base de datos:
$> yum install postgresql postgresql-server
Es posible que en este paso nos de un problema de librerías por culpa de un paquete llamado apr-util. En este caso deberemos instalar primero este paquete (por separado) y luego volver a lanzar la instalación del servidor:
$> yum install apr-util
$> yum install postgresql postgresql-server

La solución al problema de dependencias no debería reproducirse si instalamos el servidor de bases de datos en estos dos pasos.

Arrancar el servidor y habilitar conexiones remotas

Para arrancar el servidor seguiremos los pasos siguientes:
$> service postgresql initdb
$> service postgresql start

Con esto ya tendremos el servidor de base de datos arrancado y aceptando conexiones en local, pero no podremos acceder al servidor desde conexiones remotas. Para habilitar las conexiones remotas debemos asegurarnos que no hay ningún tipo de bloqueo que no sea el del servidor Postgre, modificar dos ficheros y reiniciar el servicio. El primer fichero que vamos a modificar es /var/lib/pgsql/data/pg_hba.conf.

En pg_hba.conf se tiene que dar acceso a la red desde la que vamos a acceder (dirección IP), en el ejemplo vamos a usar 0.0.0.0/0 pero se debería cambiar por nuestra dirección para tener un control más estricto. Para dar acceso a una red añadiremos los siguiente al fichero:
host all all 0.0.0.0/0 trust

El segundo fichero que debemos modificar es /var/lib/pgsql/data/postgresql.conf. En este debemos buscar la línea que pone:
listen_addresses='localhost'
Y poner:
listen_addresses='*'

Una vez realizados estos cambios se tiene que reiniciar el servicio:
$> /etc/init.d/postgresql restart

En teoria, cuando el servicio arranque de nuevo debería ser posible establecer conexiones remotas al servidor con el usuario postgres y el password que le corresponda. En caso de que no se haya definido password para dicho usuario, éste se puede setear de forma manual. Como usuario ROOT ejecutamos el siguiente comando:
passwd postgres
El sistema nos pedirá que introduzcamos dos veces el password y listo! Espero que les sirva de ayuda.

, , , , , ,

No Comments

Modificar la cantidad de memoria disponible para Tomcat

El rendimiento por defecto de un servidor Tomcat 6 es, normalmente, bastante bajo. Hace un par de días estaba realiando unas operaciones de recuperación de una aplicación en la que estamos trabajando y el servidor tardó varias horas en finalizar unas operaciones bastante básicas. Normalmente estas operaciones, al tomar tanto tiempo, se dan por perdidas en algún tipo de “deadlock” y se abortan (a no ser que se tenga el conocimiento de que van a durar tanto); pero a mi se me quedó la aplicación abierta en segundo plano (lo se… soy un desastre) y al final terminó las operaciones.

Al observar este comportamiento, recordé que había unos parámetros de configuración del Tomcat que modificaban el tamaño inicial y máximo de la pila de Java para un proceso y me puse a rebuscar entre las configuraciones de los diversos servidores con Tomcat a los que tenía acceso para recuperar esta pequeña “customización”.

Para modificar el tamaño inicial y máximo de la pila de Java para Tomcat (6) debemos modificar el archivo catalina.sh dentro del directorio bin en la raíz del directorio que contiene la instalación del Tomcat. La línea para añadir es la siguiente:
JAVA_OPTS="$JAVA_OPTS -Xms64M -Xmx1024M"
NOTA: Es importante que esta línea se añada furea de cualquier IF-ELSE del documento. Yo siempre lo añado justo antes de una línea comentada que pone Execute The Requested Command entre guiones, pero esto ya es a gusto del consumidor ;-)

El número que va después de -Xms es el tamaño inicial de la pila y el que va después de -Xmx es el tamaño máximo de ésta. La “M” sólo es para indicar que las dimensiones se están dando en MegaBytes. Dependiendo de los recursos de los que goza la máquina dónde tengamos el Tomcat estos parámetros deberán cambiar pero, por norma general, seguro que conseguimos una mejora en el rendimiento de nuestro servidor de aplicaciones Java.

,

3 Comments

Problemas con Eclipse en Ubuntu 9.10

Si se trabaja con Eclipse, sea cual sea el lenguaje de programación que utilicemos, con el salto a Ubuntu 9.10 nos podemos encontrar que algunos botones dejan de funcionar correctamente.

Tanto con Eclipse como con otro software para Java (como Tomcat por ejemplo) soy partidario de descargar la versión adecuada del sitio web oficial. No es que no encuentre útil los paquetes .deb de los repositorios (para mi representan el 99% o más del software que tengo instalado en mi Ubuntu), sino que el software relacionado con Java me gusta tenerlo lo más “empaquetado” posible y conocer perfectamente dónde se han situado los archivos de configuración de dichos programas (a veces con el uso de apt-get perdemos un poco el control de dónde se encuentran algunos archivos de configuración).

Pues bien, como decía al principio de este apunte, con el paso a Ubuntu 9.10 he sufrido algún problema con muchas de las versiones de Eclipse (3.2, 3.4 y 3.5). El problema reside en que el programa parece no responder a según que botones. Para resolver este problema debemos crear un script (p.e: eclipse.sh) y poner los siguientes comandos:

#!/bin/sh
export GDK_NATIVE_WINDOWS=1
/path/a/eclipse/eclipse

Sustituyendo /path/a/eclipse/eclipse por la ruta donde se encuentra el archivo ejecutable de eclipse. Para arrancar damos permisos de ejecución a dicho archivo:

sudo chmod +x eclipse.sh

Y ejecutamos Eclipse desde consola o desde Nautilus con este script (siempre).

Con esto solucionaremos los problemas de los botones de Eclipse en Ubuntu 9.10
eclipse

, , ,

No Comments

Problemas al instalar Ubuntu 9.10 en un disco SATA

Con la llegada del Koala me ha surgido un problema para instalar Ubuntu en una máquina que tengo por casa.

Esta máquina tiene una placa base con dos puertos SATA, pero nunca he podido instalar Ubuntu (u otra distribución de Linux) con un disco de este tipo en modo nativo. Para instalrlo siempre he recurrido al modo RAID (desde la BIOS) para que me reconociera la unidad y no me había dado más problemas.

Después de ver que la actualización de 9.04 a 9.10 no funcionaba tan bien como me esperaba, me decidí a instalar el Koala desde cero. El problema era que en la pantala de definición de las particiones no aprecía la unidad SATA (un problema gordo si sólo tienes una unidad de este tipo). Para solucionar este problema decidí recurrir a los foros de ayuda de Ubuntu y, evidentemente, alguien había tenido este problema antes y aquí va la solución…

Instalar Ubuntu 9.10 en un disco SATA en modo RAID

  1. Arrancamos desde el CD de instalación de Ubuntu y entramos en modo Live CD (no instalación)
  2. Una vez arrancado el sistema desde el CD abrimos el terminal
  3. Eliminamos el paquete dmraid:
    sudo apt-get remove dmraid
  4. Arrancamos la instalación desde el icono del escritorio
  5. Instalamos el sistema con las unidades SATA presentes en el particionador

UbuntuKarmicKoala

Espero que os ayude :-)

, , ,

3 Comments

Tomcat 6 en Ubuntu

Este es un post corto para poner de manifiesto un opinión basada en la experiencia profesional que he recogido trabajando con este servidor de aplicaciones y Ubuntu (versiones 9.04 y 9.10)
apache-tomcat_logo_nomatte

Cuando trabajeis con Tomcat 6 bajo Ubuntu, seguid estos pasos:

  1. Eliminad TODO rastro de OpenJDK
  2. Instalad el paquete de Java de Sun (sun-java6-jdk en mi caso)
  3. Descargad el Core de la página oficial de Tomcat
  4. Descomprimid el paquete y ubicad los archivos en la carpeta /usr/share/tomcat6

Siguiendo estos pasos en lugar del facílisimo “sudo apt-get install tomcat6″ tendremos una instalación de Tomcat completamente “compacta”. En el momento que deseáramos llevarnos esta instalación de Tomcat a otra máquina sólo necesitaríamos copiar los archivos y comprovar que en la máquina destino tenemos una versión compatible de Java.

Para arrancar el servidor tendremos que ejecutar como root ‘startup.sh’ en el directorio ‘/usr/share/tomcat6/bin/’ y para pararlo ‘shutdown.sh’ en el mismo directorio.

Disfrutad de vuestro Tomcat 6 ;-)

, ,

No Comments