Habilitar url limpias de Drupal en OpenSUSE

Si partimos de una instalación limpia de un servidor LAMP en OpenSUSE, por defecto no tendremos el módulo rewrite de Apache activado, por lo que las url limpias de Drupal no nos van a funcionar. Para activarlas, hay que hacer lo siguiente:
1) Editar el fichero /etc/sysconfig/apache2
En la linea con APACHE_MODULES="actions… etc añadimos al final «rewrite» de forma que nos queda más o menos así:
APACHE_MODULES="actions alias auth_basic authn_file authz_host authz_groupfile authz_default authz_user autoindex cgi dir env expires include log_config mime negotiation setenvif ssl userdir php5 reqtimeout rewrite"

2) Editamos el archivo /etc/apache2/httpd.conf e incluimos las directivas que nos permiten activar el módulo rewrite en el directorio en que tenemos Drupal, por ejemplo:
<Directory /srv/www/htdocs/drupal7>
AllowOverride All
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?p=$1 [L,QSA]
</Directory></code>

3) Reiniciamos el servidor web con systemctl restart apache2.service y volvemos a probar en Drupal si ya tenemos disponibles las url limpias.

Deshabilitar el touchpad al escribir

Una de las cosas que más me molestan al trabajar con el netbook son los movimientos del cursor mientras estás escribiendo. Para evitarlo hay que hacer lo siguiente (en Crunchbang Waldorf, que es lo mismo que decir Debian 7 con Openbox):

Desplegar el menu principal de Openbox y entrar en Settings / Openbox / Edit autostart

Se nos abrirá el editor del fichero de configuración del autoarranque, en el que tendremos que incluir al final las siguientes líneas (la primera es un comentario):

## Deshabilitar el touchpad al escribir
syndaemon -d -i 1

Guardamos, y en el siguiente arranque del equipo ya tendremos deshabilitado el touchpad mientras escribimos. Lo que queremos decirle al controlador del touchpad es que lo deshabilite al escribir (opción -d) y que lo vuelva a activar un segundo después de pulsar la última tecla (opción -i 1).

Para saber qué más opciones hay podemos hacer man sysdaemon o visitar el foro de Crunchbang.

Controlar el volumen con el ratón en CrunchBang

Hace poco una entrada en Desdelinux nos enseñaba cómo tener un icono de volumen en Openbox mediante Volume Icon. Sin embargo, en Crunchbang GNU/Linux (Debian 7 + Openbox) podemos también tener un icono de volumen con PNMixer, el cual, además, es muy fácil de configurar para poder controlarlo usando el ratón.
En el archivo /home/jose/.config/openbox/rc.xml buscamos la etiqueta: <context name="Desktop"> y justo a continuación de la misma incluimos las siguientes líneas:
<mousebind button="S-Left" action="Click">
<action name="Execute">
<command>amixer sset Master toggle</command>
</action>
</mousebind>
<mousebind button="S-Right" action="Click">
<action name="Execute">
<command>amixer sset Master unmute</command>
</action>
</mousebind>
<mousebind button="S-Up" action="Click">
<action name="Execute">
<command>amixer sset Master,0 10%+</command>
</action>
</mousebind>
<mousebind button="S-Down" action="Click">
<action name="Execute">
<command>amixer sset Master,0 10%-</command>
</action>
</mousebind>

Guardamos el archivo, salimos de la sesión y cuando volvamos a entrar ya podremos controlar el volumen con el ratón.
Podemos configurar la acción que queramos con el ratón para controlar el volumen; en mi caso he decidido combinar junto con el ratón la tecla Shift (mayúsculas) para seguir dejando disponibles las acciones que ya vienen preparadas por defecto para el ratón. Por eso en el comando aparece «S+» antes de cada acción. Por otra parte, he visto que la forma más cómoda y efectiva de subir y bajar el volumen es usando el incremento/decremento percentual de 10 en 10 unidades, lo que permite subir/bajar el volumen de forma rápida. Si queremos un funcionamiento más suave, podemos disminuir el porcentaje. HAy que tener muy en cuenta que el control del volumen con el  ratón configurado de esta manera sólo funciona si el cursor se encuentra en una parte del escritorio libre de ventanas, o en la barra superior del Openbox.

Quitar el arranque automático de apache y mysql

Una vez instalado nuestro entorno de desarrollo LAMP, si nuestro equipo es viejito es posible que, para ahorrar recursos, queramos que los servicios apache y mysql no se inicien automáticamente en el arranque, sino arrancarlos manualmente cuando los necesitemos. En las distribuciones basadas en Debian el procedimiento sería como sigue:

(Entrada modificada el 19/8/2015 siguiendo las indicaciones de este blog, que están basadas en este otro blog. Las instrucciones que tenía mi entrada anteriormente eran incorrectas, muchas gracias a ambos por haberme sacado de mi error.)

