h1

HowTo: Sockso en Ubuntu Server

27/07/09

¿Recordáis aquel ordenador que tengo debajo del sofá con el MLDonkey? Pues he decidido exprimirlo un poco más: le he instalado el Sockso. Este programita no es otra cosa que un servidor que almacena y organiza tus emepetreses. No tiene GUI. Para acceder a la colección de música solo necesitas acceder al servidor por medio de un navegador web por lo que puede ser accesible desde cualquier ordenador que tenga Internet.

Al lío.

Instalación de MySQL y Java

El propio programa trae una BBDD embebida pero parece que cuando maneja colecciones grandes de música se ralentiza bastante por lo que me he decantado por usar MySQL:

root@elburro:~# aptitude install mysql-server sun-java6-bin sun-java6-fonts sun-java6-jre

Durante la instalación te pedirá la contraseña del usuario root de MySQL.

Ahora nos conectamos al MySQL para crear la BBDD. No es necesario crear ninguna elemento de la BBDD, el propio programa los creará la primera vez que arranca::

root@elburro:~# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.51a-3ubuntu5.4 (Ubuntu)

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

mysql> create database socksodb;
Query OK, 1 row affected (0.00 sec)

mysql>

Instalación del Sockso

root@elburro:~# wget http://sockso.pu-gh.com/downloads/sockso-latest.zip

root@elburro:~# unzip sockso-latest.zip

root@elburro:~# cp -r sockso-1.1.8/ /opt/sockso

root@elburro:~# mkdir /var/sockso

root@elburro:~# chmod -R 0755 /var/sockso

Con estos comandos lo que hemos hecho es: bajarnos la última versión, descomprimir el zip, copiarlo a “/opt/sockso”, crear el directorio “/var/sockso” y darle premisos de ejecución.

Al ser nuestra instalación con MySQL necesitamos descargar e instalar unas librerías adicionales:

root@elburro:~# wget http://sockso.pu-gh.com/downloads/sockso-optionals.zip

root@elburro:~# unzip sockso-optionals.zip -d /opt/sockso/lib-opt

Ahora nos vamos a editar el script de arranque para acondicionarlo a nuestro entorno:

root@elburro:~# cd /opt/sockso/scripts/init.d/

root@elburro:/opt/sockso/scripts/init.d# cp -p sockso sockso.pl

root@elburro:/opt/sockso/scripts/init.d# vi sockso.pl

Basicamente, hay que editar las siguientes líneas para que queden así (cambiando micontraseña por la contraseña que pusiste en el MySQL):

use constant SOCKSO_DIR => “/opt/sockso/”;

system( ‘sh linux.sh –nogui –datadir /var/sockso –dbtype=mysql –dbhost=localhost –dbuser=root –dbpass=micontraseña –dbname=socksodb > /dev/null 2>&1 &’ );

Pego el script completo para que quede más claro:


#!/usr/bin/perl

###########################################################
###########################################################
#
#  Edit this constant to point to your Sockso directory
#

use constant SOCKSO_DIR => "/opt/sockso/";

#
###########################################################
###########################################################

use strict;

my $cmd = shift();

if ( $cmd eq "start" ) { start(); }
elsif ( $cmd eq "stop" ) { stop(); }
elsif ( $cmd eq "restart" ) { restart(); }
else { usage(); }

sub start {

chdir( SOCKSO_DIR );
system( 'sh linux.sh --nogui --datadir /var/sockso --dbtype=mysql --dbhost=localhost --dbuser=root --dbpass=micontraseña --dbname=socksodb > /dev/null 2>&1 &' );

}

sub stop {

my $pid = `ps x | grep sockso.jar | grep -v grep`;
$pid =~ s/^\s*(\d+) .*/$1/;

if ( $pid ) {
`kill -9 $pid`;
}

}

sub restart {
stop();
sleep( 2 );
start();
}

sub usage {
print <<EOF;

Usage: sockso (start|stop|restart)

EOF
}

Pues ya está todo lo básico. Vamos a probar si funciona:

root@elburro:~# cd /opt/sockso/scripts/init.d

root@elburro:/opt/sockso/scripts/init.d# ./sockso.pl start

Si todo ha ido bien debemos poder acceder desde el navegador al puerto 4444 de nuestra máquina:

http://IP:4444

Y veremos el home del Sockso:

