Un netbook como servidor (III)

Continúo con las pequeñas incidencias con las que me encontré al instalar un servidor GNU/Debian en un netbook. En el anterior post mencionaba la instalación del servidor SSH y asignar una IP fija y nombre de host reconocible y que pudiera recordar. Pero me encontré con algún problema más:

  1. Apagar la pantalla TFT o LCD, ya que no la voy a utilizar
  2. Evitar que entre en suspensión al bajar la tapa del netbook
  3. Configurar Wake on LAN en el netbook

Continuar leyendo “Un netbook como servidor (III)”

Un netbook como servidor (II)

1454273012_cloud-laptopDurante el tiempo que estuve configurando mi viejo EeePC 701 como servidor casero, me encontré con varios problemas que tuvieron su solución. Esto contrasta con la variedad de soluciones y tutoriales que circulan para montar un servidor en una Raspberry Pi. Cada portátil, laptop o netbook tienen sus peculiaridades, no siempre bien documentadas, por lo que hay que echarle imaginación, inventiva y paciencia para buscar en Internet la solución a un determinado problema.

Los pasos básicos que di para llegar a convertirlo en servidor están en esta entrada de 2011, pero que no se diferencia en prácticamente nada a la instalación que hice en mi propio netbook.

Continuar leyendo “Un netbook como servidor (II)”

Un netbook como servidor (I)

1454269955_laptopLlevo tonteando con adquirir una Raspberry desde que leí un facilísimo tutorial sobre cómo montar un NAS (Network Attached Storage) en Debianhackers. Me parece muy interesante la idea de tener un servidor de muy pocos recursos en casa, permanentemente encendido para servir archivos, hacer copias de seguridad, o usar de servidor multimedia. Mis miedos se dirigían hacia el consumo de recursos y a tener un disco duro permamentemente encendido.

Ambos problemas tienen solución. Probablemente, una Raspberry Pi consume tanto como un router o un switch conectado a la red. Apenas hace ruido (no tiene ventiladores: menos ruido, menos consumo) y tiene una altísima conectividad (HDMI, USB, etc). Es la placa ideal para tener un servidor casero, por no hablar del mínimo espacio que ocupa.

Continuar leyendo “Un netbook como servidor (I)”

GNU/Debian 8 Jessie instalado, pero…

1430453022_MatalicComo todos sabéis, el 25 de abril se liberó oficialmente la nueva versión de GNU/Debian, la número 8, apodada Jessie. En otras circunstancias, esto habría sido motivo de celebración entre la comunidad GNU/Linux y de software libre, pero su lanzamiento ha quedado deslucido por la polémica de la adopción de systemd y la aparición de un fork, Devuan.

Como hace bastante tiempo que me tomo la vida de una manera más tranquila y he dejado de ser tan activista del software libre, no haré un estudio pormenorizado de la polémica a favor o en contra de systemd. Por supuesto que tengo una opinión formada, pero dese el punto de vista más amateur, ya que no soy ingeniero de sistemas ni informático de profesión.

Sé que systemd se cargó mi instalación de Archlinux hace un par de años. Lo acogí con la ilusión de que el sistema iba a ser más estable y más manejable, pero se ralentizaba y daba multitud de errores, así que terminé por conservar la partición /home y reinstalar Debian, que nunca me había dado problemas.

Por probar, estuve tonteando con Linux Mint (perdón, con LMDE), porque no dejaba de ser Debian, y no me parecía mal la idea de tener una distribución testing en lugar de la stable de toda la vida. a partir de ahí siempre me he movido con la testing, desde Wheezy hasta Jessie, y en cuanto pueda, me pasaré a Stretch.

Continuar leyendo “GNU/Debian 8 Jessie instalado, pero…”

Ejecutar comandos de Linux mediante Python

1429409720_application-x-pythonComo opinión personal, y sin que sea el motivo de crear una disputa entre unos y otros, creo que PHP es más tolerante a errores que Python. Claro, que digo esto porque llevo únicamente un par de semanas dedicado a Python, y aunque como lenguaje de programación me parece sencillo de usar y aprender, creo que escupe errores constantemente, y que a veces encontrar el error no es tan intuitivo como pudiera parecer.

Pero una vez mencionada mi opinión personal, es hora de ponerme al tema del post. Resulta que he encontrado como incentivo para aprender Python el uso de este lenguaje en todos mis scripts de shell que tengo para mantenimiento de mis sistemas. En ocasiones, me doy cuenta que lo que en un script de shell me lleva únicamente 4-5 líneas, en Python me lleva casi el triple, y sin dejar de escupirme errores en la consola. Visto desde el lado bueno, no sólo aprendo a usar Python, sino que si en alguna ocasión necesito complicar el script, posiblemente Python me ofrezca más potencia para hacerlo.

He comenzado a pasar mis scripts a Python, pero sin fijarme en la versión del mismo. Resulta que cuando me di cuenta, estaba programando en Python 2, cuando prácticamente todo el mundo programa ya en Python 3. Esto es importante porque el módulo que se utiliza para usar la línea de comandos está obsoleto en Python 3. Aun así, lo explicaré para ambas versiones.

Continuar leyendo “Ejecutar comandos de Linux mediante Python”

Git para uso personal en Debian (II)

1427946407_bitbucketLa breve introducción que hice en el último post es un acercamiento inicial a cómo funciona Git. Por supuesto, no pretende ser exhaustivo, porque hay manuales mejores que el mío, y que además lo explican muy bien, con dibujitos y todo. En el post de hoy explicaré algo que no hice en la primera parte: de qué va eso de las ramas (branches) y cómo subir nuestro repositorio a un servidor remoto.

Sigo pensando que esto no es una explicación de alto nivel para usar Git. Es la manera en que yo uso Git y cómo me ayuda a mantener ordenados mis propios proyectos.

Es importante conocer que aún estamos trabajando en local, no en remoto.

Creación de ramas

Branching es la creación de ramas. ¿Para qué sirve una rama? Nosotros estaremos editando nuestros archivos de manera local, en la rama principal o master, hasta que aparezca una idea nueva, un nuevo experimento o simplemente queramos hacer una prueba para ver si funciona de determinada forma. Así, tendremos una rama master y una rama de prueba, que podremos llamar como nos dé la gana. Si la idea funciona, la podremos unir con la rama master y seguir programando. Si ha sido una mala idea, no volvemos a tocarla y seguimos programando en la rama principal. Un ejemplo sería el de este gráfico:

Continuar leyendo “Git para uso personal en Debian (II)”

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.

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.

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.

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.

Continuar leyendo “Instalación y puesta en marcha de XAMPP en Debian testing”