INTERACT FORUM

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1]   Go Down

Author Topic: Introducing installJRMC  (Read 5542 times)

BryanC

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 2661
Introducing installJRMC
« on: April 30, 2020, 12:23:12 pm »

It's time to get some other eyeballs on my social distancing stay-at-home project.

installJRMC

This program will install JRiver Media Center and associated helper services on Fedora (>=29), CentOS (>=8), Ubuntu (>=16.04), and Debian (>=9).

You can always find the latest version of installJRMC, changelog, and documentation in my repository.

Notes

1. installJRMC will not point major upgrades (i.e. from v25 to v26) to your old library. You should first perform a library backup, install the new major version, and then restore the library backup in the new version.

2. Typically installJRMC should be executed as your normal user (i.e. don't run it with sudo). Services are installed for the user that executes the script so do not execute as root unless you want to install system-wide services. Doing so may lead to permissions issues. installJRMC will prompt you for your sudo password as necessary to install dependencies and services.

Executing

1. You may need to make installJRMC executable:

Code: [Select]
chmod +x ./installJRMC
2. Execute:

Code: [Select]
installJRMC [--option [ARGUMENT]]
Running installJRMC without any options will install the latest version of JRiver Media Center from the official JRiver repository (Ubuntu/Debian) or my unofficial repository (Fedora/CentOS) using the system package manager. If any other option is specified then the default install method will need to be specified using --install-repo (or --install-rpmbuild). This makes it possible to install services, containers, repos, etc. independent from Media Center.

Options

Here is a list of additional options that can be passed to the script. You can always find the latest supported options by running installJRMC --help.

Code: [Select]
--install-repo
    Install JRiver Media Center from repository using package manager (Default)
    DEB-based OSes: Official package repository
    RPM-based OSes: BryanC's unofficial repository
--install-rpm
     (RPM-based OSes only) Build RPM from source DEB and install it
--rpmbuild
    Build RPM from source DEB
--outputdir PATH
    Generate rpmbuild output in this directory (Default: $PWD/outputdir)
--mcversion VERSION
    Build or install a specific version (Default: install the latest version)
--restorefile RESTOREFILE
    Restore file location for registration (Default: skip registration)
--betapass PASSWORD
    Enter beta team password for access to beta builds
--service-user USER
    Install systemd services and containers for USER
--service, -s SERVICE
    See SERVICES section below for a list of possible services to install
--container, -c CONTAINER
    See CONTAINERS section below for a list of possible services to install
    TODO: Containers are a work-in-progress
--createrepo
    Build rpm, copy to webroot, and run createrepo
--createrepo-webroot PATH
    The webroot directory to install the repo (Default: /srv/jriver/)
--createrepo-user USER
    The web server user (Default: current user)
--version, -v
    Print this script version and exit
--debug, -d
    Print debug output
--help, -h
    Print help dialog and exit
--uninstall, -u
    Uninstall JRiver MC, cleanup service files, and remove firewall rules (does not remove library files)

Services

When installing systemd services it is important to execute installJRMC as the user you wish to run the services. Typically this is your normal user account but for some server installations it may be necessary to execute the script as root. If so, use --service-user root to override sanity checks.

Code: [Select]
jriver-mediaserver
    Enable and start a mediaserver systemd service (requires an existing X server)
jriver-mediacenter
    Enable and start a mediacenter systemd service (requires an existing X server)
jriver-x11vnc
    Enable and start x11vnc for the local desktop (requires an existing X server, does NOT support Wayland)
    --vncpass and --display are also valid options (see below)
jriver-xvnc-mediacenter
    Enable and start a new Xvnc session running JRiver Media Center
    --vncpass PASSWORD
        Set vnc password for x11vnc/Xvnc access. If no password is set, the script
        will either use existing password stored in ~/.vnc/jrmc_passwd or use no password
    --display DISPLAY
        Display to start x11vnc/Xvnc (Default: The current display (x11vnc) or the
        current display incremented by 1 (Xvnc))
jriver-createrepo
    Install hourly service to build latest MC RPM and run createrepo

It is possible to install multiple services at one time using multiple --service blocks:
Code: [Select]
installJRMC --install-repo --service jriver-x11vnc --service jriver-mediacenter
jriver-x11vnc versus jriver-xvnc-mediacenter
jriver-x11vnc shares your existing X display via vnc and starts a minimized JRiver Media Center service. Conversely, jriver-xvnc-mediacenter creates a new Xvnc display and starts a JRiver Media Center service in the foreground of the new VNC display. The requisite firewall rules will also be added to the system firewall to enable remote access.

Note: If jriver-xvnc-mediacenter finds an existing display it will attempt to increment the display number by 1. This should work fine in most cases, but if you have multiple running X servers on your host machine you should use the --display option to specify a free display.

Firewall Rules

installJRMC will automatically install and enable port forwarding firewall rules to enable remote access to Media Server (52100-52200/tcp, 1900/udp DLNA) and Xvnc/x11vnc (depends on port selection). installJRMC uses firewall-cmd on Fedora/CentOS and ufw on Ubuntu/Debian.

Note: ufw is not installed by default on Debian but will be installed by installJRMC. To prevent user lock-out (i.e. SSH), Debian users that have not already enabled ufw will need to do so (sudo ufw enable) after running installJRMC and inspecting their rules.

Containers

Coming soon!

Examples

Code: [Select]
installJRMCInstalls the latest version of JRiver Media Center from the repository.

Code: [Select]
installJRMC --install-repo --service jriver-mediaserverInstalls JRiver Media Center from the repository and starts/enables the /MediaServer service.

Code: [Select]
installJRMC --install-rpm --restorefile /path/to/license.mjr --mcversion 26.0.56Builds JRiver Media Center version 26.0.56 RPM from the source DEB, installs it (RPM distros only), and activates it using the specified .mjr license file.

Code: [Select]
installJRMC --createrepo --createrepo-webroot /srv/jriver/repo --createrepo-user www-userBuilds the RPM, moves it to the webroot, and runs createrepo as www-user.

Code: [Select]
installJRMC --service jriver-createrepo --createrepo-webroot /srv/jriver/repo --createrepo-user www-userInstalls the jriver-createrepo timer and service to build the RPM, move it to the webroot, and run createrepo as `www-user` hourly.

Code: [Select]
installJRMC --install-repo --service jriver-x11vnc --service jriver-mediacenter --vncpass "letmein"Installs services to share the existing local desktop via VNC and automatically run Media Center on startup.

Code: [Select]
installJRMC --install-repo --service jriver-xvnc-mediacenter --display ":2"Installs a service that starts Xvnc on display ':2' that just runs Media Center.

Code: [Select]
installJRMC --uninstallUninstalls JRiver Media Center and its associated services and firewall rules. This will not remove your media library and database in case you want to reinstall.

Additional information
Source, changelog, and latest documentation
I'd eventually like to get my repo hosted on a VPS with a faster connection and installJRMC working on an RPi, but I currently do not own either.
There's a donation link in my repository README if you'd like to help out.
Logged

BryanC

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 2661
Re: Introducing installJRMC
« Reply #1 on: June 11, 2020, 05:17:20 pm »

Uploaded v0.7

Changes:
Do not exit if dependencies are not met (for RHEL 8 ).
Logged

lucretius

  • Recent member
  • *
  • Posts: 18
Re: Introducing installJRMC
« Reply #2 on: June 13, 2020, 10:50:26 am »

Admin, please make this thread a sticky.
Logged

lucretius

  • Recent member
  • *
  • Posts: 18
Re: Introducing installJRMC
« Reply #3 on: June 13, 2020, 11:27:31 am »

Uploaded v0.7

Changes:
Do not exit if dependencies are not met (for RHEL 8 ).

In RHEL 8, I ran this command line:

installJRMC --install-repo --mcversion 26.0.87

The result:

Installing JRiver Media Center from repo...
Error: Package update failed!

However, the script did work with Fedora 32!
Logged

BryanC

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 2661
Re: Introducing installJRMC
« Reply #4 on: June 13, 2020, 01:21:26 pm »

Could you try running with --debug and posting the output?

Could you also post the output of `cat /etc/os-release`?
Logged

BryanC

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 2661
Re: Introducing installJRMC
« Reply #5 on: July 17, 2020, 01:42:11 pm »

FYI v25 has been dropped from the repository as I had to make a packaging change. By default rpmbuild was adding "provides" dependencies to all of the library files provided by MC, which could lead to strange dependencies (usually seen when installing packages from scratch). I have rebuilt v26.0.87 and v26.0.94 in the repository using the new scheme. If you would like to install an older version you can do so manually with:

Code: [Select]
./installJRMC --install-rpm --mcversion "26.0.xx"
installJRMC v0.8 contains the improved packaging settings.
Logged

cycler2

  • Recent member
  • *
  • Posts: 46
Re: Introducing installJRMC
« Reply #6 on: August 20, 2020, 03:28:56 pm »

Thanks for your work, BryanC.  It gives hope to Linux noobies like me.  I intend to try out Linux Mint installed in a VirtualBox on my Windows 10 PC.  Will Install MC work in this set-up?
Rich
Logged

BryanC

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 2661
Re: Introducing installJRMC
« Reply #7 on: August 20, 2020, 08:57:02 pm »

Thanks for your work, BryanC.  It gives hope to Linux noobies like me.  I intend to try out Linux Mint installed in a VirtualBox on my Windows 10 PC.  Will Install MC work in this set-up?
Rich

I believe that it should although I have not tested it. If it does not, I'd be more than happy to make the changes to get it running.
Logged
Pages: [1]   Go Up