Instalar Spotify + Blockify en Ubuntu 16.04

Introducción

Escuchar un gran catálogo de música en Spotify puede llegar a ser una necesidad de alta prioridad para muchos usuarios de GNU/Linux.

Instalar Spotify puede ser un reto innecesario en cada nueva versión de las distribuciones GNU/Linux modernas.

Por otro lado, escucharla sin anuncios es posible pagando una suscripción a Spotify.

En mi caso personal, no uso Spotify tan frecuentemente por lo que pagar una suscripción es un gasto innecesario. Los anuncios de la plataforma son tolerables, pero cada vez que se reproducen presiono la tecla de «Mute» en mi teclado y presionarla nuevamente una vez que los anuncios terminasen. Esto me llevó a cuestionarme si existía algún programa en GNU/Linux que hiciera esto y ¡si existe!.

Instalando Spotify

Uno de los problemas es la dependencia del paquete no libre libgcrypt, el cuál dependiendo de la distribución será la dificultad para resolverlo. Además, he encontrado que dependiendo de la distribución GNU/Linux que utilices será la versión del reproductor que podrás instalar.

Por fortuna, para el caso de distribuciones basadas en Debian o Ubuntu el método es relativamente simple. Basta con ejecutar los siguientes comandos (uno a la vez) en la terminal:
sudo echo deb http://repository.spotify.com testing non-free | sudo tee /etc/apt/sources.list.d/spotify.list
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys BBEBDCB318AD50EC6865090613B00F1FD2C19886
sudo apt update
sudo apt install -y spotify-client

Si los comandos no devuelven mensajes de error, la aplicación Spotify debería funcionar correctamente.

Instalando Blockify

Blockify es la aplicación desarrollada por Mikkel Kjeldsen que permite silenciar (la mayoría de) los anuncios, no bloquearlos. Si usted no desea anuncios mientras escucha música deberá pagar la suscripción, pero si usted no desea escuchar los anuncios y que el programa los ponga en silencio mientras se reproducen, esta solución le será de utilidad.

Para descargar las herramientas necesarias, clonar el repositorio e instalar este programa en Ubuntu, basta con teclear los siguiente comandos (uno a la vez) en la terminal.

sudo apt install -y python-pip python-wnck python-gst0.10 python-configparser wmctrl
git clone https://github.com/mikar/blockify
cd blockify
sudo pip install .
echo -e '[Desktop Entry]\nName=Blockify\nComment=Blocks Spotify commercials\nExec=blockify-ui\nIcon='$(python -c 'import pkg_resources; print pkg_resources.resource_filename("blockify", "data/icon-red-512.png")')'\nType=Application\nCategories=AudioVideo' | sudo tee /usr/share/applications/blockify.desktop

Si los comandos no devuelven mensajes de error, la aplicación Blockify debería haberse instalado correctamente. Ejecute la aplicación posteriormente a Spotify y si todo es correcto, el programa silenciará (la mayoría de) los anuncios de Spotify.

¡¡A escuchar música (y silencio mientras los anuncios 😀 )!!

Referencias

//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js

(adsbygoogle = window.adsbygoogle || []).push({});

Instalar Spotify en OpenSuse Leap 42.1

En cada distribución GNU/Linux que utilizo encuentro una dificultad para instalar el cliente nativo de Spotify. Sin embargo, los problemas en todas estas distribuciones tienen el mismo origen: la dependencia del paquete no libre libgcrypt.

Anteriormente pude resolver este problema para la versión 13.2 de OpenSuse, he seguido exactamente los mismos pasos, sin embargo esto no funciona en la más reciente versión de la nueva entrega Leap 42.1. A pesar de instalar y satisfacer esta dependencia, al lanzar Spotify desde la terminal manda este error:


