Instalar Plex server en raspbian (Viejo método)

Instalar Plex server en raspbian (Viejo método)

Hace poco compre un Raspberry pi v2 y pues decidí ponerlo como media server, está guía es sobre como instalar Plex media server en este dispositivo.
Los pasos los he sacado del siguiente tutorial en ingles:
https://bitbucket.org/inkubux/cubox-i/wiki/Plex Wheezy

Aquí pueden encontrar el NUEVO METODO.

Una nota importante es que todos los comandos hay que introducirlos como usuario root, ya sea logueados como root o usando el comando sudo.

Instalar Plex media server dentro de un entorno chroot

Montaje de chroot

Configurar el entorno chroot:

apt-get install debootstrap libexpat1
debootstrap --no-check-gpg --arch=armel wheezy /chroots/wheezy-armel ftp://ftp.debian.org/debian/

Luego de la instalación hay que configurar los puntos de montaje en /etc/fstab lo que sifnifica entrar al fichero y agregar al final lo siguiente:

# Chroot bind mounts
/home        /chroots/wheezy-armel/home        none bind 0 0
/mnt         /chroots/wheezy-armel/mnt         none bind 0 0
/tmp         /chroots/wheezy-armel/tmp         none bind 0 0
/proc        /chroots/wheezy-armel/proc        proc defaults 0 0
/dev         /chroots/wheezy-armel/dev         none bind 0 0
/dev/pts     /chroots/wheezy-armel/dev/pts     none bind 0 0

Para aplicar los puntos de montajes anteriores se ejectura el siguiente comando:

mount -a

Entrar al entorno chroot:

chroot /chroots/wheezy-armel/

Darle un nombre al chroot:

echo wheezyArmel > /etc/debian_chroot

Corregir los locales:

apt-get install locales
locale-gen en_US en_US.UTF-8 es_SV es_SV.UTF-8
dpkg-reconfigure locales

Una nota importante que yo instalo los locales en inglés de Estados Unidos (en_US) y los de español de El Salvador (es_SV), pero solo se hago uso de los de inglés.

Arreglar problemas para ischroot:

dpkg-divert --divert /usr/bin/ischroot.debianutils --rename /usr/bin/ischroot
ln -s /bin/true /usr/bin/ischroot

Instalación de Plex

Descargar plex y descomprimirlo:

cd /tmp
mkdir plex
cd plex
wget http://downloads.plex.tv/plex-media-server/0.9.11.7.803-87d0708/plex.tgz
tar -zxvf plex.tgz 
mkdir -p /opt/plex/
mv Application/ /opt/plex
mkdir -p "/opt/plex/Library/Application Support"

Nota que el link es para Plex v0.9.11.7 si hay una nueva versión hay que cambiar el link por la versión mas reciente la parte a cambiar es está 0.9.11.7.803-87d0708.

Crear un script de para ejecutar Plex:

vi /usr/local/bin/plexmediaserver

Con el siguiente contenido:

#!/bin/sh
SCRIPTPATH=/opt/plex/Application
export LD_LIBRARY_PATH="${SCRIPTPATH}"
export PLEX_MEDIA_SERVER_HOME="${SCRIPTPATH}"
export PLEX_MEDIA_SERVER_MAX_PLUGIN_PROCS=6
export LC_ALL="en_US.UTF-8"
export LANG="en_US.UTF-8"
export PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR="/opt/plex/Library/Application Support"
ulimit -s 3000
/opt/plex/Application/Plex\ Media\ Server

Hacer ejecutable el script:

chmod +x /usr/local/bin/plexmediaserver

Ejecutar el script dentro del entorno chroot para comprobar que funcione:

plexmediaserver &

Con el comando anterior y entrando desde el navegador a la ip del raspberry:

http://<<Dirección IP>>:32400/web/index.html

Hacer Plex ejecutable en el huésped

Hay que salir del chroot:

exit

Instalar dchroot:

apt-get install dchroot

Editar o crear /etc/dchroot.conf:

hvi /etc/dchroot.conf

Y agregar lo siguiente:

# wheezyArmel chroot
wheezyArmel /chroots/wheezy-armel

Editar /etc/schroot/schroot.conf:

Y agregar lo siguiente:

[wheezy-armel]
description=Contains the PLEX  program
aliases=wheezyArmel
directory=/chroots/wheezy-armel

Ahora ya sera posible ejecutar Plex desde el host:

dchroot -c wheezyArmel -d /usr/local/bin/plexmediaserver --directory /

Crear Un script para ejecutarlo desde huésped

Crear un script que haga el chroot:

vi /usr/local/bin/do_chroot

Añadir lo siguiente:

#!/bin/sh
ARGS=""
for i in "$@" ; do
ARGS="$ARGS '$i'"
done

exec dchroot -c wheezyArmel -d -q "`basename $0`" "$ARGS" --directory /

Hacer el script ejecutable:

chmod +x /usr/local/bin/do_chroot

Hacer un enlace simbólico a plexmediaserver:

ln -s /usr/local/bin/do_chroot /usr/local/bin/plexmediaserver

Ahora se puede ejecutar el siguiente comando desde huésped para correr el servidor:

plexmediaserver &

Crear un demonio

Crear el siguiente archivo /etc/init.d/plexmediaserver:

vim /etc/init.d/plexmediaserver

Con el siguiente contenido:

#!/bin/sh
### BEGIN INIT INFO
# Provides:          plexmediaserver
# Required-Start:    $remote_fs $syslog $networking
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Plex Media Server
# Description:       Plex Media Server for Linux,
#                    More information at http://www.plexapp.com
#                    Many thanks to the great PlexApp team for their wonderfull job !
# Author:            Cedric Quillevere / [email protected]
# Rewamped           Christian Svedin / [email protected]
# Adapted (cubox-i)  Francis Belnger / [email protected]
# Version:           1.2
### END INIT INFO

# Read configuration variable file if it is present
[ -r /etc/default/plexmediaserver ] && . /etc/default/plexmediaserver

test -f "/usr/local/bin/plexmediaserver" || exit 0

plex_running=`ps ax | grep "/opt/plex/Application/Plex Media Server" | awk '{ print $1 }' | wc -l`


case "$1" in
    start)
        if [ "$plex_running" -gt 1 ]; then
                echo "Plex already running..."
                exit 0
        fi
        echo -n "Starting Plex Media Server: "
        su -l $PLEX_MEDIA_SERVER_USER -c "/usr/local/bin/plexmediaserver &" >/dev/null 2>&1
        sleep 1
        echo "done"
        ;;
    stop)
        if [ "$plex_running" -eq 1 ]; then
                echo "Plex Media Server is not running (no process found)..."
                exit 0
        fi
        echo -n "Killing Plex Media Server: "
        # Trying to kill the Plex Media Server itself but also the Plug-ins
        ps ax | grep "Plex Media Server" | awk '{ print $1 }' | xargs kill -9 >/dev/null 2>&1
        ps ax | grep "Plex DLNA Server" | awk '{ print $1 }' | xargs kill -9 >/dev/null 2>&1
        sleep 1
        echo "done"
        ;;
    restart)
        sh $0 stop
        sh $0 start
        ;;
    status)
        if [ "$plex_running" -gt 1 ]; then
                echo "Plex Media Server process running."
        else
                echo "It seems that Plex Media Server isn't running (no process found)."
        fi
        ;;
    *)
        echo "Usage: $0 {start|stop|restart|status}"
        exit 1
        ;;
esac

exit 0

Hacer ejecutable el script:

chmod +x /etc/init.d/plexmediaserver

Añadir el demonio al arranque del sistema:

update-rc.d plexmediaserver defaults

Al reinicio el servidor de Plex debe correr automaticamente.