INTERACT FORUM

Please login or register.

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

Author Topic: installJRMC - MC installer for Linux  (Read 8645 times)

BryanC

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 2678
installJRMC - MC installer for Linux
« on: March 10, 2022, 10:49:02 am »

installJRMC

This program will install JRiver Media Center and associated services on most major Linux distros.

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

Installing

Download and unzip installJRMC from the attachment below or curl the latest stable version directly from my repo:

Code: [Select]
curl -O https://git.bryanroessler.com/bryan/installJRMC/raw/master/installJRMC && chmod +x ./installJRMC
Executing

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 (--install repo). If any other option is specified, then the install method (i.e. --install repo or --install local) will need to be explicitly specified. This makes it possible to install services and containers independent of MC.

Note: installJRMC does not perform library migrations. Before moving to a new major version (i.e. v28->v29), you should first perform a library backup, install the new major version, and then restore the library. As of 1.0b14 major version library migrations are performed if the destination config directory `$HOME/.jriver/Media Center XX` is missing for major release `XX`. However, it is still good practice to create a manual library backup before migrating major versions.

Options

Code: [Select]
$ installJRMC --help
--install, -i repo|local
    repo: Install MC from repository, future updates will be handled by the system package manager
    local: Build and install MC package locally
--build[=suse|fedora|centos]
    Build RPM from source DEB but do not install
    Optionally, specify a target distro for cross-building (ex. --build=suse, note the '=')
--compat
    Build/install MC without minimum library specifiers
--mcversion VERSION
    Build or install a specific MC version, ex. "29.0.18"
--outputdir PATH
    Generate rpmbuild output in this PATH (Default: ./output)
--restorefile RESTOREFILE
    Restore file location for automatic license registration
--betapass PASSWORD
    Enter beta team password for access to beta builds
--service, -s SERVICE
    See SERVICES section below for the list of services to deploy
  --service-type user|system
      Starts services at boot (system) or user login (user) (Default: system)
--container, -c CONTAINER (TODO: Under construction)
    See CONTAINERS section below for a list of containers to deploy
--createrepo[=suse|fedora|centos]
    Build rpm, copy to webroot, and run createrepo.
    Optionally, specify a target distro for non-native repo (ex. --createrepo=fedora, note the '=')
  --createrepo-webroot PATH
      The webroot directory to install the repo (Default: /var/www/jriver/)
  --createrepo-user USER
      The web server user if different from the 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 or media files)

Services

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
    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
    Manually specify display to use for x11vnc/Xvnc (ex. ':1')
jriver-createrepo
    Install hourly service to build latest MC RPM and run createrepo
    By default installs as root service to handle www permissions more gracefully

MC helper services are installed as system-level services (--service-type=system) by default and are manipulable as admin:
Code: [Select]
sudo systemctl stop jriver-servicename@username.service
It is also possible to create user-level services (--service-type=user) that can be manipulated by the current unprivileged user:
Code: [Select]
systemctl --user stop jriver-mediacenter
Multiple services (but not --service-types) can be installed at one time using multiple --service blocks:
Code: [Select]
installJRMC --install repo --service jriver-x11vnc --service jriver-mediacenter
jriver-x11vnc versus jriver-xvnc

jriver-x11vnc shares your existing X display via VNC and can be combined with additional services to start Media Center or Media Server. Conversely, jriver-xvnc creates a new Xvnc display and starts a JRiver Media Center service in the foreground of the new VNC display.

Note: If jriver-xvnc 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.

Containers

Coming soon!

Firewall

installJRMC will automatically add port forwarding firewall rules enabling remote access to Media Server (52100-52200/tcp, 1900/udp DLNA) and Xvnc/x11vnc (depends on port selection). installJRMC uses `firewall-cmd` on EL distros 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 `sudo ufw enable` after running installJRMC and inspecting their configuration.

Examples