Para el servidor Apache:
Ejecutar:
sudo update-rc.d apache2 disable
De esta manera se deshabilita el servicio y por lo tanto su arranque automático.
Para volver a habilitar el servicio:
sudo update-rc.d apache2 enable
No es recomendable usar el comando
sudo update-rc.d -f apache2 remove
porque lo que hace este comando es modificar los directorios /etc/rc0.d, /etc/rc1.d, etc. hasta el /etc/rc6.d (uno para cada uno de los niveles de ejecución) borrando los enlaces simbólicos que controlan el arranque de los servicios. Por ejemplo, si listamos el contenido del directorio /etc/rc6.d después de hacer el comando remove veremos que han desaparecido los ficheros /etc/rc6.d/K01apache2 y /etc/rc6.d/K01mysql. Si quisiéramos recuperar los ficheros borrados, habría que lanzar el comando:
sudo update-rc.d apache2 defaults

Tenemos que tener en cuenta que es posible que cuando posteriormente se instale una actualización de apache, nuévamente nos encontremos con que éste vuelve a arrancarse automáticamente en el inicio. En este enlace comentan que la forma de evitar ésto es lanzando el comando:
sudo update-rc.d apache2 stop 80 0 1 2 3 4 5 6 .
Pero yo no lo he probado.

Para el servicio de mySQL:
En este caso hay que editar el fichero /etc/init/mysql.conf y modificar la línea con
start on runlevel [2345]
para dejarla de la manera siguiente:
start on (never and runlevel [2345])

Para arrancar estos servicios, ejecutamos:
sudo service apache2 start
sudo service mysql start

Instalar Bluetooth en CrunchBang (Waldorf)

CrunchBang viene de serie con casi todo lo que necesito, sólo echo de menos el bluetooth, pero instalarlo es relativamente fácil, sólo hay que instalar los siguientes paquetes:
sudo apt-get install bluez bluetooth blueman
Blueman tiene su propio applet que se inicia por xdg (podemos comprobarlo ejecutando /usr/lib/openbox/openbox-xdg-autostart --list y viendo que la miniaplicación Blueman aparece marcada para el inicio automático), así que no tenemos que modificar nada más.
Cuando reiniciamos Openbox ya nos aparece el icono de conexión a Bluetooth. Pulsamos en él con el botón derecho y marcamos «Permitir descubrir». Después pulsamos de nuevo con el botón derecho en dicho icono y seleccionamos «Servicios locales…». En la ventana que aparece vamos a la pestaña «Transferir» y ahí podemos indicar la carpeta en la que queremos recibir los archivos y verificar que estén marcados los dos check de Recepción de archivo (Object Push): «Activado» y «Aceptar archivos de los dispositivos en que se confíe». Tenemos también que desplegar en la parte inferior la opción de «Avanzadas», pues por defecto viene indicado el navegador Nautilus y tenemos que usar Thunar, así que en el campo de texto que aparece tenemos que poner:
thunar obex://[%d]
Para confiar en un dispositivo pulsamos de nuevo en el botón derecho sobre el icono de bluetooth, seleccionamos «Dispositivos…» y si ya tenemos preparado nuestro móvil con el bluetooth encendido y visible, nos aparecerá en la lista. Pulsamos sobre él con el botón derecho y seleccionamos «Trust».
Y ya está. Ya podemos enviar archivos del móvil a nuestro ordenador y viceversa.

Drupal 5 con PHP 5.3

El gestor de contenidos Drupal en su versión 5 sólo es compatible con las versiones de PHP hasta la 5.2, por lo que los sitios web que continúan usando la versión 5 de Drupal no funcionarán correctamente en los servidores en los que se haya actualizado el PHP a la versión 5.3 o superior.
Como algunos de estos sitios no es posible actualizarlos a la versión 6 de Drupal (o no hay medios para hacerlo) la única forma de hacer que funcionen lo más correctamente posible es aplicando el patch que aparece explicado en este enlace.
Para instalarlo primero tendremos que descargarnos dicho patch, nos situaremos en el directorio raiz en el que tengamos instalado nuestro Drupal 5, y posteriormente lanzaremos el comando:
patch -p1 < <path_al_fichero>/drupal5php53_0.patch
En caso de que al aplicar el patch no se produjeran los efectos esperados, es posible revertir lo realizado con el comando:
patch -p1 -R < <path_al_fichero>/drupal5php53_0.patch
Para más información sobre la forma de aplicar «parches» en Drupal, consultar este enlace.

Instalar Jitsi en OpenSUSE

El servicio de mensajería instantánea Jitsi no está dentro de los repositorios de OpenSUSE, pero es una alternativa interesante a Skype si sólo queremos usar software libre, pues está disponible bajo una licencia LGPL.
Para instalarlo tenemos que descargar el paquete rpm desde la página de descargas de Jitsi. En mi caso me he descargado el paquete jitsi-2.0-latest.x86_64.rpm (para x86_64).

Antes de instalarlo es necesario tener instalado en el sistema el lenguaje Java, en principio podría funcionar tanto con el OpenJDK como con el Java de Oracle. Este último es el que tengo instalado, siguiendo las instrucciones de esta otra entrada.

