This is an old revision of the document!
This article will instruct how to install Serviio on a fresh Gentoo install.
Instructions in this article assumes a 64-bit install. If you are using a 32-bit install you will have to substitute 'amd64' references with 'x86'.
Serviio need ffmpeg and a Java Runtime Environment (JRE) preinstalled.
To install the most recent FFmpeg, use the testing branch. New versions also support multithreaded decoding:
# echo "media-video/ffmpeg ~amd64" >> /etc/portage/package.keywords # echo "media-video/ffmpeg threads" >> /etc/portage/package.use # emerge -av ffmpeg
There are two different versions of JREs to choose from. You only need to choose one of the two choices presented below! The easiest is to use icedtea, but Sun's Java version is also available but it requires more effort to install. Once a JRE is installed, you need to make sure it is selected as the current JRE.
To install icedtea, use the following commands:
# echo "dev-java/icedtea ~amd64" >> /etc/portage/package.keywords # echo "dev-java/icedtea-web ~amd64" >> /etc/portage/package.keywords # emerge -av icedtea
It'll take a while for the JRE to compile. When it's done, make sure it's set as the system VM:
# java-config -L The following VMs are available for generation-2: 1) IcedTea JDK 7.2.2.1 [icedtea-7] *) IcedTea JDK 6.1.11.3 [icedtea-bin-6]
In this example it isn't, so you'll need to set it manually:
# java-config -S 1 Now using icedtea-7 as your generation-2 system JVM # java-config -L The following VMs are available for generation-2: *) IcedTea JDK 7.2.2.1 [icedtea-7] 2) IcedTea JDK 6.1.11.3 [icedtea-bin-6]
Now you can proceed to the Download Serviio section.
The Sun JRE is fetch-restricted and also requires enabling the use of a specific software license. By fetch-restricted, that means the package manager will not download the package for you, you have to do it manually and copy it over to /usr/portage/distfiles, as per the instructions in this example output:
# emerge -av sun-jre-bin These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild N F ] dev-java/sun-jre-bin-1.6.0.33-r1 USE="X alsa -jce -nsplugin" 20,802 kB Total: 1 package (1 new), Size of downloads: 20,802 kB Fetch Restriction: 1 package (1 unsatisfied) Fetch instructions for dev-java/sun-jre-bin-1.6.0.33-r1: * Due to Oracle no longer providing the distro-friendly DLJ bundles, the package * has become fetch restricted again. Alternatives are switching to * dev-java/icedtea-bin:6 or the source-based dev-java/icedtea:6 * * Please download jre-6u33-linux-x64.bin from: * http://www.oracle.com/technetwork/java/javase/downloads/jre6-downloads-1637595.html * and move it to /usr/portage/distfiles The following license changes are necessary to proceed: #required by sun-jre-bin (argument) =dev-java/sun-jre-bin-1.6.0.33-r1 Oracle-BCLA-JavaSE
Follow the link provided to download the JRE, then copy it to /usr/portage/distfiles (you may require root to do this, adjust accordingly):
# cp jre-6u33-linux-x64.bin /usr/portage/distfiles
After that's done, enable the license and install it:
# echo "dev-java/sun-jre-bin Oracle-BCLA-JavaSE" >> /etc/portage/package.license emerge -av sun-jre-bin
Once it is installed, check to make sure it is being used:
# java-config -L The following VMs are available for generation-2: *) IcedTea JDK 7.2.2.1 [icedtea-7] 2) IcedTea JDK 6.1.11.3 [icedtea-bin-6] 3) Sun JRE 1.6.0.33 [sun-jre-bin-1.6]
It is not in the above example, so set it manually:
# java-config -S 3 Now using sun-jre-bin-1.6 as your generation-2 system JVM # java-config -L The following VMs are available for generation-2: 1) IcedTea JDK 7.2.2.1 [icedtea-7] 2) IcedTea JDK 6.1.11.3 [icedtea-bin-6] *) Sun JRE 1.6.0.33 [sun-jre-bin-1.6]
Now you can proceed to the Download Serviio section.
Go to the Serviio download page and download the latest version.
Once the tarball has been downloaded, extract it and rename it:
# tar zxf serviio-1.0.1-linux.tar.gz -C /opt # mv /opt/serviio-1.0.1 /opt/serviio
This will extract the tarball into the /opt directory.
Now Serviio needs to be set up. Follow the instructions here.
Serviio runs as a client/server setup. You need to run the server first (use /opt/serviio-<version>/bin/serviio.sh, then start the client (use /opt/serviio-<version>/bin/serviio-console.sh) to connect to it. The console allows you to configure Serviio.
These instructions will provide a way to sun Serviio as a service under a non-root user.
First, create a new user:
# useradd -d /opt/serviio -r serviio
Then, change the permissions on /opt/serviio to match the username:
# chown -R serviio:serviio /opt/serviio
The console like to write logs to the log directory, so we need to make that directory writeable:
# chmod -R 777 /opt/serviio/log
This is a work in progress. Check back later.