RStudio Server y uso de R en red, en Debian Wheezy

Dispuesto a instalar RStudio en un ordenador del trabajo, entré en la dirección de RStudio para bajar el programa en Windows. Sin embargo, advertí la presencia de la posibilidad de instalar RStudio para su uso en red, cuando se tiene un servidor Linux. Curiosamente, tenemos un servidor GNU/Linux con un Debian que funciona de perlas en el trabajo, así que se me ocurrió instalar RStudio para tener las siguientes ventajas:

  • Puedo acceder vía web desde cualquier equipo, da igual el sistema operativo que presente
  • Puedo guardar mis archivos en una ubicación centralizada del servidor, y dejar de depender de las copias que pueda guardar de manera local en cada equipo (lo habitual es tener treinta copias o más, con sus diferentes versiones, pupulando entre los equipos, ya que todos los ordenadores son de todos).
  • Supone un reto (y posiblemente esto invalida el resto de los anteriores argumentos).

Las instrucciones son bastante sencillas, y aunque tuve que lidiar con el proxy que tenemos para poder actualizar mediante apt-get, la verdad es que fue bastante rápido.

En primer lugar, actualizamos el sistema:

apt-get update && apt-get upgrade -y

Instalamos R y (por si no estaba instalado), sudo:

apt-get install r-base sudo

Si estamos en Wheezy, hay que instalar OpenSSL 0.9.8, que no existe en Wheezy, pero sí en Squeeze:

wget http://ftp.us.debian.org/debian/pool/main/o/openssl/libssl0.9.8_0.9.8o-4squeeze14_i386.deb
dpkg -i libssl0.9.8_0.9.8o-4squeeze14_i386.deb

Recomiendo visitar la página de instalación de OpenSSL, porque el paquete es diferente según la arquitectura de nuestra máquina, y esta página de soporte de RStudio, ya que Ubuntu y Debian necesitan diferentes dependencias.

Luego nos bajamos y nos instalamos RStudio-Server:

wget http://download2.rstudio.org/rstudio-server-0.98.1103-i386.deb
dpkg -i rstudio-server-0.98.1103-i386.deb

Ya se puede configurar el servidor:

nano /etc/rstudio/rserver.conf

Y añadir lo siguiente:

# 8787 es el puerto por defecto, pero se puede modificar
 www-port=8787
# Permitimos el acceso desde toda la red; se puede especificar
# la dirección desde la que se puede entrar
 www-address=0.0.0.0

Ahora reiniciamos:

rstudio-server restart

Más sobre Configurar RStudio-Server.

Finalmente entramos en el servidor desde la dirección IP del servidor, pero indicando el puerto:

http://10.35.95.160:8787

captura_RStudio

Más sobre el mantenimiento y comandos de administrador para RStudio-Server.

RStudio Server y uso de R en red, en Debian Wheezy

Navegar e instalar paquetes en Debian, tras un proxy

Creo que este es el tercer post referente a la configuración de Debian 7 (Wheezy) cuando estamos tras un proxy, pero volveremos a repetirlo. En mi trabajo cambian frecuentemente de configuración de Internet, de IPs y demás cosas, y es bastante cansado reconfigurarlo todo, así que de nuevo vuelvo a poner una referencia básica para poder navegar sin problemas y poder bajar paquetes, tanto mediante apt-get como mediante wget.

Solamente hay que editar dos ficheros. El primero de ellos es el /etc/apt/apt-conf, en el que hay que añadir lo siguiente:

Acquire::http::Proxy "http://usuario:password@172.22.200.10:8080/";
Acquire::https::Proxy "http://usuario:password@172.22.200.10:8080/";
Acquire::ftp::Proxy "http://usuario:password@172.22.200.10:8080/";

La configuración es sencilla. Indicamos, por este orden, usuario, password, dirección IP del proxy y el puerto de escucha. Con este fichero nos aseguramos que podemos instalar paquetes y hacer update y upgrade.

Si queremos bajar mediante wget, hay que modificar el fichero /etc/bash.bashrc, y añadir al final algo como esto:

export http_proxy=http://usuario:password@172.22.200.10:8080/
export https_proxy=http://usuario:password@172.22.200.10:8080/
export ftp_proxy=http://usuario:password@172.22.200.10:8080/

En teoría, se puede usar wget y se puede navegar. Es posible que algún navegador utilice el proxy del sistema (Chromium, sin ir más lejos) y no se le pueda configurar al estilo de Iceweasel o Firefox. Aunque no sea necesario, no está de más configurar las variables de entorno en /etc/environment y añadir esto:

http_proxy=172.22.200.10:8080
https_proxy=172.22.200.10:8080
ftp_proxy=172.22.200.10:8080

