¡Feliz día de Debian #23!

Logo de Debian

Hoy 16 de agosto, como cada año, se celebra el día de Debian, porque hace exactamente 23 años se fundó este proyecto.

Debian "El sistema operativo universal" es uno de mis sistemas operativos (o distribuciones de GNU/Linux, como perefieras llamarle) favoritos. Lo uso en en este servidor web y lo usé durante mucho tiempo en mi PC, hasta que me cambié a Arch Linux hace poco más de un año. De hecho, mi primier distro fue Ubuntu, que es derivado de Debian.

Este día se celebra normalmente instalando Debian (¡duh!) o con eventos en varias ciudades del mundo (lástima que el que tengo más cercano es en la Ciudad de México, por lo que no es factible que asista a alguno). Pero también puedes celebrarlo viendo Toy Story, ya que las versiones de Debian llevan nombres de los personajes de ésta película, o informándote con la línea del tiempo oficial y con esta infografía:

Infografía de Debian

Y si tienes habilidades artísticas, deberías hacer un wallpaper para la próxima versión "Debian Stretch".

Muchas cosas importantes han salido de este proyecto, como el sistema de paquetes deb y muchas otras distribuciones de GNU/Linux. Quién sabe que le espera en los próximos años...


¡Hola Debian!, ¡Hola nginx!, ¡Hola Ghost!

Este fin de semana decidí cambiar un poco el cómo funcionan las cosas en mi servidor.

Primeramente quise limpiar todo, así que formateé y de paso cambié Ubuntu 14.04 por Debian 8.1. Yo quería instalar Arch Linux, pero resulta que Digital Ocean ya no ofrece droplets con esta distro, así que me tuve que conformar con el "sistema operativo universal".

Otro gran cambio fue de Apache a nginx. Esto fue porque quiero tener la posibilidad de desplegar fácilmente programas hechos en Node.js, y había escuchado que nginx era mi solución. Además no uso PHP (me da miedo ese lenguaje del diablo), así que no perderé mucho.

PHP

(Disculpen el JPEG de la imagen).

En el poco tiempo que llevo con nginx, me he dado cuenta de que, cuando menos desde mi punto de vista, es mucho más sencillo de configurar que Apache. Esto me está gustando.

Por último, como instalé nginx, pensé que era hora de instalar Ghost como el CMS de este blog. Desde que inicié con este sitio, quise instalarlo, pero Apache no se dejó y tuve que conformarme con Wordpress.

No es que Wordpress fuera malo, al contrario, tiene muchísimas más features que Ghost. Pero la verdad yo no necesito tanto, y la simplicidad de Ghost es lo que me ha enamorado.

Lo único que me dio flojera fue tener que respaldar y mover todo. Pero ya quedó (creo).


Compartir conexión inalámbrica via ethernet en GNU/Linux

Nota: Esta entrada fue publicada el 19 feb de 2015 @ 01:23 en un blog que tenía anteriormente en Wordpress, y republicada aquí para el record.


Estaba ayudando a un amigo a instalar Debian en su laptop y resultó que su adaptador de Wi-Fi no tiene drivers libres y, por lo tanto, para instalar Debian Jessie netinst (la única ISO que teníamos a la mano), necesitábamos conectarnos por ethernet. Lamentablemente, nos encontrábamos en uno de los salones de CETYS sin conexión de ethernet (les juro que CETYS tiene conexiones de ethernet en los lugares más inútiles, pero nunca donde los necesitas).

Me puse a buscar cómo compartir mi conexión inalámbrica por medio de ethernet. Askubuntu salió al rescate, pero parece que el "Linux para seres humanos" tiene esta función anormalmente accesible y en Debian tenemos que correr algunos comandos para lograrlo. Lo dejo escrito aquí, porque nunca se sabe cuándo puede ser útil.

Nota: Todos los comandos aquí mostrados deben ejecutarse como administrador.

Primero, en la computadora que va a compartir su red inalámbrica, se deben correr los siguientes comandos:

