Welcome to the wonderful world of the highly unofficial, completely unsupported and, surprisingly enough only very slightly un-working Plex Media Center for Linux.

UPDATE: Binary Packages now available for Ubuntu 11.10!

***** Current State of the Build **

Sources are available from

Current integration build is: "laika" - The triumph of the whim!

Current development build is: "zoey" - Bulldog approved!

Next Milestone: "zoey"; Target Date: 1/1/2012

Package availability: None

Help we need:

People with experience with .deb and RPM packaging.

People with experience building experimental software from source to build test and document requirements.

People with ffmpeg expertise to help with troubleshooting some elements of the ffmpeg build.

* How to Download and Install PMC for Linux *****

First, go to and create a github account if you do not already have one. Install an ssh public key according to the instructions on the site.

To clone the plex-linux source tree and submodules (ffmpeg and the mediastream skin):

gary@wurzburger:~$ cd workspace/<br />
gary@wurzburger:~/workspace$ git clone<br />
Initialized empty Git repository in /home/gary/workspace/plex-linux/.git/<br />
remote: Counting objects: 302934, done.<br />
remote: Compressing objects: 100% (69957/69957), done.<br />
remote: Total 302934 (delta 231017), reused 299766 (delta 227906)<br />
Receiving objects: 100% (302934/302934), 597.64 MiB | 3.63 MiB/s, done.<br />
Resolving deltas: 100% (231017/231017), done.<br />
gary@wurzburger:~/workspace$ cd plex-linux<br />
gary@wurzburger:~/workspace/plex-linux$ git submodule init<br />
Submodule 'addons/skin.mediastream' ( registered for path 'addons/skin.mediastream'<br />
Submodule 'xbmc/cores/dvdplayer/Codecs/ffmpeg' ( registered for path 'xbmc/cores/dvdplayer/Codecs/ffmpeg'<br />
gary@wurzburger:~/workspace/plex-linux$ git submodule update<br />
Initialized empty Git repository in /home/gary/workspace/plex-linux/addons/skin.mediastream/.git/<br />
remote: Counting objects: 3695, done.<br />
remote: Compressing objects: 100% (1363/1363), done.<br />
remote: Total 3695 (delta 2288), reused 3651 (delta 2244)<br />
Receiving objects: 100% (3695/3695), 113.63 MiB | 3.55 MiB/s, done.<br />
Resolving deltas: 100% (2288/2288), done.<br />
Submodule path 'addons/skin.mediastream': checked out 'a24fa9af9ecca891a66a83752100942b03d69c90'<br />
Initialized empty Git repository in /home/gary/workspace/plex-linux/xbmc/cores/dvdplayer/Codecs/ffmpeg/.git/<br />
remote: Counting objects: 174967, done.<br />
remote: Compressing objects: 100% (37997/37997), done.<br />
remote: Total 174967 (delta 136769), reused 174965 (delta 136767)<br />
Receiving objects: 100% (174967/174967), 46.69 MiB | 2.81 MiB/s, done.<br />
Resolving deltas: 100% (136769/136769), done.<br />
Submodule path 'xbmc/cores/dvdplayer/Codecs/ffmpeg': checked out '924b15ac8b4e2aa54fdac3821e07f9296c03d5c4'<br />

If this seems a bit more involved than most source package building you've encountered before, good! That means you're paying attention. :)

Do not, at this point, get ahead of yourself. Chances are your system is not yet ready to build this source. In the plex-linux directory, you'll find a file called "README.plex-linux" which contains what build documentation we have at present. Use those notes to install the requisite packages for your system. One of the largest dependencies which Plex has is on the "Boost" C++ libraries. Specifically, the boost libraries must be at least v1.42. Additionally, note that the libwhatever-dev packages are required. The -dev packages contain the headers and linkable objects necessary for building the code.

Once you've got those libraries installed (and if you're building on a distro that isn't documented, please do make notes. We'll want them) it's time to build. This is a large, complicated project, so if you have multiple cores to throw at it, I heartily suggest that you do so. I do, however, suggest that you limit yourself to the number of physical cores you have. Hyperthreading is great, but it will rapidly enter diminishing returns with this kind of job. Here's the command I use with four cores:

gary@wurzburger:~/workspace/plex-linux$ ./bootstrap && ./configure && make -j 4

Now, go get a cup of coffee. If the build is successful, great. You can do the usual sudo make install and get down to business. If not, have a look at the output. It'll almost always point you to the reason why the build is breaking (and chances are it's a library you didn't install, probably because we didn't list it--again, please take notes). If you get stumped, post in the forum and we'll see what we can do.

Now build, test, and if you can contribute, make a branch, fix things, test the build, and send me a pull request. If you hit an issue you can't solve but can document clearly, open an issue.

***** Frequently Asked Questions **

Q: Will it build on *FooBarLinux Ultra-46.2

A: Heck if I know! If you're asking about an Ubuntu respin such as ElementaryOS or a Fedora respin, chances are that if it will build on the parent distro, it'll build for you. No way to find out, however, but to try it. Take notes!


Q: Will it connect to myPlex and let me see my remote servers and shared content?

A: Yes it will! Plex specific functionality seems to work as advertised in our testing thus far.


Q: Will it work on the Apple TV gen 1?

A: I don't know. If someone wants to work on that or send me a gen 1 Apple TV to test on, I'm game to get it working.


Q: Are there binary packages available?

A: YES! Check the binary package thread in this forum. Platforms and architectures are limited.


Q: I don't know anything about Linux or building source, but I want to help! What can I do?

A: Be patient. :) We'll have binary packages soon and we'll be wanting people to beta test them on various hardware. That's where your help is going to be invaluable and we DO want it. We're just not ready for it yet.

* Some Credits *****

Team-XBMC - for writing some damned fine code.

elan - Patient Plex Patriarch

gewalker - stubbornly refusing to quit despite being c-tarded

mtehonica - wanting it badly enough to try building it before it even worked

ZiGGiMoN - best build documentation EVAR and fixing VDPAU

Tobias - for knowing, intimately, what he's talking about

h0lzi - bug enumerator extraordinare

Everyone else - for building, testing and reporting.