Así, los navegadores detectarán el proxy y aparecerá un prompt para introducir nombre y contraseña.

Navegar e instalar paquetes en Debian, tras un proxy

CodeIgniter 2.x y PHP 5.6.0

Como advertí en mi anterior post, doy la solución para el molesto problema de la actualización a PHP 5.6, que hacía inusable completamente las aplicaciones creadas con CodeIgniter 2.x. El error consistía en que nada más ejecutar la aplicación web, aparecía el siguiente error, que además impedía que la aplicación funcionase:

A PHP Error was encountered
Severity: Notice
Message: Only variable references should be returned by reference
Filename: core/Common.php
Line Number: 257

Captura de pantalla - 160614 - 17:05:29

 

La búsqueda fue bastante infructuosa, y hasta hace un par de días, nadie respondió a un llamamiento en los foros de Ellislab (el equipo creador de CodeIgniter). Varias soluciones se habían propuesto, pero ninguna era efectiva. Este pequeño arreglo es lo que he utilizado, de modo que ahora puedo continuar usando mi instalación de Lighhtpd, PHP y MySQL, proporcionadas por Debian.

El error se refiere a la línea 257 del archivo /system/core/Common.php, que dice esto:

return $_config[0] =& $config;

Lo que hay que hacer es sustitutirla por:

$_config[0] =& $config;
return $_config[0];

Después de esto, la aplicación funciona correctamente.

CodeIgniter 2.x y PHP 5.6.0

Instalación y puesta en marcha de XAMPP en Debian testing

1403450164_source_php

Hace una semana aproximadamente ejecuté la actualización periódica de mi Debian testing. Casi nunca ttengo problemas, porque la versión testing es casi tan estable como la Debian stable, pero con software más actualizado. Lamentablemente, una de las actualizaciones fue la de PHP, que se actualizó a la versión 5.6.0-beta3. Resulta que el framework quu utilizo, CodeIgniter, tanto en su versión 2.1.4 como en la 2.2, tiene problemas con esa nueva versión de PHP. Así, descubrí con horror que todas las aplicaciones que había construido con CodeIgniter daban error.

Al principio no sabía si era del servidor web o del PHP o de la propia aplicación. Es un error no sólo molesto, sino que impedía utilizar la aplicación completamente. Tras un par de horas de búsqueda, vi el error en numerosas páginas (probablemente porque estaban programadas con el framework CodeIgniter), pero no vi ninguna solución útil, aunque de algo sí me sirvió la búsqueda: el problema era de incompatibilidad entre CodeIgniter y PHP 5.6.0. El error en cuestión era el siguiente:

A PHP Error was encountered
Severity: Notice
Message: Only variable references should be returned by reference
Filename: core/Common.php
Line Number: 257

Captura de pantalla - 160614 - 17:05:29

 

De todas las estrategias que vi, me llamaron dos la atención:

  • Hacer un downgrade a cualquier versión de PHP funcionante;
  • Eliminar de mi equipo el servidor web, el servidor MySQL y PHP, e instatar, por ejemplo XAMMP.

Continue reading “Instalación y puesta en marcha de XAMPP en Debian testing”

Instalación y puesta en marcha de XAMPP en Debian testing

Modificar la caducidad de las sesiones en PHP (I)

1376240811_Clock4Desde que utilizo CodeIgniter para programar, no suelo tener problemas con la duración de las sesiones o de cualquier otro problema que tenía al trabajar con PHP directamente. Una de las ventajas de los frameworks es que hay un montón de cosas que dejan de preocuparme, porque sé que la aplicación ya se ocupa de ellas. Una de estas cosas es al duración de las sesiones y la propagación de los datos almacenados en la sesión.

Al crear mis antiguas aplicaciones en PHP, solía controlar la duración de las sesiones con únicamente un parámetro, session.gc_maxlifetime, que por defecto está ajustado a 1440 segundos (24 minutos), ya que lo cambiaba a 7200 segundos (dos horas, o 120 minutos).

Continue reading “Modificar la caducidad de las sesiones en PHP (I)”

Modificar la caducidad de las sesiones en PHP (I)

Sin sonido en Debian Wheezy (solucionado, claro)

1370215477_kmixdockedHace un par de días hice una actualización de las gordas para mi Debian. Pasé de Squeeze a Wheezy, y lo primero que falló fue el sonido. No me sorprendió en exceso, porque realmente es un mal menor. Cuando instalé Squeeze, hace ya un par de años, el sonido se configuró automáticamente, con PulseAudio. No tuve que modificar absolutamente nada. Ahora que he hecho una actualización de versión a Wheezy, el sonido ha dejado de funcionar. Como digo, no me sorprende, porque es un problema común cuando se instala Wheezy o cuando se actualiza.