Sockso Home

¡A disfrutar! :)

Añadiendo repositorios de música

Para decirle al Sockso donde está nuestra música tenemos que hacerlo desde la consola. Primero nos aseguramos de que está parado:

root@elburro:~# cd /opt/sockso/scripts/init.d/

root@elburro:/opt/sockso/scripts/init.d# ./sockso.pl stop

Y ahora arrancamos el Sockso “manualmente” para acceder a la consola (ojo a la contraseña):

root@elburro:/opt/sockso/scripts/init.d# cd /opt/sockso/

root@elburro:/opt/sockso# sh linux.sh –nogui –datadir /var/sockso –dbtype=mysql –dbhost=localhost –dbuser=root –dbpass=micontraseña –dbname=socksodb

La línea de comandos del Sockso es muy sencilla (teclea help para ver los comandos). Para añadir un directorio en el que estén los MP3 escribimos:

#SoCkSo#> coladd /directorio/de/mis/emepetreses
Directory added!
#SoCkSo#>

Si accedemos ahora al Sockso deberíamos ver nuestra colección de MP3. Ya solo tenemos que salir y arrancar el Sockso de forma normal.

Arrancar / parar Sockso con la máquina

He creado el siguiente script para controlar Sockso como un servicio:

#!/bin/sh
#
### BEGIN INIT INFO
# Provides:          Sockso
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Servidor de musica Sockso.
# Description:       Servidor de musica Sockso.
### END INIT INFO

perl /opt/sockso/scripts/init.d/sockso.pl $1

exit 0

Para instalarlo sólo hay q copiarlo al “/etc/init.d” y añadirlo como servicio:

root@elburro:~# cd /etc/init.d

root@elburro:/etc/init.d# vi sockso

(Pegamos el contenido del script y salimos guardando)

root@elburro:/etc/init.d# update-rc.d sockso defaults
Adding system startup for /etc/init.d/sockso …
/etc/rc0.d/K20sockso -> ../init.d/sockso
/etc/rc1.d/K20sockso -> ../init.d/sockso
/etc/rc6.d/K20sockso -> ../init.d/sockso
/etc/rc2.d/S20sockso -> ../init.d/sockso
/etc/rc3.d/S20sockso -> ../init.d/sockso
/etc/rc4.d/S20sockso -> ../init.d/sockso
/etc/rc5.d/S20sockso -> ../init.d/sockso
root@elburro:/etc/init.d#

Pendiente

Si bien el programa está genial, tiene un pero bastante gordo que si no consigo solucionar lo hará inservible: todos los MP3 que tengan algún carácter raro (acentos, ñ, …) no se almacenan en la BBDD. Esto aplica tanto al nombre del archivo como a los MP3Tag.

Leyendo el foro he encontrado un alemán que solucionó el problema borrando la línea:

update( ” set names utf8 ” );

Del fichero MySQLDatabase.java y recompilando. Después de mucho googlear he conseguido recompilar pero no me funciona la aplicación… A ver si engaño a alguno de esos locos programadores para que me eche una mano…

Cualquier ayuda será bienvenida :)

Biliografía: Sockso, Samiux’s Blog.

root@elburro:~# cp -r sockso-1.1.8/ /opt/sockso
Anuncios

6 comentarios

  1. Ya era hora de encontrar un artículo en condiciones sobre sockso.
    Te quería pedir que si consigues arreglar el tema de los caracteres especiales me des un toque. Yo haré lo mismo.

    Un saludo.
    Javier.


  2. Aún no he avanzado con el tema de los caracteres pero si consigo algo ten por seguro que lo postearé :)


  3. […] programa es similar al Sockso, del que ya hablamos, pero lo encuentro mucho más completo. ¡Gracias a Makeda por descubrirlo! Después de una […]


  4. wooow este articulo es genial me viene perfecto para mi servidor de musica…


  5. Me alegro de haberte ayudado pero he de decir que, como opinión personal, veo al Subsonic mejor opción que el Sockso.

    Por aquí hablé de cómo instalarlo:

    https://yabrembre.wordpress.com/2009/12/15/miburro-2-0-subsonic-en-ubuntu/

    Saludos!


  6. si lo vi, pero te pide donaciones y no me deja incrustarlo en una pagina, por eso me quede con sockso.
    de todas formas gracias



Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: