Jump to content

Fedora Install


jose

Recommended Posts

Updated instructions can now be found on our website:

 

http://emby.media/

 

 

This should work on rpm distributions that use systemd. Such as CentOS 7 and Fedora 19+, I have tested it on CentOS 7 and Fedora 21 Beta
 

  • Seperate repos for Dev and Beta releases
  • Added systray icon that behaves like the one for windows.
  • Added MediaBrowserServer file to /etc/sudoers,d to allow admin users to start, stop restart the server without entering their password, (allow the systray icon to works) and allows the server to mount unmount isos.
  • Move repo to an automated online one.

A repo with all the dependencies has been included in the repo file. Installing the server should install all the dependencies.
If your mono can't be found by the script then go to /etc/opt/MediaBrowser/MediaBrowserServer/MediaBrowserServer.cfg and add the following line

mono_path="/your/path/to/mono"

in the case of the mono provided by my repo that is:

mono_path="/opt/mono"
 

Also you may need to wait a while after the install for it to download ffmpeg.

You can also specify a path to ffmpeg and ffprobe and the server wont try to download them, for fedora you can install the rpmfusion repositories and then use yum to install ffmpeg, the package wont install it by itself as it is not set as a dependency, but it will look by default in /bin for them before trying to download it.

 

Install the repositories:
https://github.com/MediaBrowser/MediaBrowser.Releases/raw/master/Repository/MediaBrowserServer-repositories.noarch.rpm

#UPDATE the repo package
sudo yum update MediaBrowserServer-repositories
#To enable dependencies repo
sudo yum-config-manager --enable MediaBrowserServer-Dependancies
#For the server
sudo yum install MediaBrowserServer 
#For the system Tray Icon
sudo yum install MediaBrowserServer-sysTray
#When installing the systray icon you may need to reload the gnome shell for it to appear this can be done by pressing [alt]+[f2] typing [r] into the prompt that appears and then [enter]. This happens because the topicons gnome extension needs to be loaded onto gnome for tray icons to appear in gnome3, you may notice some other icons for applications (chrome, dropbox, hangouts, etc)you already had may appear now that system/notifications icons are enabled. 
#TopIcons is included in the package and I obtained it from https://extensions.gnome.org/extension/495/topicons/

 
To start the service type:

sudo systemctl start MediaBrowserServer  OR  sudo service MediaBrowserServer start

or launch the system tray icon from the applications window.
 
To enable the server so that it starts every time you boot up the server type:

sudo systemctl enable MediaBrowserServer 

To stop the service

sudo systemctl stop MediaBrowserServer OR sudo service MediaBrowserServer stop

Clicking the exit button of the system tray icon also stops the server, mimicking the behavior of the windows server. 
 
To enable Beta or Dev releases:

sudo yum-config-manager --enable MediaBrowserServer-Beta
sudo yum-config-manager --enable MediaBrowserServer-Dev 

if you enable beta releases and do a yum update MediaBrowserServer it will install the latest of either the Stable or Beta releases, this doesn't work with dev/master releases at the momment as I dont know the version before build time and their version instead of a number is "master".
 
remove any old repos from /etc/yum.repos.d such as:
mbserver.repo, home:jose-pr.repo , or any oher of my old repos
 
Directories where files are located:

  • /opt/MediaBrowser/MediaBrowserServer
  • /var/opt/MediaBrowser/MediaBrowserServer
  • /etc/systemd/system/MediaBrowserServer.service
  • /etc/opt/MediaBrowser/MediaBrowserServer/MediaBrowserServer.cfg

A system user is created named MediaBrowserServer under which the MediaBrowserServer service runs.
A group is created called media and MediaBrowserServer is part of it.
All files create by the server have read/write privileges by media group.
Any path where the server is going to write anything such as if you select to download metadata to the media folder has to read/write access by the media group, everyone, or be owned by MediaBrowserServer
 
 
 