Afortunadamente hay una manera sencilla de arreglarlo, o por lo menos a mí me ha resultado sencilla. Tomé como base el post que había escrito hace dos años, en que en la primera instalación de Squeeze, el sonido no funcionaba. En aquel momento tuve que descargar, compilar e instalar los paquetes de ALSA que indicaba. Era un proceso laborioso y pesado, en el que había que descargar 4 paquetes y compilarlos uno por uno.

En Wheezy sólo tuve que instalar un par de paquetes vía apt-get y luego bajar y compilar alsa-driver. Reinicié y luego funcionó todo.

Continue reading “Sin sonido en Debian Wheezy (solucionado, claro)”

Sin sonido en Debian Wheezy (solucionado, claro)

Chrome (o Chromium) en Debian Wheezy tras un proxy

1370214429_chromium-browserDesde que hace menos de un mes la versión 7 de GNU/Linux Debian se ha convertido en la versión estable, he actualizado la máquina Debian que tenía en el trabajo. Aunque en casa ya estaba utilizando la versión testing (hasta hace un mes, Wheezy), en el trabajo es esencial la estabilidad, así que de momento sigo siendo estable.

El caso es que pasar de Squeeze a Wheezy es trivial:

apt-get update
 
apt-get upgrade
 
apt-get dist-upgrade
 
apt-get autoremove
 
apt-get dist-upgrade

Sin embargo hay cosas que dejan de funcionar, por ejemplo, el sonido, aunque para eso ya tengo una entrada preparada próximamente.

Otra de las cosas que tuve que volver a configurar era la conexión de Chrome o de Cromium, si decidimos no instalar la última versión desde los repositorios de Google. Mientras que Iceweasel (Firefox en el mundo no-Debian) permite configurar un servidor proxy, Chromium no lo permite, sino que utiliza el proxy del sistema.

La vieja manera de configurar un proxy para el sistema no sirve:

export http_proxy=http://usuario:password@172.21.79.39:8080

Así que no tuve más remedio que arrancar cada instancia de Chromium indicando que iba a usar un proxy:

/usr/bin/google-chrome --proxy-server=http://172.21.79.39:8080

Este comando se pone en el acceso directo de la barra de tareas.

Captura de pantalla - 020613 - 20:09:45

He de advertir que en Chrome/Chromium no se puede definir bien el usuario y la contraseña, de modo que siempre que abramos el navegador, nos saldrá el prompt para indicar login y password. Pero es un mal menor.

Chrome (o Chromium) en Debian Wheezy tras un proxy

Grabar una ISO desde consola

1362449478_consoleAprovechando que Brasero no me termina de convencer, sigo grabando CDs desde la consola. Ya hace casi un año escribí una entrada sobre los problemas que me daba Brasero, y que no he terminado de arreglar, por eso sigo con la consola. El caso es que me sigue sorprendiendo la facilidad, la fiabilidad  y la rapidez con que se hacen las cosas desde la consola, de modo que retomo las explicaciones para el uso de la consola para grabar CDs.