A continuación lo mejor es instalar el rpm usando Yast mediante el comando:
sudo /sbin/yast -i /home/<nuestro_usuario>/Descargas/jitsi-2.0-latest.x86_64.rpm

Durante la instalación nos dará el error:
nothing provides java >= 1:1.5.0 needed by jitsi-2.0-4506.10553.x86_64
Lo obviamos, indicando al instalador que continúe rompiendo dependencias.
Una vez terminada la instalación, ya podemos usarlo. Permite cuentas de varios proveedores (Google Talk, XMPP, etc.).

Equivalencias entre apt-get y zypper

Como tengo el corazón dividido entre las distribuciones basadas en Debian y OpenSUSE, creo que no es mala idea tener a mano una guía de referencia entre los gestores de paquetes por consola de ambos mundos.

apt-get update ————> zypper refresh
apt-get -u upgrade ————> zypper update
apt-get -u dist-upgrade ————> zypper dist-upgrade
apt-get install amarok ————> zypper install amarok
apt-get remove amarok ————> zypper remove amarok
apt-cache search amarok ————> zypper search amarok
apt-cache showpkg amarok ————> zypper info amarok
apt-get moo ————> zypper moo
apt-file search ————> zypper wp
apt-get autoremove ————> zypper rm –clean-deps <paquete> (sólo limpia las dependencias específicas de un paquete determinado)
apt-get clean ————> zypper clean
apt-get source package ————> zypper source-install (también instala las dependencias de construcción)

dpkg -l ————————–> rpm -qa
dpkg -L ————————–> rpm -ql
dpkg -s ————————–> rpm -qi
dpkg -S ————————–> rpm -qf

Añadir repositorio ————————–> zypper addrepo <uri> <alias>
Usar chroot (operar en diferente directorio raiz) ————————–> zypper –root
cat /var/log/dpkg.log ————————–> cat /var/log/zypp/history
Bloquear un paquete ————————–> edit /etc/zypp/locks

(Gracias a victorhckinthefreeworld.wordpress.com)

Habilitar url’s limpias en Drupal 7 en un directorio de usuario de Apache (userdir)

Para habilitar las urls limpias en un Drupal 7 instalado en un directorio de usuario de Apache (con el módulo mod_userdir activado), tendremos que hacer lo siguiente

Verificar que tenemos habilitados los módulos de Apache ‘mod_rewrite’ y ‘mod_userdir’. Para ello comprobaremos que en el fichero /etc/httpd/conf/httpd.conf están descomentadas las líneas
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule userdir_module modules/mod_userdir.so

Indicar en nuestro fichero .htaccess dónde está instalado Drupal, modificando el fichero ~/public_html/drupal7test/.htaccess. Buscamos la linea con RewriteBase y la descomentamos, poniendo a continuación el directorio en el que tenemos instalado Drupal, en mi caso la línea queda así:
RewriteBase ~/public_html/drupal7test

Permitir la actuación del módulo mod_rewrite en nuestro directorio de usuario; para ello modificaremos el fichero /etc/httpd/conf/extra/httpd-userdir.conf de forma que quede activado el AllowOverride:

UserDir public_html
<Directory "/home/*/public_html">
  AllowOverride All
  Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
  <Limit GET POST OPTIONS>
    Order allow,deny
    Allow from all
  </Limit>
  <LimitExcept GET POST OPTIONS>
    Order deny,allow
    Deny from all
  </LimitExcept>
</Directory></code>

Más información sobre las url’s limpias en la página de Drupal.

Las instrucciones anteriores sirven literalmente para Archlinux, si se hace en otra distribución de Linux es muy posible que los directorios donde se ubiquen los ficheros de configuración sean distintos. Para localizarlos, deberemos utilizar el comando (como root):
find /etc -name <nombre del fichero>

Montaje automático de USB en Archlinux con XFCE4

En Archlinux con XFCE4, después de una instalación desde cero, nos encontramos que cuando conectamos una memoria USB ésta ni aparece en el navegador de archivos (Thunar) ni podemos montarla. Para habilitar el reconocimiento y montaje automático de las memorias y discos USB que conectamos al equipo, es necesario primeramente instalar el paquete dbus:
sudo pacman -S dbus
A continuación activar su demonio:
sudo systemctl enable dbus
Después instalar los paquetess siguientes:
pacman -S thunar-volman gvfs gvfs-afc
Con esto ya nos reconoce los dispositivos que conectemos. Si además queremos que se monten automáticamente, en vez de que se monten al hacer click sobre su nombre en Thunar, tendremos que ir a Menú principal / Configuración / Dispositivos y soportes extraíbles y marcar los dos primeros check, el que dice «Montar los dispositicos extraíbles al conectarse» y el que pone «Montar soportes extraíbles al ser conectados».
Con esto ya no deberíamos tener problemas para ver y montar los dispositivos USB que conectemos.
(Adaptado de aquí al nuevo sistema systemd en Archlinux)