Systrat icon:
Screenshotfrom2014-11-02210440.png
Screenshotfrom2014-11-02210522.png

Edited by Luke
  • Like 2
Link to comment
Share on other sites

I created a rpm for the server only (no libgdiplus or mono). 

Here is a summary of what it is supposed to do:

  • create a user called MediaBrowserServer under which the server is run as a systemd service.
  • also creates a group called media which MediaBrowserServer is put under,  the permissions for the program data directory are set so that any member of the group can modify its content. Also media folders that the server needs to put file in such as metadata should either allow the group write privileges or give write privileges to everyone.
  • puts the server at /opt/MediaBrowser/MediaBrowserServer/
  • the program data is at /var/opt/MediaBrowser/MediaBrowserServer/
  • to start the server type: sudo systemctl start MediaBrowserServer
  • to stop the server: sudo systemctl stop MediaBrowserServer
  • to see the status: systemctl status MediaBrowserServer
  • you can also start the server as the current user with:/opt//opt/MediaBrowser/MediaBrowserServer/start.sh  but be sure your current user is part of the media group so that it can access the program data file.

At the moment it works with mono installed directly into /bin/ (no mono-opt for now) and libgdiplus needs to be installed in the standard lib path.  

 

Here are the file i have the m at a public folder in dropbpox so they should work. if not the any other place i can host them on?

RPM

SRPM

Link to comment
Share on other sites

  • 2 weeks later...

 New:


  • Added systray icon that behaves like the one for windows.
  • Added MediaBrowserServer file to /etc/sudoers,d to allow admin users to start, stop restart the server without entering their password, (allow the systray icon to works) and allows the server to mount unmount isos.
  • Move repo to an automated online one.
Link to comment
Share on other sites

Well done!

 

How did you do the system tray icon? Is it something that can be merged in so that it will work with other distros?

Link to comment
Share on other sites

Well done!

 

How did you do the system tray icon? Is it something that can be merged in so that it will work with other distros?

It is a python script with a config.txt file

  "MediaServer":{   
    "address": "localhost",    
    "web-port": "8096",
    "program-path": "/var/opt/MediaBrowser/MediaBrowserServer",
    "start-command":"sudo systemctl start MediaBrowserServer",
    "restart-command":"sudo systemctl restart MediaBrowserServer",
    "stop-command":"sudo systemctl stop MediaBrowserServer"
  },

they need to put the commands to start, restart and stop the server . if the commands need sudo they should create a file in ./etc/sudoers.d which will allow a group of users such as wheel to these commands without a password. I am working on adding some remote capabilities so that it can also be controlled from another machine in cases the server is headless or a vm.

Link to comment
Share on other sites

Updated to latest release 3.0.5424.1 to update if you already have the repo installed type sudo yum update MediaBrowserServer or follow the instructions in the first post

  • Like 1
Link to comment
Share on other sites

Three repos for Stable, Beta and Dev releases all contained in the same MediaBrowserServer.repo file

sudo wget https://raw.githubusercontent.com/jose-pr/extras/master/MediaBrowserServer.repo -O /etc/yum.repos.d/MediaBrowserServer.repo

To enable beta releases:

sudo yum-config-manager --enable MediaBrowserServer-Beta

To enable dev releases:

sudo yum-config-manager --enable MediaBrowserServer-Dev

if you enable beta releases and do a yum update MediaBrowserServer it will install the latest of either the Stable or Beta releases, this doesn't work with dev/master releases at the momment as I dont know the version before build time and their version instead of a number is "master".

 

remove any old repos from /etc/yum.repos.d such as:

mbserver.repo, home:jose-pr.repo , or any oher of my old repos

Link to comment
Share on other sites

fyi - i am going to look at a unified tray icon that will work with all of our operating systems. i have not yet decided between c# and python. any source code you can share would be helpful as it would save me some time. thanks.

Link to comment
Share on other sites