En mi caso, por razones que ya contaré más adelante, he decidido despedirme de Archlinux (quiero pensar que es un hasta luego y volver a poner Debian en el portátil.

No tengo ninguna duda, o Debian o nada. Como mucho, podría instalar Linux Mint, pero resulta que Linux Mint Debian Edition ya no viene con XFCE, sino con MATE (fork de Gnome 2) o Cinnamon (fork de Gnome 3).

Así que me he decido por instalar Debian testing (Wheezy, en estos momentos) con XFCE como escritorio.

Después de bajarme la ISO desde el Torrent (sigo alucinando por la velocidad que alcanza esto), llega la hora de grabar la ISO:

Comprobemos cuál es nuestro dispositivo:

wodim --devices

Saldrá una cosa así:

wodim: Overview of accessible drives (1 found) :
-------------------------------------------------------------------------
 0 dev='/dev/sg0' rwrw-- : 'HL-DT-ST' 'DVDRAM GSA-4081B'
-------------------------------------------------------------------------

En mi caso es /dev/sr0, pero puede ser/dev/cdrom, /dev/scd0, etc.

wodim -v -dao speed=1 -eject dev=/dev/sro -data debian-6.0.7.iso
Grabar una ISO desde consola

Carpetas de usuario de Gnome/XFCE

1357628548_user-homeAunque la configuración que nos deja Debian nada más terminar de instalar el sistema operativo en más simple que el mecanismo de uso de los chupetes, con los iconos iguales de feos, uno puede remozar un poco la estética del Escritorio y de sus entorno gráfico. En mi caso, que uso XFCE, me gusta mucho su simplicidad, pero también agradezco cualquier ayuda a la navegación y al uso de carpetas y ficheros.

Las carpetas personales o carpetas de usuario las vi por primera vez en Gnome, cuando Gnome y Debian se querían. Son carpetas dentro de nuestro directorio de usuario que llevan un icono en relieve que nos indica el contenido. Estas carpetas, aunque suelen venir por defecto en una instalación limpia de Gnome o de XFCE, a veces no aparecen, porque hemos estado manipulando nuestra carpeta /home o algo semejante.

El caso es que por defecto aparecen así:

captura-de-pantalla-191112-12-57-54-467281.jpg

Vemos que en esta captura de pantalla se utiliza también los iconos Faenza, y que cada carpeta tiene un distintivo característico, que hace que sepamos qué contenido tiene cada una. Esto no sólo en una ayuda a la navegación, sino que cualquier programa va a encontrar en qué carpeta tiene que guardar las fotos, ya se llame Fotos, Imágenes o Pictures, , o dónde descargar la música, tanto si se llama Música como Music.

En ocasiones, como digo, esa configuración se pierde, y el sistema no sabe qué carpeta utilizar por defecto. Esto se configura en $HOME/.config/user-dirs.dirs. Editamos el archivo:

nano /home/rafalinux/.config/user-dirs.dirs

Y lo que nos aparece es algo como esto:

Captura de pantalla - 080113 - 01:56:39

Desde aquí ya podremos manejar que carpetas queremos que sean las preconfiguradas para contener los archivos personales.

Lo bueno de esto es que cada vez que le hacemos un cambio de theme al Escritorio, estos iconos se nos actualizan automáticamente.

Carpetas de usuario de Gnome/XFCE

Slim en GNU/Debian Wheezy

1357624336_preferences-system-loginSi bien es cierto que ya he comentado cómo configurar XFCE en Archlinux,últimamente estoy volviendo a utilizar más Debian como distribución principal, y me estoy encontrando que no lo tengo muy configurado. Para lo poco que utilizaba la máquina que tenía Debian, no valía la pena ponerme a configurar cosas.

De hecho, las últimas peripecias con discos duros y recuperaciones del sistema de archivos llevan la impronta de haberlas hecho desde Debian. Sigo pensando que Debian es lo más estable que he utilizado jamás. Espero que dentro de unos días pueda escribir algo sobre mis últimas y frustrantes experiencias con Archlinux.

Instalar Slim es sencillo:

apt-get install slim

En esta ocasión no tenemos el paquete slim-themes, que sí teníamos en Archlinux. Si queremos algún theme, tendremos que visitar la página de Slim. Los temas que nos podremos bajar de allí están comprimidos, y habrá que descomprimirlos en:

/usr/share/slim/themes

Si navegamos hasta allí podremos ver que ya hay algunos themes instalados, sin embargo he de decir que son feos. Son muy feos. Así que lo mejor es bajarse algunos, o liarse la manta a la cabeza y crearse uno (no es nada difícil).

Para saber cómo nos quedarán los themes instalados:

cd /usr/share/slim/themes
slim -p debian-joy

Cambiaremos debian-joy por el nombre del theme correspondiente. A mi me gustó mucho un theme que encontré en Desde Linux. Básicamente, lo que tendremos es un montón de themes colgando del directorio antes mencionado:

/usr/share/slim/themes/[nombre_del_theme]

Ahora hay que decirle a Slim que nos gusta ese theme. En Debian configuraremos el slim.conf:

nano /etc/slim.conf

En mi caso particular, lo que he modificado ha sido lo siguiente:

numlock             on
 
welcome_msg         Bienvenido a %host
 
default_user        rafalinux
 
focus_password      yes

Estas modificaciones son para facilitar el uso, casi siempre. Siempre es agradable tener una ventana de login agradable, pero soy de los que piensan que siempre tiene que haber una ayuda a la utilización de cualquier sistema. Con esta configuración le he dicho a Slim que me haga un auto-login, pero sin poner la contraseña, de modo que cuando entre en el sistema, sólo tenga que teclear el password.

Y realmente ya hemos terminado. En /etc/slim.conf ya está configurado el comando para entrar en la sesión:

login_cmd exec ck-launch-session /bin/bash -login /etc/X11/Xsession %session

Este comando no hay que tocarlo (al contrario que en Archlinux, que debíamos tocar varios archivos de inicio para que Slim nos iniciara la sesión correctamente).

Slim en GNU/Debian Wheezy