geeker@cygnus:~> spotify
./spotify: /lib64/libcrypto.so.1.0.0: no version information available (required by ./spotify)
./spotify: /lib64/libssl.so.1.0.0: no version information available (required by ./spotify)
04:41:26.580 I [breakpad.cpp:110 ] Registered Breakpad for product: spotify
04:41:26.582 I [translate.cpp:152 ] Reloading language file
04:41:26.589 I [translate.cpp:152 ] Reloading language file
04:41:26.590 I [breakpad.cpp:269 ] Searching for crashdumps: /home/geeker/.cache/spotify/*.dmp
libgcrypt selftest: binary (0): Selftest failed (/usr/lib64/.libgcrypt.so.11.hmac)
Ohhhh jeeee: ... this is a bug (global.c:142:global_init)
/usr/bin/spotify: línea 11: 2000 Abortado LD_LIBRARY_PATH=/opt/spotify/spotify-client/lib ./spotify "$@"

He pasado varias horas tratando de resolver este problema, muchas reinstalaciones para entender el problema, el cual además no siempre aparecía bajo las mismas condiciones.

Dado que los métodos «correctos» no funcionaban tuve que recurrir a la fuerza: instalar una versión del paquete que tengo certeza de que funciona, aunque está empaquetada para distribuciones basadas en GNU/Debian.

Por lo tanto tuve que instalar el script alien para la conversión de paquetes. Este no es un método que normalmente recomiende ni el más seguro para la estabilidad del sistema, pero como lo mencioné anteriormente: estoy recurriendo a los métodos más forzados.

Una vez instalado, el siguiente comando convertirá el paquete en cuestión:

sudo alien -r -c -v libgcrypt11_1.5.4-3_amd64.deb

Posteriormente es necesario instalar el paquete rpm resultante, para ello recomiendo utilizar la aplicación gráfica de OpenSuse (click derecho sobre el paquete y seleccionar Instalar) la cual resolverá alguna dependencia adicional que fuese necesaria.

Por último, y dado que esto aún no es suficiente, debemos crear un enlace en la ubicación donde el cliente de Spotify buscará este paquete, que es el directorio /lib64

sudo ln -s /lib/x86_64-linux-gnu/libgcrypt.so.11 /lib64/

Después de todo esto, Spotify debería poder ejecutarse sin problemas. Sugiero ejecutarlo por primera y única vez desde la terminal para ver la salida por algún posible error.

Por último, les dejo un par de enlaces hacia los paquetes en cuestión: en su versión original deb y la conversión a rpm.

¡Suerte!

Problema de dependencia libgcrypt de Spotify en Debian Linux 8 ( Jessie ) 64-bit

Nuevamente he experimentado problemas con la aplicación oficial de Spotify pero ahora en Debian GNU/Linux.

Algo que debo hacer notar es que el error es consistente en las tres distribuciones Linux para las cuales he dedicado una entrada en este blog: OpenSuse 13.2, Ubunu Gnome 15.04 y ahora Debian 8. El problema en todas estas distribuciones consiste en una dependencia silenciosa de la aplicación oficial de Spotify con el paquete libgcrypt11.

Por razones que desconozco, Debian no tiene el paquete libgcrypt11 en todos sus repositorios (stable, testing y unstable) lo cual ocurre de la misma forma que en Ubuntu. 

De la misma forma que para este último, debemos buscar y descargar el paquete para instalarlo en el sistema, de la forma «no-Debian» (instalándolo fuera del sistema apt a través de un repositorio de software). Nuevamente tenemos el riesgo de que este paquete rompa el sistema (que para el momento en el que escribo esto no ocurre) o bien que con futuras actualizaciones esto deje de funcionar, pero por ahora no tenemos opción.
Para descargar el paquete libgcrypt11, se puede hacer desde este lugar: 


Cabe mencionar que sería preciso revisar una futura actualización de dicho paquete en este sitio, en ese caso sería muy recomendable instalar esa nueva versión.

Para instalar este paquete solo es necesario ejecutar el siguiente comando:

$ sudo dpkg -i libgcrypt11_1.5.4-3_amd64.deb


Si el comando no devuelve un error, entonces todo salió bien y podemos proceder a instalar la aplicación tal y como lo marcan las instrucciones en el sitio de Spotify.

Por efectos de simplicidad, citaré las instrucciones de instalación que se encuentran en el sitio web de Spotify, pero recomiendo que visiten el sitio para tener la versión más reciente de las mismas.

# 1. Add the Spotify repository signing key to be able to verify downloaded packages
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys D2C19886

# 2. Add the Spotify repository
echo deb http://repository.spotify.com stable non-free | sudo tee /etc/apt/sources.list.d/spotify.list

# 3. Update list of available packages
sudo apt-get update

# 4. Install Spotify
sudo apt-get install spotify-client


Si todo lo anterior se llevó a cabo sin mensajes de error, ya estaremos listos para ejecutar la aplicación desde el escritorio gráfico o bien desde la terminal mediante el comando:

$ spotify 


Ahora solo queda disfrutar de su música favorita.

Como cambiar el uso de la tecla "Fn" en teclados Apple en Linux


OpenSuse es una distribución que me ha sorprendido mucho recientemente. A finales del año 2014 probé OpenSuse 13.1 y mi experiencia fue muy satisfactoria, tanto que esperé ansiosamente la salida de la versión 13.2. Utilicé por varios meses esta distribución y ahora utilizo OpenSuse Tumbleweed.

A pesar de todo esto, existe un pequeño «problema». Antes que nada debo decir que poseo un teclado Apple inalámbrico bluetooth color aluminio. Me resulta muy cómodo de escribir a pesar de que frecuentemente extraño las teclas Inicio, Fin y Suprimir. En las distribuciones GNU/Linux modernas puede utilizarse muy bien (gracias al controlador nativo del kernel linux 3), funcionando a la perfección todas las teclas, incluso las multimedia.

Justo en estas teclas es donde OpenSuse tiene una diferencia en relación con las demás distribuciones: para utilizar las teclas multimedia es necesario presionarlas en combinación con la tecla ‘Fn’. 

Después de investigar al respecto, descubrí que el problema es un parámetro en el archivo controlador del kernel para este teclado: 

/drivers/hid/hid-apple.c línea 42:

Modo de la tecla Fn en los teclados Apple

(0 = disabled, [1] = fkeyslast, 2 = fkeysfirst)


Esto significa lo siguiente:

  • 0 = Tecla Fn deshabilitada
  • 1 = Tecla Fn presionada por defecto
  • 2 = Tecla Fn no presionada por defecto

La opción que deseo en este caso es la '1', tal y como funcionaría este teclado en una computadora Apple.

En este punto tenemos dos opciones:

  1. Bajar el código fuente del kernel, modificar este valor en el archivo correspondiente y compilar el kernel.
  2. Modificar el valor «al vuelo» de la configuración del teclado. 

En mi caso utilizaré la segunda opción porque simplemente es más rápido y sencillo, siendo la primera más divertida pero un poco más tardada.


Para este caso basta con ejecutar el comando siguiente con privilegios de root:

echo 1 > /sys/module/hid_apple/parameters/fnmode
Inmediatamente después, las teclas multimedia funcionarán como lo esperamos. Sin embargo, la configuración se pierde al reiniciar/apagar el sistema. 

Una solución rápida es añadir este comando al inicio del sistema para que se ejecute al arranque del sistema operativo. Para esto habría que agregar al script especial /etc/rc.d/boot.local que ejecutará este comando al arranque. El contenido del archivo quedaría algo similar a este:

#! /bin/sh
#
# Copyright (c) 2002 SuSE Linux AG Nuernberg, Germany. All rights reserved.
#
# Author: Werner Fink, 1996
# Burchard Steinbild, 1996
#
# /etc/init.d/boot.local
#
# script with local commands to be executed from init on system startup
#
# Here you should add things, that should happen directly after booting
# before we're going to the first run level.
#
echo 1 > /sys/module/hid_apple/parameters/fnmode


Ahora solo guardamos el archivo, cabe mencionar que debemos tener privilegios de administrador para editarlo. 

Con esto las teclas especiales ya funcionarán como lo esperamos.

Espero que esta pequeña guía les sea de utilidad. 

Problema de dependencia libgcrypt de Spotify en Ubuntu Gnome 15.04

Recientemente cambié de OpenSuse 13.2 a Ubuntu Gnome 15.04 por un par de razones que quizás comparta en otra entrada.

Al instalar todo el software que utilizo en mi día a día, tuve un particular problema con Spotify. Este problema no es único en Ubuntu, me ocurrió un problema similar al instalar el mismo software en OpenSuse. Para alguien que lleva mucho tiempo utilizando distros GNU/Linux, está acostumbrado a estos muy frecuentes reveses.

Luego de seguir el proceso que indica el sitio oficial de Spotify pude instalar sin problemas el software. El problema ocurre al iniciar Spotify, si se hace desde el icono de la aplicación simplemente no abre. Si se intenta abrir la aplicación desde la terminal se puede ver cual es el error:

$ spotify
spotify: error while loading shared libraries: libgcrypt.so.11: cannot open shared object file: No such file or directory

Claramente existe una dependencia de la aplicación que no ha sido satisfecha, pero además es una dependencia que aparentemente los desarrolladores no conocen que existe o bien no la incluyeron en la lista de dependencias. 

Dicho paquete libgcrypt no se encuentra en los repositorios oficiales de Ubuntu, por lo que hay que buscarlo en algún otro lugar. 

Afortunadamente este paquete si existe en los repositorios de Debian Wheezy:


 
Luego de descargar el paquete solo nos queda cruzar los dedos para que este no rompa nuestro sistema, y afortunadamente no lo hace (por ahora, realmente no hay garantía de que hayan problemas futuros). 
La instalación puede hacerse gráficamente con el centro de software de Ubuntu o bien desde la consola:
$sudo dpkg -i libgcrypt11_1.5.0-5+deb7u3_amd64.deb
Ahora solo queda escuchar nuestra música favorita.

Instalación de Spotify en OpenSuse 13.2

Buscando en Internet formas para instalar Spotify en OpenSuse 13.2, encontré varios métodos y la mayoría de ellos funcionan. Sin embargo, en esta entrada muestro el método que me parece más sencillo y natural para OpenSuse.

En primer lugar, debes haber habilitado el repositorio comunitario Packman, que contiene una gran colección de software que considero indispensable. Esto se puede hacer desde Yast con unos pocos clicks. Si aún no lo has hecho sugiero que busques un poco, verás que no es nada complicado hacerlo.

Una vez que el repositorio esté registrado y actualizado, basta con ejecutar el siguiente comando desde la terminal:

$ sudo zypper in spotify-installer

Este comando descargará un instalador de Spotify desde el repositorio Packman, este script hará todo el trabajo por nosotros. Una vez descargado solo tendremos que ejecutar dicho script desde una terminal:

 $ install-spotify

Este script descargará los paquetes necesarios para Spotify y solicitará la contraseña de root cuando sea necesario, por lo que el script no debe ejecutarse con privilegios de administrador.

En mi caso personal, Spotify no puede resolver dependencias porque requiere un par de paquetes que no se encuentran en los repositorios regulares de OpenSuse. Los paquetes en cuestión son libgcrypt.so.11 y libudev.so.0. La solución es buscar e instalar dichos paquetes con el método de un click. Comparto los enlaces para que puedan descargar e instalar dichos paquetes.

Una vez terminado, si no hubo errores Spotify deberá poder ejecutarse.

Pipelight: Una forma de utilizar Silverlight en GNU/Linux

Una de las razones por las cuales necesito Windows es Silverlight.

Es frecuente encontrar sitios web que utilizan Silverlight (por ejemplo Netflix), y si eres usuario de alguna distribución GNU/Linux esto significará que te será imposible utilizar ese sistema y deberás recurrir a Windows o OSX.

Una alternativa libre de Silverlight es Pipelight. Pipelight no es un software desarrollado mediante ingeniería inversa, como ocurre con otras alternativas a tecnologías cerradas. Pipelight utiliza wine para «emular» el navegador Internet Explorer cada vez que otro navegador en GNU/Linux (i.e. Mozilla Firefox) hace una solicitud del plugin Sliverlight.

«Pipelight uses a patched wine version to provide a windows environment to the plugins, but you do not need to worry about this as Pipelight will take care of installing, configuring and updating all supported plugins. From the perspective of the browser these plugins will behave just like any other normal Linux plugin after you have enabled them.»

La instalación es relativamente sencilla, requiriendo de un par de comandos en la terminal. Aquí pueden ver las instrucciones para la distribución que utilicen en su computadora.

Para el caso específico de Ubuntu o alguna de sus variantes, estos son los comandos que habremos de ejecutar en la terminal:

sudo add-apt-repository ppa:pipelight/stable
sudo apt-get update
sudo apt-get install --install-recommends pipelight-multi
sudo pipelight-plugin --update 
 

Pipelight también permite habilitar algunos otros plugins como:

  • Adobe Flash Player
  • Shockwave Player
  • Unity Web Player
  • Widevine
  • Grandstream
  • etc.

Una vez instalado el plugin de Silverlight, puedes probar su correcto funcionamiento en este sitio.

Espero que esta mini-guía les sea de mucha utilidad, como lo fue para mí.

Problema con ícono de Chrome en Ubuntu Gnome 14.04

Recientemente he tenido problemas con el ícono de Google Chrome en Ubuntu Gnome Edition.

Va un poco de contexto de mi circunstancia: utilizo la versión de Ubuntu Gnome 14.04 que viene con Gnome 3.10. Además instalé el paquete de iconos del Proyecto Numix (que le van muy bien al minimalismo de Gnome 3)  de los cuales utilizo el conjunto de iconos Numix-Circle y por último el panel docky (ocurre lo mismo para el panel Plank).

El problema consiste en que una vez que instalo Google Chrome, Gnome muestra el icono incorrecto en el dock, en el conmutador de aplicaciones, en el menú de las aplicaciones y también en docky. Este error no afecta en absoluto al desempeño del sistema pero es molesto dado que no solo el icono del paquete Numix no se muestra, sino que además el icono que se muestra es pequeño y se ve mal escalado.

La solución es simple, basta con editar el archivo del lanzador de la aplicación en Gnome con el siguiente comando:

sudo vi /usr/share/applications/google-chrome.desktop

Noten que se requieren privilegios de super-usuario dado que el archivo es parte de Gnome y un usuario regular no tiene los permisos necesarios para editarlo. Dentro del archivo basta con buscar la línea Icon, comentarla y agregar debajo una nueva línea con el valor correcto:

#Icon=google-chrome
Icon=chrome

Recomiendo que comenten la línea original, ya que si por alguna razón quisieran deshacer este cambio solo basta con quitar el símbolo # y borrar la línea que agregamos.

Lo que acabamos de hacer es indicar a Gnome que busque el icono de la aplicación por el nombre chrome dentro del conjunto de iconos Numix-Circle. Por alguna razón que desconozco, quizás un bug, el icono de esta aplicación en el conjunto Numix-Circle se llama chrome y no simplemente google-chrome como en el resto de los conjuntos de iconos. Por ésta razón es que Gnome buscaba el icono por el nombre incorrecto y dado que no lo encontraba utilizaba un icono por defecto que no es del tamaño ni del conjunto correcto.

Espero que esta pequeña guía sea de utilidad para algún Linuxero que haya tenido este problema.

ACTUALIZACIÓN

Justo unas pocas horas después de escribir este articulo hubo una actualización del paquete de iconos Numix y esta solución dejó de funcionar. Debemos editar el mismo archivo y cambiar el valor nuevamente de forma que quede así:

#Icon=google-chrome
Icon=googlechrome

Dado que hay actualizaciones frecuentemente espero que las posteriores no deshagan este cambio nuevamente, si eso ocurriera actualizaré nuevamente este articulo.

Cómo habilitar y configurar el módulo userdir de Apache2 y PHP5 en Ubuntu

Cómo habilitar y configurar el módulo userdir de Apache2 y PHP5 en Ubuntu

El módulo userdir de Apache se utiliza para crear un directorio raíz en el directorio home de un usuario. Al utilizar el módulo userdir cada usuario en el sistema tendrá un directorio public_html que será la raíz web del Apache 2 para el usuario. Para acceder al directorio web raíz de cada usuario se utilizará el caracter «~» antes del nombre del usuario. Esto es, la dirección será de la forma http://hostname/~username/
Por defecto el modulo userdir se encuentra disponible y desactivado cuando se instala el paquete apache2. Para activarlo basta con seguir los pasos en la siguiente sección.

Habilitar el módulo userdir de Apache 2 en Ubuntu

Los siguientes pasos requieren haber instalado el servidor web Apahce2. Si necesita más información al respecto consulte el siguiente articulo.
Utilizar el comando a2enmod para habilitar el modulo userdir de Apache2, éste comando creará los enlaces simbólicos /etc/apache2/mods-available/userdir.load y /etc/apache2/mods-available/userdir.conf en el directorio /etc/apache2/mods-enable/.

sudo a2enmod userdir

Reinicie el demonio apache2 con el siguiente comando:

sudo service apache2 restart

Haga un directorio llamado «public_html» en el directorio home y asígnele los permisos 0755:

mkdir ~/public_html && chmod 0755 ~/public_html

Soporte PHP del módulo userdir de Apache2

Luego de habilitar el modulo userdir, los usuarios pueden guardar archivos HTML en el directorio /home/username/public_html, pero solamente archivos estáticos HTML y no scripts PHP.
La ejecución de scripts PHP desde el directorio public_html se encuentra deshabilitada por razones de seguridad, por lo que todos los archivos PHP se reconocerán mime-type Application/octet-stream y será descargado cuando se accede desde el navegador. Si se desea habilitar el procesamiento de PHP al utilizar el módulo userdir de Apache2 debe en primer lugar editar el siguiente archivo:

sudo nano /etc/apache2/mods-available/php5.conf

Ahora es necesario comentar la línea php_admin_value engine Off, es decir, escribir el caracter # antes de la línea.

Antes:


 
 
 php_admin_value engine Off
 
 

Después:


 
 
 # php_admin_value engine Off
 
 

Guárdelo y salga, luego reinicie el demonio Apache2 con el siguiente comando:

sudo /etc/init.d/apache2 reload

Para probar si efectivamente los scripts PHP funcionan en el directorio public_html, haga un archivo con algún script PHP. Para fines de ejemplo se utilizará la función phpinfo, solo ejecute el siguiente comando en la terminal:

echo '<?php phpinfo(); ?>' > ~/public_html/info.php

Finalmente abra en algún navegador web e ingrese a la dirección http://localhost/~username/info.php, recuerde reemplazar username por el nombre de usuario que corresponda. El resultado en el navegador debe ser algo similar a lo siguiente:

 


Este texto es una traducción al español del artículo How to Enable and Configure Apache2 Userdir Module in Ubuntu Server 12.04 publicado en Ubuntu Server Guide.

Referencias :