...
The following must be installed on the server:
- Java VM
- haveged
- glibc-2.14
- fontconfig (if MCU mixer with captions is planned to use)
WCS can be configured to work in networks of varying topology, for instance, behind corporate NAT or for using a public IP address to services external clients. For quick setup and evaluation of WCS capabilities we recommend using a VPS or a dedicated server with a static and public IP address that is also the IP address of the network interface of the same server. Usually, such a virtual or dedicated server can be rented from a number of providers.
Supported Linux distribution packages
Any distribution package will do: CentOS, Debian, Ubuntu, RedHat, Fedora. Today, server is tested to be compatible with the following distribution packages:
- CentOS 7.6, 7,8, 8, Stream
- Ubuntu 18.04, 20.04
- Fedora 31, 32, 33
- Debian 9, 10
- Amazon Linux 2
The recommended distribution package is CentOS 7.x. Testing was done on CentOS, so in case of troubles or other questions our specialists will be able to deliver faster solution and provide other assistance in configuring the server.6 or Ubuntu 18.04, a stable work on older distribution packages is not guaranteed.
Preparing to install
Make sure the server is connected to the Internet and you have root access via SSH.
...
In some distribution packages (i.e., CentOS) wget is not installed by default. If you plan to use this utility to upload necessary installation packagesIn this case, install wget using the following command
Code Block | ||||
---|---|---|---|---|
| ||||
sudo yum install wget |
In some Debian or Ubuntu distributions, curl may be not installed in its turn. In this case, install curl using the following command
Code Block | ||||
---|---|---|---|---|
| ||||
sudo apt update && apt upgrade
sudo apt install curl |
This is how the server ready to install WCS looks from the Putty SSH client. Please note that we use an x86_64 system.
...
We recommend installing the latest version of Oracle JDK (Java Development Kit), because JDK has a number of useful diagnostics tools that JVM lacks.
To install JDK, download the installation package or archive from oracle.com. The recommended version is JDK 1.8 update 161 or higher.
By the moment these docs are being written, the installation packages were available for various Linuc distribution packages at this link: Java SE Development Kit 8 Downloads
A universal package that fits any Linux distribution is the archive named like this jdk-8u161-linux-x64.tar.gz.
Downloading a package from oracle.com directly to the server can be done as followsToday, the following JDK versions are tested and recommended to use: 8, 12, 14, 15, 16, 17. WSC can be unstable with another JDK versions.
JDK installation from repository
JDK installation from OS repository (CentOS for example) should be done as follows
Code Block | ||||
---|---|---|---|---|
| ||||
yum -y install java-1.8.0-openjdk-devel |
Manual JDK installation
JDK 12
This is the example script for OpenJDK 12 installation using the package downloaded from https://download.java.net/java/GA:
Code Block | ||||
---|---|---|---|---|
| ||||
# Download JDK package
sudo rm -rf jdk*
curl -s https://download.java.net/java/GA/jdk12.0.2/e482c34c86bd4bf8b56c0b35558996b9/10/GPL/openjdk-12.0.2_linux-x64_bin.tar.gz | tar -zx
[ ! -d jdk-12.0.2/bin ] && exit 1
# Prepare installation folder
sudo mkdir -p /usr/java
[ -d /usr/java/jdk-12.0.2 ] && sudo rm -rf /usr/java/jdk-12.0.2
# Move JDK files to installation folder
sudo mv -f jdk-12.0.2 /usr/java
[ ! -d /usr/java/jdk-12.0.2/bin ] && exit 1
# Make /usr/java/default symlink to installation folder for convenience
sudo rm -f /usr/java/default
sudo ln -sf /usr/java/jdk-12.0.2 /usr/java/default
# Make the necessary symlinks
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/java/jdk-12.0.2/bin/java" 1
sudo update-alternatives --install "/usr/bin/jstack" "jstack" "/usr/java/jdk-12.0.2/bin/jstack" 1
sudo update-alternatives --install "/usr/bin/jcmd" "jcmd" "/usr/java/jdk-12.0.2/bin/jcmd" 1
sudo update-alternatives --install "/usr/bin/jmap" "jmap" "/usr/java/jdk-12.0.2/bin/jmap" 1
sudo update-alternatives --set "java" "/usr/java/jdk-12.0.2/bin/java"
sudo update-alternatives --set "jstack" "/usr/java/jdk-12.0.2/bin/jstack"
sudo update-alternatives --set "jcmd" "/usr/java/jdk-12.0.2/bin/jcmd"
sudo update-alternatives --set "jmap" "/usr/java/jdk-12.0.2/bin/jmap" |
JDK 14
This is the example script for OpenJDK 14 installation using the package downloaded from https://download.java.net/java/GA:
Code Block | ||||
---|---|---|---|---|
| ||||
wget --no-cookies --no-check-certificate --header "Cookie: oraclelicense=accept-securebackup-cookie" \
http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.tar.gz \
-O jdk-8u161-linux-x64.tar.gz |
...
# Download JDK package
sudo rm -rf jdk*
curl -s https://download.java.net/java/GA/jdk14.0.1/664493ef4a6946b186ff29eb326336a2/7/GPL/openjdk-14.0.1_linux-x64_bin.tar.gz | tar -zx
[ ! -d jdk-14.0.1/bin ] && exit 1
# Prepare installation folder
sudo mkdir -p /usr/java
[ -d /usr/java/jdk-14.0.1 ] && sudo rm -rf /usr/java/jdk-14.0.1
# Move JDK files to installation folder
sudo mv -f jdk-14.0.1 /usr/java
[ ! -d /usr/java/jdk-14.0.1/bin ] && exit 1
# Make /usr/java/default symlink to installation folder for convenience
sudo rm -f /usr/java/default
sudo ln -sf /usr/java/jdk-14.0.1 /usr/java/default
# Make the necessary symlinks
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/java/jdk-14.0.1/bin/java" 1
sudo update-alternatives --install "/usr/bin/jstack" "jstack" "/usr/java/jdk-14.0.1/bin/jstack" 1
sudo update-alternatives --install "/usr/bin/jcmd" "jcmd" "/usr/java/jdk-14.0.1/bin/jcmd" 1
sudo update-alternatives --install "/usr/bin/jmap" "jmap" "/usr/java/jdk-14.0.1/bin/jmap" 1
sudo update-alternatives --set "java" "/usr/java/jdk-14.0.1/bin/java"
sudo update-alternatives --set "jstack" "/usr/java/jdk-14.0.1/bin/jstack"
sudo update-alternatives --set "jcmd" "/usr/java/jdk-14.0.1/bin/jcmd"
sudo update-alternatives --set "jmap" "/usr/java/jdk-14.0.1/bin/jmap" |
JDK 15
This is the example script for OpenJDK 15 installation using the package downloaded from https://download.java.net/java/GA:
Code Block | ||||
---|---|---|---|---|
| ||||
# Download JDK package
sudo rm -rf jdk*
curl -s https://download.java.net/java/GA/jdk15.0.2/0d1cfde4252546c6931946de8db48ee2/7/GPL/openjdk-15.0.2_linux-x64_bin.tar.gz | tar -zx
[ ! -d jdk-15.0.2/bin ] && exit 1
# Prepare installation folder
sudo mkdir -p /usr/java
[ -d /usr/java/jdk-15.0.2 ] && sudo rm -rf /usr/java/jdk-15.0.2
# Move JDK files to installation folder
sudo mv -f jdk-15.0.2 /usr/java
[ ! -d /usr/java/jdk-15.0.2/bin ] && exit 1
# Make /usr/java/default symlink to installation folder for convenience
sudo rm -f /usr/java/default
sudo ln -sf /usr/java/jdk-15.0.2 /usr/java/default
# Make the necessary symlinks
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/java/jdk-15.0.2/bin/java" 1
sudo update-alternatives --install "/usr/bin/jstack" "jstack" "/usr/java/jdk-15.0.2/bin/jstack" 1
sudo update-alternatives --install "/usr/bin/jcmd" "jcmd" "/usr/java/jdk-15.0.2/bin/jcmd" 1
sudo update-alternatives --install "/usr/bin/jmap" "jmap" "/usr/java/jdk-15.0.2/bin/jmap" 1
sudo update-alternatives --set "java" "/usr/java/jdk-15.0.2/bin/java"
sudo update-alternatives --set "jstack" "/usr/java/jdk-15.0.2/bin/jstack"
sudo update-alternatives --set "jcmd" "/usr/java/jdk-15.0.2/bin/jcmd"
sudo update-alternatives --set "jmap" "/usr/java/jdk-15.0.2/bin/jmap" |
JDK 16
This is the example script for OpenJDK 15 installation using the package downloaded from https://download.java.net/java/GA:
Code Block | ||||
---|---|---|---|---|
| ||||
#Unpack# Download theJDK archivepackage $tarsudo rm -xvzfrf jdk-8u161-* curl -s https://download.java.net/java/GA/jdk16/7863447f0ab643c585b9bdebf67c69db/36/GPL/openjdk-16_linux-x64_bin.tar.gz | tar -zx [ ! -d jdk-16/bin ] && exit 1 # Prepare installation folder #Copy to the destination folder # in CentOS 7 the -R option is not specified mv -R jdk1.8.0_161 /usr/java/jdk1.8.0_161 #For convenience, create a link to the path $lnsudo mkdir -p /usr/java [ -d /usr/java/jdk-16 ] && sudo rm -rf /usr/java/jdk-16 # Move JDK files to installation folder sudo mv -f jdk-16 /usr/java [ ! -d /usr/java/jdk-16/bin ] && exit 1 # Make /usr/java/default symlink to installation folder for convenience sudo rm -f /usr/java/default sudo ln -sf /usr/java/jdk-16 /usr/java/default # Make the necessary symlinks sudo update-alternatives --install "/usr/bin/java" "java" "/usr/java/jdk-16/bin/java" 1 sudo update-alternatives --install "/usr/bin/jstack" "jstack" "/usr/java/jdk-16/bin/jstack" 1 sudo update-alternatives --install "/usr/bin/jcmd" "jcmd" "/usr/java/jdk-16/bin/jcmd" 1 sudo update-alternatives --install "/usr/bin/jmap" "jmap" "/usr/java/jdk-16/bin/jmap" 1 sudo update-alternatives --set "java" "/usr/java/jdk-16/bin/java" sudo update-alternatives --set "jstack" "/usr/java/jdk-16/bin/jstack" sudo update-alternatives --set "jcmd" "/usr/java/jdk-16/bin/jcmd" sudo update-alternatives --set "jmap" "/usr/java/jdk-16/bin/jmap" |
JDK 17
This is the example script for OpenJDK 15 installation using the package downloaded from https://download.java.net/java/GA:
Code Block | ||||
---|---|---|---|---|
| ||||
# Download JDK package sudo rm -rf jdk* curl -s https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-x64_bin.tar.gz | tar -zx [ ! -d jdk-17.0.2/bin ] && exit 1 # Prepare installation folder sudo mkdir -p /usr/java [ -d /usr/java/jdk-17.0.2 ] && sudo rm -rf /usr/java/jdk-17.0.2 # Move JDK files to installation folder sudo mv -f jdk-17.0.2 /usr/java [ ! -d /usr/java/jdk-17.0.2/bin ] && exit 1 # Make /usr/java/default symlink to installation folder for convenience sudo rm -f /usr/java/default sudo ln -sf /usr/java/jdk1.8.0_161 jdk-17.0.2 /usr/java/default # Make the necessary symlinks sudo update-alternatives --install "/usr/bin/java" "java" "/usr/java/jdk-17.0.2/bin/java" 1 sudo update-alternatives --install "/usr/bin/jstack" "jstack" "/usr/java/default #Create a link to the java executable $ln -sf /usr/java/default/bin/java /usr/bin/javajdk-17.0.2/bin/jstack" 1 sudo update-alternatives --install "/usr/bin/jcmd" "jcmd" "/usr/java/jdk-17.0.2/bin/jcmd" 1 sudo update-alternatives --install "/usr/bin/jmap" "jmap" "/usr/java/jdk-17.0.2/bin/jmap" 1 sudo update-alternatives --set "java" "/usr/java/jdk-17.0.2/bin/java" sudo update-alternatives --set "jstack" "/usr/java/jdk-17.0.2/bin/jstack" sudo update-alternatives --set "jcmd" "/usr/java/jdk-17.0.2/bin/jcmd" sudo update-alternatives --set "jmap" "/usr/java/jdk-17.0.2/bin/jmap" |
Installation checking
To check JDK installation use the following command
Code Block | ||||
---|---|---|---|---|
| ||||
java -version |
JDK installing is done
Here is how the server with installed JVM / JDK looks. Please notice the line: 64-Bit Server VM. Java works in the 64-bit mode with the server settings.
Haveged installation
...
fontconfig installation
If MCU mixer is planned to use with participant names displaying, and JDK 12 or 14 is installed, it would be necessary to install fontconfig library:
Code Block | ||||
---|---|---|---|---|
| ||||
sudo yum install epel-release yum install haveged haveged chkonfig on havegedy fontconfig |