Code: [Select]
installJRMCInstall the latest version of MC from the best available repository.
Code: [Select]
installJRMC --install local --compatInstall a more widely-compatible version of the latest MC version.
Code: [Select]
installJRMC --install repo --service jriver-mediacenter --service-type userInstall MC from the repository and start/enable jriver-mediacenter.service as a user service.
Code: [Select]
installJRMC --install local --compat --restorefile /path/to/license.mjr --mcversion 29.0.18Build and install an MC 29.0.18 comptability RPM locally and activate it using the /path/to/license.mjr
Code: [Select]
installJRMC --createrepo --createrepo-webroot /srv/jriver/repo --createrepo-user www-userBuild an RPM locally for the current distro, move it to the webroot, and run createrepo as www-user.
Code: [Select]
installJRMC --service jriver-createrepo --createrepo-webroot /srv/jriver/repo --createrepo-user www-userInstall 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"Install services to share the existing local desktop via VNC and automatically run MC on startup.
Code: [Select]
installJRMC --install repo --service jriver-xvnc --display ":2"Install an Xvnc server on display ':2' that starts MC.
Code: [Select]
installJRMC --uninstallUninstall MC and its associated services and firewall rules. This will not remove your media, media library/database, or automated library backup folder.

Additional Info

Did you find installJRMC useful? Buy me a coffee!

Did you find a bug? Let me know on Interact!
Logged

JimH

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 72541
  • Where did I put my teeth?
Re: installJRMC - MC installer for Linux
« Reply #1 on: March 10, 2022, 12:45:42 pm »

Thanks, Brian!
Logged

jcd201406

  • Recent member
  • *
  • Posts: 8
Re: installJRMC - MC installer for Linux
« Reply #2 on: March 12, 2022, 01:52:21 pm »

Hi Brian;

Version: 1.0b14 ...migrating MC28 to MC29

This script copy ~.jriver/Media Center 28 in ~.jriver/Media Center29 . To complete the migration, I had to move content of ~/.jriver/Media Center 29/Media Center28 in ~.jriver/Media Center 29/

JC

Logged

BryanC

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 2678
Re: installJRMC - MC installer for Linux
« Reply #3 on: March 12, 2022, 03:09:49 pm »

Hi Brian;

Version: 1.0b14 ...migrating MC28 to MC29

This script copy ~.jriver/Media Center 28 in ~.jriver/Media Center29 . To complete the migration, I had to move content of ~/.jriver/Media Center 29/Media Center28 in ~.jriver/Media Center 29/

JC

Thanks, should be fixed now in 1.0b15.
Logged

drmimosa

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 691
Re: installJRMC - MC installer for Linux
« Reply #4 on: March 17, 2022, 11:12:12 am »

Thank you so much for building this installer. It's so helpful for "off the ranch" distro installations, like openSUSE TW. Greatly appreciated!!!!

Perhaps the script could automate fixing this ssl-symlink problem for Tumbleweed?

https://yabb.jriver.com/interact/index.php/topic,132493.0.html

EDIT: Command that worked for me to create a correct certificate symbolic link in openSUSE Tumbleweed (not tested on other systems!):

Code: [Select]
sudo ln -s /var/lib/ca-certificates/ca-bundle.pem /etc/ssl/certs/ca-certificates.crt 
Logged

Awesome Donkey

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 7892
  • Long cold Winter...
Re: installJRMC - MC installer for Linux
« Reply #5 on: March 17, 2022, 11:24:18 am »

I can't recall if Fedora needs this certificate symlink too, will have to double check here in a minute.

EDIT: If you encounter an issue like this on Fedora, this command *should* help fix it...

Code: [Select]
sudo ln -s /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem /etc/ssl/certs/ca-certificates.crt
Logged
I don't work for JRiver... I help keep the forums safe from "male enhancements" and other sources of sketchy pharmaceuticals.

