Cleanup documentation

This commit is contained in:
2025-06-02 15:26:30 -04:00
parent 8b464fffc7
commit 605dc78cf8
3 changed files with 49 additions and 42 deletions

View File

@@ -12,12 +12,11 @@ You can find the latest version of installJRMC, changelog, and documentation in
Download and unzip installJRMC from the attachment below or grab the latest stable version directly: Download and unzip installJRMC from the attachment below or grab the latest stable version directly:
[code]curl -O https://git.bryanroessler.com/bryan/installJRMC/raw/master/installJRMC && [code]curl -O https://git.bryanroessler.com/bryan/installJRMC/raw/master/installJRMC &&
chmod +x ./installJRMC && chmod +x ./installJRMC &&
./installJRMC [--option [ARGUMENT]][/code] ./installJRMC [--option [ARGUMENT]]
[/code]
Running [tt]installJRMC[/tt] without any options implies [tt]--install=repo[/tt] (on SUSE/Arch: [tt]--install=local[/tt]) and will install the latest version of JRiver Media Center (MC) from the official JRiver repository (Ubuntu/Debian) or my [url=https://repos.bryanroessler.com/jriver/]unofficial repository[/url] (Fedora/CentOS) using the system package manager. [tt]installJRMC[/tt] defaults to [tt]--install=repo[/tt] on distros with MC repositories and [tt]--install=local[/tt] on all others.
If [tt]--service[/tt] or [tt]--container[/tt] is passed then --install= must be specified to install MC (allows services and containers to be installed independent of MC). Specifying [tt]--build[/tt], [tt]--createrepo[/tt], [tt]--service[/tt], or [tt]--uninstall[/tt] disables the default install method.
Recent versions of installJRMC (>=1.3.0) automatically self-update to the latest installJRMC release.
[size=18pt]Options[/size] [size=18pt]Options[/size]
@@ -32,13 +31,13 @@ $ installJRMC --help
--compat --compat
Build/install MC without minimum dependency version requirements Build/install MC without minimum dependency version requirements
--mcversion VERSION --mcversion VERSION
Build or install a specific MC version, ex. "34.0.31" or "33" (default: latest) Specify the MC version, ex. "33", "34.0.31", or "34.0.31-1" (default: latest)
--arch ARCH --arch ARCH
Specify the MC architecture, ex. "amd64", "arm64", etc (default: host architecture) Specify the target MC architecture, ex. "amd64", "arm64", etc (default: host architecture)
--mcrepo REPO --mcrepo REPO
Specify the MC repository, ex. "bullseye", "bookworm", "noble", etc (default: latest official) Specify the MC repository, ex. "bullseye", "bookworm", "noble", etc (default: host or official)
--outputdir PATH --outputdir PATH
Generate rpmbuild output in this PATH (default: ./output) Generate reusable installJRMC output in this PATH (default: ./output)
--restorefile RESTOREFILE --restorefile RESTOREFILE
Restore file location for automatic license registration Restore file location for automatic license registration
--betapass PASSWORD --betapass PASSWORD
@@ -61,7 +60,7 @@ $ installJRMC --help
--yes, -y, --auto --yes, -y, --auto
Always assumes yes for questions Always assumes yes for questions
--version, -v --version, -v
Print this script version and exit Print installJRMC version and exit
--debug, -d --debug, -d
Print debug output Print debug output
--help, -h --help, -h
@@ -82,15 +81,14 @@ jriver-x11vnc (user)
jriver-xvnc (system) jriver-xvnc (system)
Enable and start a new Xvnc session running JRiver Media Center Enable and start a new Xvnc session running JRiver Media Center
--vncpass PASSWORD --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 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 else no password
--display DISPLAY --display DISPLAY
Manually specify display to use for x11vnc/Xvnc (ex. ':1') Manually specify display to use for x11vnc/Xvnc (ex. ':1')
jriver-createrepo (system) jriver-createrepo (system)
Install hourly service to build latest MC RPM and run createrepo Install hourly service to build latest MC RPM and run createrepo
By default installs as root service to handle www permissions more gracefully
[/code] [/code]
By default, MC services use a sane [tt]--service-type[/tt] listed next to the service name in the Services description. Services use a sane default [tt]--service-type[/tt] listed next to the service name in the Services description.
User services can be manipulated as an unprivileged user, for example: [tt]systemctl --user stop jriver-mediacenter[/tt] and begin at user login. User services can be manipulated as an unprivileged user, for example: [tt]systemctl --user stop jriver-mediacenter[/tt] and begin at user login.
System services are manipulable as root, for example: [tt]sudo systemctl stop jriver-servicename@username.service[/tt] and begin at system boot. System services are manipulable as root, for example: [tt]sudo systemctl stop jriver-servicename@username.service[/tt] and begin at system boot.
Note that it is possible to run all services of a particular user at boot using [tt][url=https://www.freedesktop.org/software/systemd/man/loginctl.html]sudo loginctl enable-linger username[/url][/tt]. Note that it is possible to run all services of a particular user at boot using [tt][url=https://www.freedesktop.org/software/systemd/man/loginctl.html]sudo loginctl enable-linger username[/url][/tt].
@@ -131,8 +129,8 @@ Install services to share the existing local desktop via VNC and automatically r
[code]installJRMC --install repo --service jriver-xvnc --display ":2"[/code] [code]installJRMC --install repo --service jriver-xvnc --display ":2"[/code]
Install an Xvnc server on display ':2' that starts MC. Install an Xvnc server on display ':2' that starts MC.
[code]installJRMC --uninstall[/code] [code]installJRMC --uninstall[/code]
Uninstall MC, services, and firewall rules. This will [b]not[/b] remove your media, media library/database, or library backup folder. Uninstall MC, services, and firewall rules. This will [b]not[/b] remove your media, media library/database, or library backups.
[size=18pt]Additional Info[/size] [size=18pt]Additional Info[/size]
Did you find installJRMC useful? [url=https://paypal.me/bryanroessler?locale.x=en_US]Buy me a coffee![/url] Did you find installJRMC useful? [url=https://paypal.me/bryanroessler]Buy me a coffee![/url]

View File

@@ -8,11 +8,10 @@ You can find the latest version of installJRMC, changelog, and documentation in
`installJRMC [--option [ARGUMENT]]` `installJRMC [--option [ARGUMENT]]`
Running `installJRMC` without any options implies `--install repo` (on SUSE/Arch: `--install local`) and will install the latest version of Media Center from the official JRiver repository (Ubuntu/Debian) or my [unofficial repository](https://repos.bryanroessler.com/jriver/) (Fedora/CentOS) using the system package manager. If `--service` or `--container` is passed then the default installation method (`--install repo` or `--install local`) must be specified (allows services and containers to be installed independent of MC). `installJRMC` defaults to `--install=repo` on distros with MC repositories and `--install=local` on all others.
Specifying `--build`, `--createrepo`, `--service`, or `--uninstall` disables the default install method.
Recent versions of installJRMC will automatically self-update to the latest installJRMC release. ### tl;dr
## tl;dr
`curl https://git.bryanroessler.com/bryan/installJRMC/raw/master/installJRMC|bash` `curl https://git.bryanroessler.com/bryan/installJRMC/raw/master/installJRMC|bash`
@@ -58,7 +57,7 @@ $ installJRMC --help
--yes, -y, --auto --yes, -y, --auto
Always assume yes for questions Always assume yes for questions
--version, -v --version, -v
Print this script version and exit Print installJRMC version and exit
--debug, -d --debug, -d
Print debug output Print debug output
--help, -h --help, -h
@@ -85,14 +84,13 @@ jriver-xvnc [--service-type=system]
Manually specify display to use for x11vnc/Xvnc (ex. ':1') Manually specify display to use for x11vnc/Xvnc (ex. ':1')
jriver-createrepo [--service-type=system] jriver-createrepo [--service-type=system]
Install hourly service to build latest MC RPM and run createrepo Install hourly service to build latest MC RPM and run createrepo
By default installs as root service to handle www permissions more gracefully
``` ```
#### `--service-type=` #### `--service-type=`
By default, MC services use a sane `--service-type` listed next to the service name in the [`--service=`](#--service) section. User services begin at user login and are managed by the unprivileged user, for example: `systemctl --user stop jriver-mediacenter`. System services begin at boot and are managed by root, for example: `sudo systemctl stop jriver-servicename@username.service`. It is possible to run all services of a particular user at boot using [`sudo loginctl enable-linger username`](https://www.freedesktop.org/software/systemd/man/loginctl.html). Services use a sane default `--service-type` listed next to the service name in the [`--service=`](#--service) section. User services begin at user login and are managed by the unprivileged user, for example: `systemctl --user stop jriver-mediacenter`. System services begin at boot and are managed by root, for example: `sudo systemctl stop jriver-servicename@username.service`. It is possible to run all services of a particular user at boot using [`sudo loginctl enable-linger username`](https://www.freedesktop.org/software/systemd/man/loginctl.html).
Multiple services (but not `--service-types`) can be installed at one time using multiple `--service` blocks: `installJRMC --install repo --service jriver-x11vnc --service jriver-mediacenter` Multiple services (but not `--service-types`) can be installed at one time using multiple `--service` blocks: `installJRMC --install=repo --service=jriver-x11vnc --service=jriver-mediacenter`
#### `jriver-x11vnc` versus `jriver-xvnc` #### `jriver-x11vnc` versus `jriver-xvnc`
@@ -108,6 +106,17 @@ Multiple services (but not `--service-types`) can be installed at one time using
**Note:** `ufw` is not installed by default on Debian but will be installed by `installJRMC`. To prevent SSH lock-out, Debian users that have not already enabled `ufw` will need to `sudo ufw enable` after running `installJRMC` and inspecting their configuration. **Note:** `ufw` is not installed by default on Debian but will be installed by `installJRMC`. To prevent SSH lock-out, Debian users that have not already enabled `ufw` will need to `sudo ufw enable` after running `installJRMC` and inspecting their configuration.
## Nicities
Depending on the distribution, `installJRMC` also performs the following tasks during MC installation:
* Automatically updates `installJRMC` to the latest release
* Activates external third-party repositories for improved media playback (hardware decoding, etc.)
* Adds temporary legacy repositories to provide deprecated libraries
* Links non-standard SSL certs
* Disables BTRFS CoW for MC database directories
* Activates MC if a valid license file is found in common locations
## Examples ## Examples
* `installJRMC` * `installJRMC`
@@ -154,4 +163,4 @@ Multiple services (but not `--service-types`) can be installed at one time using
Did you find `installJRMC` useful? [Buy me a coffee!](https://paypal.me/bryanroessler) Did you find `installJRMC` useful? [Buy me a coffee!](https://paypal.me/bryanroessler)
Did you find a bug? Let me know on [Interact!](https://yabb.jriver.com/interact/index.php/topic,134152.0.html) Did you find a bug? [Let me know on Interact!](https://yabb.jriver.com/interact/index.php/topic,141168.0.html)

View File

@@ -33,28 +33,32 @@ print_help() {
debug "${FUNCNAME[0]}()" debug "${FUNCNAME[0]}()"
cat <<-EOF cat <<-EOF
SEE:
README.md for more information
USAGE: USAGE:
installJRMC [[OPTION] [VALUE]]... installJRMC [[OPTION] [VALUE]]...
If no options (excluding -d or --debug) are provided installJRMC defaults to '--install repo'. installJRMC defaults to --install=repo on platforms with a JRiver repository and --install=local on all others.
Specifying --build, --createrepo, --service, or --uninstall disables the default install method.
OPTIONS OPTIONS
--install, -i repo|local --install, -i repo|local
repo: Install MC from repository, updates are handled by the system package manager repo: Install MC from repository, updates are handled by the system package manager
local: Build and install MC package locally from official source release local: Build and install MC locally from official source package
--build[=suse|fedora|centos] --build[=suse|fedora|centos]
Build RPM from source DEB but do not install Build RPM from source DEB but do not install
Optionally, specify a target distro for cross-building (ex. --build=suse, note the '=') Optionally, specify a target distro for cross-building (ex. --build=suse, note the '=')
--compat --compat
Build/install MC locally without minimum dependency version requirements Build/install MC locally without minimum dependency version requirements
--mcversion VERSION --mcversion VERSION
Specify the MC version, ex. "$MC_VERSION" or "${MC_VERSION%%.*}" Specify the MC version, ex. "$MC_VERSION" or "${MC_VERSION%%.*}" (default: latest release)
--arch VERSION --arch VERSION
Specify the target MC architecture, ex. "amd64", "arm64", etc (default: host) Specify the target MC architecture, ex. "amd64", "arm64", etc (default: host)
--mcrepo REPO --mcrepo REPO
Specify the MC repository, ex. "bullseye", "bookworm", "noble", etc (default: auto) Specify the MC repository, ex. "bullseye", "bookworm", "noble", etc (default: auto)
--outputdir PATH --outputdir PATH
Generate rpmbuild output in this directory (default: ./output) Generate reusable installJRMC output in this PATH (default: ./output)
--restorefile MJR_FILE --restorefile MJR_FILE
Restore file location for automatic license registration Restore file location for automatic license registration
--betapass PASSWORD --betapass PASSWORD
@@ -80,7 +84,7 @@ print_help() {
--yes, -y, --auto --yes, -y, --auto
Assume yes response to questions Assume yes response to questions
--version, -v --version, -v
Print this script version and exit Print installJRMC version and exit
--debug, -d --debug, -d
Print debug output Print debug output
--help, -h --help, -h
@@ -99,16 +103,12 @@ print_help() {
Enable and start a new Xvnc session running JRiver Media Center Enable and start a new Xvnc session running JRiver Media Center
--vncpass PASSWORD --vncpass PASSWORD
Set the vnc password for x11vnc/Xvnc access. If no password is set, installJRMC Set the vnc password for x11vnc/Xvnc access. If no password is set, installJRMC
will either use existing password stored in \$HOME/.vnc/jrmc_passwd or use no password will either use existing password stored in \$HOME/.vnc/jrmc_passwd or else no password
--display DISPLAY --display DISPLAY
Display to use for x11vnc/Xvnc (default: The current display (x11vnc) or the Display to use for x11vnc/Xvnc (default: The current display (x11vnc) or the
current display incremented by 1 (Xvnc)) current display incremented by 1 (Xvnc))
jriver-createrepo (system) jriver-createrepo (system)
Install hourly service to build latest MC RPM and run createrepo Install hourly service to build latest MC RPM and run createrepo
CONTAINERS (TODO: Under construction)
mediacenter-xvnc
createrepo
EOF EOF
} }
@@ -134,8 +134,7 @@ parse_input() {
eval set -- "$input" eval set -- "$input"
while true; do while true; do
case $1 in case $1 in
--install|-i) --install|-i) shift;
shift
case $1 in case $1 in
local|rpm|deb) BUILD_SWITCH=1 LOCAL_INSTALL_SWITCH=1 ;; local|rpm|deb) BUILD_SWITCH=1 LOCAL_INSTALL_SWITCH=1 ;;
repo|remote) REPO_INSTALL_SWITCH=1 ;; repo|remote) REPO_INSTALL_SWITCH=1 ;;
@@ -181,7 +180,7 @@ parse_input() {
;; ;;
--arch) shift; USER_ARCH="$1" ;; --arch) shift; USER_ARCH="$1" ;;
--mcrepo) shift; USER_MC_REPO="$1" ;; --mcrepo) shift; USER_MC_REPO="$1" ;;
--restorefile) shift; MJR_FILE="$1" ;; --restorefile) shift; MJR_FILE="$1"; [[ -f $MJR_FILE ]] || err "Specified license $MJR_FILE missing." ;;
--betapass) shift; BETAPASS="$1" ;; --betapass) shift; BETAPASS="$1" ;;
--service-type) shift; SERVICE_TYPE="$1" ;; --service-type) shift; SERVICE_TYPE="$1" ;;
--service|-s|--services) shift; SERVICES+=("$1") ;; --service|-s|--services) shift; SERVICES+=("$1") ;;
@@ -208,9 +207,8 @@ parse_input() {
fi fi
# Fallback to default install method in some scenarios # Fallback to default install method in some scenarios
if ! ((UNINSTALL_SWITCH + BUILD_SWITCH + CREATEREPO_SWITCH + if ! ((UNINSTALL_SWITCH || BUILD_SWITCH || CREATEREPO_SWITCH || LOCAL_INSTALL_SWITCH
LOCAL_INSTALL_SWITCH + CONTAINER_INSTALL_SWITCH + SNAP_INSTALL_SWITCH + || CONTAINER_INSTALL_SWITCH || SNAP_INSTALL_SWITCH || APPIMAGE_INSTALL_SWITCH)) &&
APPIMAGE_INSTALL_SWITCH)) &&
[[ ${#SERVICES[@]} -eq 0 && ${#CONTAINERS[@]} -eq 0 ]]; then [[ ${#SERVICES[@]} -eq 0 && ${#CONTAINERS[@]} -eq 0 ]]; then
debug "Defaulting to --install=repo" debug "Defaulting to --install=repo"
REPO_INSTALL_SWITCH=1 REPO_INSTALL_SWITCH=1
@@ -1198,7 +1196,9 @@ restore_license() {
for f in "$MJR_FILE" "$newest"; do for f in "$MJR_FILE" "$newest"; do
if [[ -f $f ]]; then if [[ -f $f ]]; then
execute "mediacenter$MC_MVERSION" "/RestoreFromFile" "$f" if execute "mediacenter$MC_MVERSION" "/RestoreFromFile" "$f"; then
return 0
fi
fi fi
done done
fi fi