fyi - i am going to look at a unified tray icon that will work with all of our operating systems. i have not yet decided between c# and python. any source code you can share would be helpful as it would save me some time. thanks.

All the systray icon code can be found here https://build.opensuse.org/source/home:jose-pr:MediaBrowserServer/MediaBrowserServer/MBServer_scripts.zip

 

under /opt/MediaBrowser/MediaBrowserServer/TrayIcon

 

those are python files and you can open them with a text editor.

Link to comment
Share on other sites

@Luke 

Also here is an executable that run on windows withoutt he need to install python. https://www.dropbox.com/s/14zfh7zlymi6kxm/TrayIcon.zip?dl=0

 

For it to control you linux server you need enable ssh on you server and edit the config.txt file with the hostname/ip, your user and password and the commands to start, restart, stop the server, plus those commands need to be available without password to the user. The log windows wont show any text at the momment as i need to have access to the logfile and i am still thinking the best way to do that remotely.

Link to comment
Share on other sites

thanks. don't worry about the log window. i've removed that feature until it can be rebuilt in a universal fashion.

 

the only thing i need to figure out is how the shutdown commands will be issued to MBS in a platform-independant way. Right now using the api makes sense.

 

as far as reading the config file, for whatever i end up doing my plan is just to have it read the actual server config file. the tray icon included with the server only needs to control that specific server, so it's fine and we can assume that file system access. If you or someone wants to do a more robust separate icon that can control any MBS instance from any machine, that's different.

Link to comment
Share on other sites

for local commands the one i supply in the rpm is set as a local type and you dont need to supply user, password or address (you can assume  is localhost), You would just need the commands, api calls. I added the remote features as a bonus to control my server from my windows machine. The local commands work well in windows to so if you have the windows commands to start the windows server and stop it it should be easy to adapt, i havent check those yet. 

Link to comment
Share on other sites

rjenkins

Hi,

for info, I've just tried the Mediabrowser rpm from Jose's repository on a Centos 7 system.

 

Unfortunately there are a few dependencies that cannot be resolved, even with the fedora "epel" repository enabled:

 

Error: Package: MediaBrowserServer-3.0.5424.1-Stable.8.1.noarch (MediaBrowserServer)
           Requires: sqlite >= 3.8.2
           Installed: sqlite-3.7.17-4.el7.x86_64 (@anaconda)
               sqlite = 3.7.17-4.el7
Error: Package: libgdiplus-3.8-11.1.x86_64 (MediaBrowserServer)
           Requires: libpng16.so.16()(64bit)
Error: Package: MediaBrowserServer-3.0.5424.1-Stable.8.1.noarch (MediaBrowserServer)
           Requires: mono-devel > 3.2.7
           Available: mono-devel-2.10.8-8.el7.x86_64 (epel)
               mono-devel = 2.10.8-8.el7
Error: Package: MediaBrowserServer-3.0.5424.1-Stable.8.1.noarch (MediaBrowserServer)
           Requires: libwebp >= 0.4.1
           Available: libwebp-0.3.0-3.el7.i686 (base)
               libwebp = 0.3.0-3.el7
Error: Package: libgdiplus-3.8-11.1.x86_64 (MediaBrowserServer)
           Requires: libpng16.so.16(PNG16_0)(64bit)
 
Any attempts at installing later libgdiplus or libpng give many errors. 
Edited by rjenkins
Link to comment
Share on other sites

I was able to build libwebp, sqlite and libgdiplus for Centos 7, still waiting for mono to build, I will have a new repo called MediaBrowserServer-Dependancies so that you can enable it with:

sudo yum-config-manager --enable MediaBrowserServer-Dependancies 

That way if your system doesn't provide the dependancies yo can obtain them from there. 

Edited by jose
  • Like 1
Link to comment
Share on other sites

That,'s great news, thanks!

 

RJ.

Can you try installing this:

http://download.opensuse.org/repositories/home:/jose-pr:/MediaBrowserServer/Fedora_20/noarch/MediaBrowserServer-repositories-1-Stable.7.1.noarch.rpm

This should install the repositories and assign you the correct repo for the dependancies in your case look in /etc/yum.repos.d/MediaBrowserServer.repo

that you have CentOS_7. 

[MediaBrowserServer-Dependancies]
name=MediaBrowserServer-Dependancies (CentOS_7)
type=rpm-md
baseurl=http://download.opensuse.org/repositories/home:/jose-pr:/MediaBrowserServer-Dependancies/CentOS_7/
gpgcheck=1
gpgkey=http://download.opensuse.org/repositories/home:/jose-pr:/MediaBrowserServer-Dependancies/CentOS_7/repodata/repomd.xml.key
enabled=1 

then install the server it should install all dependencies while doing so.

sudo yum install MediaBrowserServer

if you want the system tray icon to then:

sudo yum install MediaBrowserServer-sysTray
Link to comment
Share on other sites

Tested on CentOS 7 and Fedora 20 it worked fine in both all missing dependencies supplied https://raw.githubus...epositories.rpm . Intalled the repo rpm and the do:

yum install MediaBrowserServer

Please comment if it worked to know if it is okay to go ahead and release.

for centos need to enable epel repo

Edited by jose
Link to comment
Share on other sites

  • 10 months later...

Hello,

I'm trying to get Emby running in fedora 22 server.  I've followed the instructions at the start of this post. I have attempted the install using both dnf and yum. When attempting to install the MediaBrowserServer I recieve the following. I have RPM fusion repositories installed.

 

sudo yum-config-manager --enable MediaBrowserServer-Dependancies  processed correctly.

 

sudo dnf config-manager -enable MediaBrowserServer-Dependancies  processed correctly.

 

The repo list shows the media browser repo available for DNF.

sudo dnf repolist |grep MediaBrowserServer
Failed to synchronize cache for repo 'MediaBrowserServer-Dependancies' from 'http://download.opensuse.org/repositories/home:/jose-pr:/MediaBrowserServer-Dependancies/Fedora_22/': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried, disabling.
MediaBrowserServer     Media Browser Server is a home media server built       6

 

 

When I attempt install in either yum or dnf  I receive the following errors.

 

sudo yum install MediaBrowserServer
Yum command has been deprecated, redirecting to '/usr/bin/dnf install MediaBrowserServer'.
See 'man dnf' and 'man yum2dnf' for more information.
To transfer transaction metadata from yum to DNF, run:
'dnf install python-dnf-plugins-extras-migrate && dnf-2 migrate'

Failed to synchronize cache for repo 'MediaBrowserServer-Dependancies' from 'http://download.opensuse.org/repositories/home:/jose-pr:/MediaBrowserServer-Dependancies/Fedora_22/': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried, disabling.
Last metadata expiration check performed 0:06:30 ago on Tue Sep 22 13:58:03 2015.
Error: nothing provides mono-opt-devel > 3.2.7 needed by MediaBrowserServer-3.0.5607.2-Stable.67.1.noarch
(try to add '--allowerasing' to command line to replace conflicting packages)

 

when using DNF  (all other steps worked normally prior to running the dnf command)

 

sudo dnf install MediaBrowserServer
Failed to synchronize cache for repo 'MediaBrowserServer-Dependancies' from 'http://download.opensuse.org/repositories/home:/jose-pr:/MediaBrowserServer-Dependancies/Fedora_22/': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried, disabling.
Last metadata expiration check performed 0:14:48 ago on Tue Sep 22 13:58:03 2015.
Error: nothing provides mono-opt-devel > 3.2.7 needed by MediaBrowserServer-3.0.5607.2-Stable.67.1.noarch
(try to add '--allowerasing' to command line to replace conflicting packages)

 



 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...