Windows 11 24H2 Update 64-bit + Ubuntu 24.10 Oracular Oriole 64-bit | Windows 11 24H2 Update 64-bit (Intel N305 Fanless NUC 16GB RAM/500GB M.2 NVMe SSD)
JRiver Media Center 33 (Windows + Linux) | iFi ZEN DAC 3 | JBL 306P MkII Studio Monitors | Audio-Technica ATH-M50x Headphones

bob

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 13940
Re: installJRMC - MC installer for Linux
« Reply #6 on: March 17, 2022, 03:53:28 pm »

I can't recall if Fedora needs this certificate symlink too, will have to double check here in a minute.

EDIT: If you encounter an issue like this on Fedora, this command *should* help fix it...

Code: [Select]
sudo ln -s /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem /etc/ssl/certs/ca-certificates.crt
Or you could symlink to the local copy of the certificates in the "/usr/lib/jriver/Media\ Center 29" folder. Just delete the symlink in there to /etc/ssl and change to point at the local copy there.

Logged

BryanC

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 2678
Re: installJRMC - MC installer for Linux
« Reply #7 on: April 02, 2022, 11:24:22 am »

I improved the ssl certificate symlinking logic in 1.0b16 so that only the symlink in /usr/lib/jriver is changed. It will first look to see if the default symlink is broken and then link to either /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem or /var/lib/ca-certificates/ca-bundle.pem, depending on which is available.
Logged

Awesome Donkey

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 7892
  • Long cold Winter...
Re: installJRMC - MC installer for Linux
« Reply #8 on: April 25, 2022, 10:00:18 am »

Interesting issue on a clean Fedora install. I'm using the ./installJRMC --install repo --debug command which as far as I know should install your unofficial repository, but instead it does this...

Code: [Select]
[michael@fedora installJRMC]$ ./installJRMC --install repo --debug
First Debugging on!
Debug: Running: main
Debug: Running: getOS
Debug: Detected host platform: fedora 36
Debug: Using host platform: fedora 36
Debug: Running: parseInput
Debugging on
installJRMC version: 1.0b16
Debug: Running: getVersion
Debug: Running: installPackage --silent buildah
Resolved "debian" as an alias (/etc/containers/registries.conf.d/000-shortnames.conf)
Trying to pull docker.io/library/debian:buster...
Getting image source signatures
...

It looks like it's trying to install the Dockerized version? Unless I'm mistaken here, I manually stopped it while it was copying the blob. Is this a potential issue?
Logged
I don't work for JRiver... I help keep the forums safe from "male enhancements" and other sources of sketchy pharmaceuticals.

Windows 11 24H2 Update 64-bit + Ubuntu 24.10 Oracular Oriole 64-bit | Windows 11 24H2 Update 64-bit (Intel N305 Fanless NUC 16GB RAM/500GB M.2 NVMe SSD)
JRiver Media Center 33 (Windows + Linux) | iFi ZEN DAC 3 | JBL 306P MkII Studio Monitors | Audio-Technica ATH-M50x Headphones

BryanC

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 2678
Re: installJRMC - MC installer for Linux
« Reply #9 on: April 25, 2022, 12:54:00 pm »

No that's correct. If buildah is available installJRMC will query the official repo for the latest version number using containerized apt. Otherwise it will fallback to scraping Interact and then to a hardcoded default.

The official apt repo is the most reliable way to determine the latest release version, and can be queried in a distro-agnostic manner using an ephemeral rootless container.

This may not be strictly necessary for --install repo (on non-apt distros) as dnf can query my repo for the latest version, but for all other functions (including the code that I use to actually build the repo) I need to determine the working version a priori, so it's easiest to just perform the lookup regardless. You can skip the lookup by specifying a version number manually.
Logged

Dennis in FL

  • Galactic Citizen
  • ****
  • Posts: 375
Re: installJRMC - MC installer for Linux
« Reply #10 on: May 02, 2022, 05:15:25 am »

I forgot how to remove MC28 on a raspberry
Logged
WiiM Ultra --> Gustard X16 --> Fosi ZA3 --> KEF LS50 Metas