ifdown eth0
ifconfig eth0 192.168.10.1 netmask 255.255.255.0
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -F FORWARD
iptables -A FORWARD -j ACCEPT
iptables -nvL

Después, si queremos que la computadora servidor funcione como DNS y DHCP, se debe instalar dnsmasq:

apt-get install dnsmasq

y editar el archivo /etc/dnsmasq.conf agregando las siguientes dos líneas:

interface=eth0
dhcp-range=192.168.10.10,192.168.10.19,4h

Por último, reiniciamos dnsmasq:

/etc/init.d/dnsmasq restart

Con esto ya debería funcionar lo que queremos. Sin embargo, si no queremos que el servidor funcione como DNS, podemos simplemente ejecutar los siguientes comandos en el cliente:

ifdown eth0
ifconfig eth0 192.168.10.10 netmask 255.255.255.0 gateway 192.168.10.1
echo "nameserver 8.8.8.8" > /etc/resolv.conf

Cuando queramos deshacernos de esta funcionalidad, simplemente borramos las líneas que se agregaron (si es que se agregaron) a /etc/dnsmasq.conf y reiniciamos el sistema.


Instalar impresora en GNU/Linux

Nota: Esta entrada fue publicada el 21 dic de 2014 @ 02:57 en un blog que tenía anteriormente en Wordpress, y republicada aquí para el record.


Las impresoras generalmente vienen con software para Windows y OS X, pero se olvidan de nuestro pingüino favorito. El lado bueno, es que la mayoría de las distribuciones de GNU/Linux vienen preparadas para descargar automáticamente el software necesario para casi cualquier impresora (cualquier dispositivo, de hecho).

Tux, nuestro pingüino favorito

Formateé mi PC hace poco y me pasó lo mismo de siempre: por alguna razón siempre batallo para que funcione mi HP Lasserjet P1005, googleando encuentro la solución (que son dos simples comandos), pero ya me cansé de hacer eso si puedo simplemente postearla aquí para cuando la necesite. Supongo que esto funciona para cualquier impresora HP.

sudo apt-get install hplip
sudo hp-setup -i

"Instalar" programas en GNU/Linux

Nota: Esta entrada fue publicada el 19 dic de 2014 @ 16:46 en un blog que tenía anteriormente en Wordpress, y republicada aquí para el record.


Cuando uso GNU/Linux (Debian, en mi caso, que ya llevo casi un año con él) y quiero instalar algún programa, lo busco primeramente en los repositorios oficiales y lo instalo con un simple apt-get install, pero no siempre se puede hacer esto —ya sea porque ese programa no está en los repositorios, o porque es una versión antigua— y entonces es necesario descargarlos de otra fuente.

Muchas veces se descarga un ejecutable. Lo malo de esto es que no se "instala" y por lo tanto no aparece en el lanzador de aplicaciones de Gnome. A continuación voy a describir los pasos para hacer que el programa esté disponible para todos los usuarios desde el lanzador y, opcionalmente, disponible desde un comando en la consola. Estos pasos funcionan para todos los escritorios compatibles con freedesktop.org, entre ellos Gnome, Unity y KDE.

Primero se tiene que mover el programa al directorio /opt/

sudo mv programa /opt/

Luego, si queremos tener la posibilidad de correr el programa desde la consola, tenemos que crear un enlace simbólico en /usr/bin (en este caso el programa se ejecutaría con programa, porque el enlace que creamos se llama "programa")

sudo ln -s /opt/programa/ejecutable /usr/bin/programa

Finalmente, tenemos que crear un lanzador del programa, para que nuestro entorno de escritorio sepa qué hacer y donde buscarlo en caso de que lo queramos correr. Este lanzador es un archivo con extensión .desktop dentro de /usr/share/applications/. En este ejemplo, el archivo quedaría así:

[Desktop Entry]
Name=Programa
Exec=/opt/programa/ejecutable
StartupNotify=true
Terminal=false
Type=Application
Icon=/opt/programa/icono.png

Esta entrada fue inspirada por la de Picando Código, pero quise ampliar aún más su publicación. Siempre se me olvidan este tipo de cosas.