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.