bob

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 13940
Re: installJRMC - MC installer for Linux
« Reply #11 on: May 02, 2022, 09:01:02 am »

I forgot how to remove MC28 on a raspberry
To remove just the program:
sudo dpkg --purge mediacenter28
To remove the user files, downloaded plugins, library, etc:
rm -rf ~/.jriver/Media\ Center\ 28
Logged

ade

  • Member
  • *
  • Posts: 1
Re: installJRMC - MC installer for Linux
« Reply #12 on: July 18, 2022, 11:06:41 am »

Big thanks for the new installer. Much easier than the manual install once I worked out how to run the script due to my lack of Linux experience :).  For others with a similar lack of knowledge you need to use the command "bash installJRMC" in the Terminal Window after unzipping the installer.

For info I have been using MC on the Linux Lite distro for several years without problems.
Logged

branty1970

  • Recent member
  • *
  • Posts: 36
Re: installJRMC - MC installer for Linux
« Reply #13 on: August 02, 2022, 05:19:25 am »

Hi,

First up, thanks for making the effort to do this. It seems like a much easier route to installing than the previous offering.

I've just *upgraded* my computer to Fedora 36 and want to install MC 28. I've tried to follow the instructions here, but the switch --mcversion 28 doesn't work. It gives a message that says 'Using MC version 29.0.66 determined by containerized package manager' and then does nothing.

If I run installJRMC with no switches it installs version 29 - which I expected - but this isn't the version I want. I want version 28. Can you tell me the correct format of the command to get version 28 to install?

The command I'm using is...

Quote
./installJRMC --mcversion 28 --debug

I've also tried...

Quote
./installJRMC --mcversion 28.0.106 --debug

But get the same message. I think this is the latest version of MC 28?

Thanks,
Martin
Logged

max096

  • MC Beta Team
  • Galactic Citizen
  • *****
  • Posts: 363
Re: installJRMC - MC installer for Linux
« Reply #14 on: August 02, 2022, 12:44:47 pm »

I think the last version is 28.0.103 not 106 for Linux.

Based on the help in the script I think he expects the full MC version string.

Code: [Select]
--mcversion VERSION
   Specify the MC version, ex. "29.0.18" (Default: latest)

Since MC 28 isn't gonna get any more updates anyway you can also just grab the rpm from here https://repos.bryanroessler.com/jriver/ and install it.

Code: [Select]
wget https://repos.bryanroessler.com/jriver/MediaCenter-28.0.103.x86_64.rpm
sudo dnf install ./MediaCenter-28.0.103.x86_64.rpm

Logged

branty1970

  • Recent member
  • *
  • Posts: 36
Re: installJRMC - MC installer for Linux
« Reply #15 on: August 03, 2022, 03:12:33 am »

Thanks max096, that helped. I tinkered a little more and found that this command builds the RPM file locally. But it doesn't install it, so it's the same result as just downloading the RPM file from the link you provided.

Quote
./installJRMC --mcversion "28.0.103" --createrepo=fedora --debug
Logged

Awesome Donkey

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 7892
  • Long cold Winter...
Re: installJRMC - MC installer for Linux
« Reply #16 on: August 03, 2022, 03:56:23 am »

Try...

Code: [Select]
./installJRMC --mcversion 28.0.103 --install rpm --debug
Logged
I don't work for JRiver... I help keep the forums safe from "male enhancements" and other sources of sketchy pharmaceuticals.

Windows 11 24H2 Update 64-bit + Ubuntu 24.10 Oracular Oriole 64-bit | Windows 11 24H2 Update 64-bit (Intel N305 Fanless NUC 16GB RAM/500GB M.2 NVMe SSD)
JRiver Media Center 33 (Windows + Linux) | iFi ZEN DAC 3 | JBL 306P MkII Studio Monitors | Audio-Technica ATH-M50x Headphones
Pages: [1]   Go Up