Other languages Deutsch ; English |
Contents
- 1 Introduction
- 2 Benefits
- 3 Preparation
- 4 Install Zoom
- 5 Run Zoom
- 6 Register for free Zoom account
- 7 Login and check settings
- 8 Updates
- 9 References
- 10 Appendix-1: check_zoom script
- 11 Appendix-2: Example running check_zoom for new install
- 12 Appendix-3: Example running check_zoom for updating installed version
Introduction
Zoom is an audio and video conferencing system available for PCs and mobiles: Linux, Apple, Windows, Android, Blackberry.
This page describes how to install Zoom in Mageia 7 Linux (64bit).
For more information, please see: Getting started with Zoom
Note that Zoom client is free but is not available via the Mageia packaging system. Zoom calls up to 40 minutes are free.
Benefits
Zoom makes it easy to have voice and video conference calls. Unlike some other VOIP systems it does not limit the number of people on a call. You can share your desktop, have text chat, and record your meetings.
Preparation
sudo
This page documents the installation of Zoom using sudo where needed.
Check that you have sudo installed and configured as described here: Configuring_sudo.
Manual or script install?
Once sudo is configured there is a choice for installing zoom:
- Use the check_zoom script in Appendix-1.
- Follow the manual install steps described below.
The advantage of check_zoom is that it can be used to check if a newer update is available and if so automatically install the update. This is useful because at the time of writing this, there is no Mageia URPMI repository available for zoom. So, running a system update ("urpmi --auto-update") will not install any updates for zoom.
Install pre-requisites
Install packages that are needed for Zoom, or check that it is already installed:
On 64 bit systems we need lib64xcb-xtest0:
On 32 bit systems we need libxcb-xtest0:
Download Zoom rpm
First, create a directory ~/Downloads/zoom/
to save the RPM and package signing key in.
Download zoom RPM from Zoom's download centre. Unfortunately, there is no port for Mageia but we can use the Fedora version.
From the Select Linux type select Fedora.
Select correct OA architecture to match your system (eg 32 or 64 bit).
Note: All the next examples (below) show 64 bit system |
Click on Download and save to ~/Downloads/zoom/
Alternatively, from command line:
Example:
[user@localhost ~]$ cd ~/Downloads/zoom && wget https://zoom.us/client/latest/zoom_x86_64.rpm --2019-12-10 19:53:33-- https://zoom.us/client/latest/zoom_x86_64.rpm Resolving zoom.us (zoom.us)... 52.202.62.235 Connecting to zoom.us (zoom.us)|52.202.62.235|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://d11yldzmag5yn.cloudfront.net/prod/3.5.330166.1202/zoom_x86_64.rpm [following] --2019-12-10 19:53:34-- https://d11yldzmag5yn.cloudfront.net/prod/3.5.330166.1202/zoom_x86_64.rpm Resolving d11yldzmag5yn.cloudfront.net (d11yldzmag5yn.cloudfront.net)... 52.85.104.88, 52.85.104.162, 52.85.104.39, ... Connecting to d11yldzmag5yn.cloudfront.net (d11yldzmag5yn.cloudfront.net)|52.85.104.88|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 70148664 (67M) [binary/octet-stream] Saving to: ‘zoom_x86_64.rpm’ zoom_x86_64.rpm 100%[==========================================>] 66.90M 688KB/s in 99s 2019-12-10 19:55:14 (693 KB/s) - ‘zoom_x86_64.rpm’ saved [70148664/70148664]
Download Zoom package signing key
On the Zoom downloads page, click on Download Public Key and save to ~/Downloads/zoom/
Alternatively, from command line:
Import the package signing key
Verify package signing key
Example:
[user@localhost ~]$ rpm -qi gpg-pubkey-61a7c71d-* Name : gpg-pubkey Version : 61a7c71d Release : 55740c4b Architecture: (none) Install Date: Sun 26 Apr 2020 23:16:09 BST Group : Public Keys Size : 0 License : pubkey Signature : (none) Source RPM : (none) Build Date : Sun 07 Jun 2015 10:18:03 BST Build Host : localhost Relocations : (not relocatable) Packager : Zoom Video Communcations, Inc. Linux Package Signing Key <linux-package-signing-key@zoom.us> Summary : gpg(Zoom Video Communcations, Inc. Linux Package Signing Key <linux-package-signing-key@zoom.us>) Description : -----BEGIN PGP PUBLIC KEY BLOCK----- Version: rpm-4.14.2.1 (NSS-3) mQENBFV0DEsBCADKH2KDn1fdXa4BCwGTD+5DbrAYLCm2dWCo8ptgIJLRR1WYuCgk ANHr48yN1m2fm69dJaeaY6vq5Vtikp2p80Cldf2LQbLibTTY6u2V9a1Cj2WN2Qen KE7ockwVNFmWNKIRQnCx5hknUHu/9e916ufBNIM5B7+bQKlo97CW2Zqmx/4CXuiE X2ifBtxZ11QwYX7cYTDCStJzLrq6kQbZ8VchJxTT0yNNMFUt0YeeSetsqsg1QUAL Oyl5joHBGrHP0sF93GJJgeGhn48Sr88Lf6SwTL7rCU4qNOW042NlPLPC31OGQ9kl dZAtmMg3jLeprfoFPa8IYjKl5IEdr/b4i+9PABEBAAG0XFpvb20gVmlkZW8gQ29t bXVuY2F0aW9ucywgSW5jLiBMaW51eCBQYWNrYWdlIFNpZ25pbmcgS2V5IDxsaW51 eC1wYWNrYWdlLXNpZ25pbmcta2V5QHpvb20udXM+iQE4BBMBAgAiBQJVdAxLAhsD BgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRC5A78YYafHHY0SB/4o2DqclcDa QLD0iQCxPgU7INHGUZbHYZCFuVu+s5leYcfRr8xA/0A3Mmk8arZELo2nTpougvMF IfYkvSDz8j/dqw86R8Vqbj0EF22AnJ9CG4/loTx/hkW4hVC+neD3XVD0e3hQR30L sEZB+OhkhnNl17127Fl6R57Ux+eFJM5OwASvUuQlem+TJCBrsCAQ49PsvPUTT4PV AbCWgDlIyLJzr36JNCqOQQmt9dOFA4bKyaWC5gI5DJ38KC4Z2gewjDFzf9ebV+2D z0xqE9r0TQLHqEuHMryRbLrVoUD7CaI20vjzehstgDg3xvp3/Qj65PuACuWh8CUP K1O+8K7aX/Y2uQENBFV0DEsBCACobttgMoxIRJWPVl2WM0/Bxxv34SiYb3Ctdw0o 8M7zUIeUcHaj+JVsytp4z0XY21ma+7oQHT56cv1nN4jv5o8ogNskGxc1xUXuRraY QE4Xmtd+YzKF8R6GmbGkvuuEQ3gi7Vfd1+6U1+7FiCLtXMfQBt4SqX0OL3r+j7Qd R6n7IcHAkDleRINit/M335cl5Z5MV4hNoK6lLcZ/+deuSuuSSBOUc5QO4Xo2gWPH lfokJI0gPjB03Se4Oy0OH3GwK2i+gbztkjXWggIwMOMD296QFQdHdgV0ZYzaAuRd Ozg4SAoCoysT6bPsk45pVCjdeT5FeP9qoMnINIRGW45VDyYTABEBAAGJAR8EGAEC AAkFAlV0DEsCGwwACgkQuQO/GGGnxx0Z4AgAiZr0Lf/Zv4Y5+v42Luoktqg4Z8wM zpuABxZMIJItftdBxh+ZiIxibmiIJFppTjz1Qof5VZo4CYIaYFnyXWOfRA3LoXH6 GbCWPxukOnQX0TqJaX2IMCsP7PWgxafwesUJyf2ZJ+m5XyEHLuro2eiMgcyZYHGh t4ihgwsuNO3XDO9Utu9RrCTDSIb08qpZLohwiY8BKw5O0ihmYGT+RmPWBnyp4Wir okz267lNJ5HYgraeqXK4Gkz4XNmWVQ5DNudwOAZElpM1ucK7i/qwpVpEApMpnYJa fWmqiT58vLKkJVWmNDODc8r4RChYE8BR5tyIjJO/2y4IUcpJ6RIli07jkg== =cBIF -----END PGP PUBLIC KEY BLOCK-----
Install Zoom
Install the downloaded Zoom rpm.
Note that we are using --allow-nodeps because this is an RPM for Fedora and we have already sorted dependencies with our pre-requisites install.
Example, installing 64 bit version of Zoom:
[user@localhost ~]$ /bin/sudo urpmi --allow-nodeps ~/Downloads/zoom/zoom_x86_64.rpm WARNING: --allow-nodeps option is in use. Some strange problems may happen To satisfy dependencies, the following packages are going to be installed: Package Version Release Arch (medium "Core Release (Installer)") gnu-free-fonts-common 20120503 9.mga7 noarch gnu-free-fonts-compat 20120503 9.mga7 noarch gnu-free-mono-fonts 20120503 9.mga7 noarch gnu-free-sans-fonts 20120503 9.mga7 noarch gnu-free-serif-fonts 20120503 9.mga7 noarch ibus-m17n 1.4.1 1.mga7 x86_64 lib64anthy0 9100h 25.20110409.> x86_64 lib64m17n-lib0 1.8.0 2.mga7 x86_64 lib64otf1 0.9.16 2.mga7 x86_64 m17n-lib 1.8.0 2.mga7 x86_64 (medium "Core Updates") ibus 1.5.20 1.1.mga7 x86_64 ibus-gtk 1.5.20 1.1.mga7 x86_64 ibus-gtk3 1.5.20 1.1.mga7 x86_64 ibus-ui-gtk3 1.5.20 1.1.mga7 x86_64 lib64ibus-gir1.0 1.5.20 1.1.mga7 x86_64 lib64ibus1.0_5 1.5.20 1.1.mga7 x86_64 m17n-db 1.8.0 2.1.mga7 noarch (command line) zoom 3.5.392530.> 1 x86_64 307MB of additional disk space will be used. 77MB of packages will be retrieved. Proceed with the installation of the 18 packages? (Y/n) y distrib-coffee.ipsl.jussieu.fr::mageia/distrib/7/x86_64/media/core/updates/ibus-ui-gtk3-1.5.20-1.1.mga7.x86_64.rpm distrib-coffee.ipsl.jussieu.fr::mageia/distrib/7/x86_64/media/core/updates/ibus-gtk3-1.5.20-1.1.mga7.x86_64.rpm distrib-coffee.ipsl.jussieu.fr::mageia/distrib/7/x86_64/media/core/updates/lib64ibus1.0_5-1.5.20-1.1.mga7.x86_64.rpm distrib-coffee.ipsl.jussieu.fr::mageia/distrib/7/x86_64/media/core/updates/lib64ibus-gir1.0-1.5.20-1.1.mga7.x86_64.rpm distrib-coffee.ipsl.jussieu.fr::mageia/distrib/7/x86_64/media/core/updates/ibus-gtk-1.5.20-1.1.mga7.x86_64.rpm distrib-coffee.ipsl.jussieu.fr::mageia/distrib/7/x86_64/media/core/updates/ibus-1.5.20-1.1.mga7.x86_64.rpm distrib-coffee.ipsl.jussieu.fr::mageia/distrib/7/x86_64/media/core/updates/m17n-db-1.8.0-2.1.mga7.noarch.rpm installing /var/cache/urpmi/rpms/lib64ibus1.0_5-1.5.20-1.1.mga7.x86_64.rpm /mnt/Mageia-7.1-x86_64/x86_64/media/core/m17n-lib-1.8.0-2.mga7.x86_64.rpm /var/cache/urpmi/rpms/ibus-1.5.20-1.1.mga7.x86_64.rpm /mnt/Mageia-7.1-x86_64/x86_64/media/core/gnu-free-mono-fonts-20120503-9.mga7.noarch.rpm /var/cache/urpmi/rpms/ibus-ui-gtk3-1.5.20-1.1.mga7.x86_64.rpm /mnt/Mageia-7.1-x86_64/x86_64/media/core/gnu-free-fonts-compat-20120503-9.mga7.noarch.rpm /home/mpb/Downloads/zoom/zoom_x86_64.rpm /mnt/Mageia-7.1-x86_64/x86_64/media/core/lib64otf1-0.9.16-2.mga7.x86_64.rpm /mnt/Mageia-7.1-x86_64/x86_64/media/core/gnu-free-serif-fonts-20120503-9.mga7.noarch.rpm /mnt/Mageia-7.1-x86_64/x86_64/media/core/ibus-m17n-1.4.1-1.mga7.x86_64.rpm /mnt/Mageia-7.1-x86_64/x86_64/media/core/gnu-free-fonts-common-20120503-9.mga7.noarch.rpm /mnt/Mageia-7.1-x86_64/x86_64/media/core/lib64anthy0-9100h-25.20110409.14.mga7.x86_64.rpm /mnt/Mageia-7.1-x86_64/x86_64/media/core/lib64m17n-lib0-1.8.0-2.mga7.x86_64.rpm /var/cache/urpmi/rpms/ibus-gtk-1.5.20-1.1.mga7.x86_64.rpm /mnt/Mageia-7.1-x86_64/x86_64/media/core/gnu-free-sans-fonts-20120503-9.mga7.noarch.rpm /var/cache/urpmi/rpms/ibus-gtk3-1.5.20-1.1.mga7.x86_64.rpm /var/cache/urpmi/rpms/lib64ibus-gir1.0-1.5.20-1.1.mga7.x86_64.rpm /var/cache/urpmi/rpms/m17n-db-1.8.0-2.1.mga7.noarch.rpm Preparing... ############################################################################################################################################################# 1/18: lib64ibus1.0_5 ############################################################################################################################################################# 2/18: gnu-free-fonts-common ############################################################################################################################################################# 3/18: lib64otf1 ############################################################################################################################################################# 4/18: lib64m17n-lib0 ############################################################################################################################################################# 5/18: gnu-free-mono-fonts ############################################################################################################################################################# 6/18: gnu-free-serif-fonts ############################################################################################################################################################# 7/18: gnu-free-sans-fonts ############################################################################################################################################################# 8/18: gnu-free-fonts-compat ############################################################################################################################################################# 9/18: lib64ibus-gir1.0 ############################################################################################################################################################# 10/18: ibus-gtk ############################################################################################################################################################# 11/18: ibus-ui-gtk3 ############################################################################################################################################################# 12/18: ibus-gtk3 ############################################################################################################################################################# 13/18: ibus ############################################################################################################################################################# 14/18: m17n-db ############################################################################################################################################################# 15/18: lib64anthy0 ############################################################################################################################################################# 16/18: m17n-lib ############################################################################################################################################################# 17/18: ibus-m17n ############################################################################################################################################################# 18/18: zoom ############################################################################################################################################################# run post install script, action is 1...
Run Zoom
Zoom gets installed as /usr/bin/zoom.
So all we have to do is start it in the desktop as: Applications -> Internet -> Zoom.
Alternatively from command line:
zoom
This will result in the splash screen being displayed:
Register for free Zoom account
Once you have registered with Zoom for a free account you can host a meeting.
Login to your account and then schedule a meeting and share the meeting details with your meeting attendees.
Meetings are assigned an "ID" number of the format: 123-456-789.
People can join meetings either using the zoom client software or using a URL in their browser (generated by scheduling a meeting) using the meeting ID number.
Login and check settings
Once you have logged in to the zoom client, you can click on settings (at top right) and check your speakers and microphone are working OK.
Updates
Since the zoom package is not ported to Mageia and not in the Mageia URPMI package lists it will not get updated when urpmi --auto-update is run.
Until a better method is found the only way to update is from time to time re-download the zoom rpm and check if it is different from the previous downloaded zoom rpm.
Update: 2020_11_14
More recent versions of the zoom download RPM will crash silently.
For example: zoom-5.4.53391.1108-1_x86_64.rpm will crash but the older zoom-5.3.472687.1012-1_x86_64.rpm will run OK.
There seems to be an issue with Qt.
A work-around has been suggested by Guillaume Royer:
Instead of starting zoom with:
[user@localhost ~]$ zoom
Use:
[user@localhost ~]$ (unset QT_PLUGIN_PATH; /usr/bin/zoom %U)
NB this command uses parentheses "(" and ")" so that it runs as a child process sub shell and the unset QT_PLUGIN_PATH only affects the child process running zoom without disturbing the shell environment of the current shell.
Alternative: using an shell alias
A shell alias takes precedence over $PATH. This can be added to ~/.bashrc or .bash_profile.
Short version:
alias zoom="(unset QT_PLUGIN_PATH; /usr/bin/zoom)"
Longer version using zenity to notify status:
alias zoom="zenity --notification --title zoom_alias --text='zoom_alias commenced'; zenity --notification --title zoom_alias --text='zoom_alias (unset QT_PLUGIN_PATH; /usr/bin/zoom)'; (unset QT_PLUGIN_PATH; /usr/bin/zoom); zenity --notification --title zoom_alias --text='zoom_alias completed'"
Example for latest update on 2020_04_26
Following recent reports of security issues with Zoom, the most up-to-date version as of 2020_04_26 update below:
Download current version
today=$(date +"%Y_%m_%d"); d=~/Downloads/zoom/; [ -d ${d} ] || mkdir -p ${d}; wget -O - https://zoom.us/client/latest/zoom_x86_64.rpm > ${d}/zoom_x86_64_${today}.rpm
Example:
[user@localhost ~]$ today=$(date +"%Y_%m_%d"); d=~/Downloads/zoom/; [ -d ${d} ] || mkdir -p ${d}; wget -O - https://zoom.us/client/latest/zoom_x86_64.rpm > ${d}/zoom_x86_64_${today}.rpm --2020-04-26 18:26:12-- https://zoom.us/client/latest/zoom_x86_64.rpm Resolving zoom.us (zoom.us)... 3.235.71.136 Connecting to zoom.us (zoom.us)|3.235.71.136|:443... connected. HTTP request sent, awaiting response... 302 Location: https://d11yldzmag5yn.cloudfront.net/prod/3.5.392530.0421/zoom_x86_64.rpm?_x_zm_rtaid=GJLG_3O1RgCFu-UpjOE3qA.1587921972723.f4d9e80ffe2b346bbfdbc02ff0421f4b&_x_zm_rhtaid=542 [following] --2020-04-26 18:26:12-- https://d11yldzmag5yn.cloudfront.net/prod/3.5.392530.0421/zoom_x86_64.rpm?_x_zm_rtaid=GJLG_3O1RgCFu-UpjOE3qA.1587921972723.f4d9e80ffe2b346bbfdbc02ff0421f4b&_x_zm_rhtaid=542 Resolving d11yldzmag5yn.cloudfront.net (d11yldzmag5yn.cloudfront.net)... 13.224.105.223, 13.224.105.146, 13.224.105.21, ... Connecting to d11yldzmag5yn.cloudfront.net (d11yldzmag5yn.cloudfront.net)|13.224.105.223|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 71700240 (68M) [binary/octet-stream] Saving to: ‘STDOUT’ - 100%[=======================================================================================================>] 68.38M 4.37MB/s in 16s 2020-04-26 18:26:29 (4.16 MB/s) - written to stdout [71700240/71700240]
Display details of this downloaded current version
rpm -qip ${d}/zoom_x86_64_${today}.rpm
Example:
[mpb@zbook ~]$ rpm -qip ${d}/zoom_x86_64_${today}.rpm Name : zoom Version : 3.5.392530.0421 Release : 1 Architecture: x86_64 Install Date: (not installed) Group : default Size : 272348621 License : see https://www.zoom.us/ Signature : RSA/SHA1, Tue 21 Apr 2020 10:53:40 BST, Key ID b903bf1861a7c71d Source RPM : zoom-3.5.392530.0421-1.src.rpm Build Date : Tue 21 Apr 2020 10:50:56 BST Build Host : localhost Relocations : / Packager : Zoom Linux Team <linux-dev@zoom.us> Vendor : Zoom Video Communications, Inc. URL : https://www.zoom.us Summary : Zoom, #1 Video Conferencing and Web Conferencing Service Description : Zoom, #1 Video Conferencing and Web Conferencing Service Zoom, the cloud meeting company, unifies cloud video conferencing, simple online meetings, and group messaging into one easy-to-use platform. Our solution offers the best video, audio, and screen-sharing experience across Zoom Rooms, Windows, Mac, Linux, iOS, Android, and H.323/SIP room systems.
Reading this, specifically the build date, it is much newer than the existing installed version of zoom.
Also possible to compare this RPM with previous downloaded RPMs in the ~/Downloads/zoom/
directory.
Display details of installed version
rpm -q zoom
Example:
[user@localhost ~]$ rpm -q zoom zoom-3.5.330166.1202-1
This version 3.5.330166.1202-1 is clearly older than the newly downloaded version (above): 3.5.392530.0421-1
Remove old version
/bin/sudo urpme zoom
Example:
[user@localhost ~]$ /bin/sudo urpme zoom-3.5.330166.1202-1 [sudo] password for mpb: removing zoom-3.5.330166.1202-1.x86_64 removing package zoom-3.5.330166.1202-1.x86_64 1/1: removing zoom-3.5.330166.1202-1.x86_64 ########################################################################### run post uninstall script, action is 0 ... current home is /root
Install newly downloaded version
/bin/sudo rpm -ivh --nodeps ${d}/zoom_x86_64_${today}.rpm
Example:
[user@localhost ~]$ /bin/sudo rpm -ivh --nodeps ${d}/zoom_x86_64_${today}.rpm warning: /home/mpb/Downloads/zoom//zoom_x86_64_2020_04_26.rpm: Header V4 RSA/SHA1 Signature, key ID 61a7c71d: NOKEY Verifying... ################################# [100%] Preparing... ################################# [100%] Updating / installing... 1:zoom-3.5.392530.0421-1 ################################# [100%] run post install script, action is 1...
Display new installed version
rpm -q zoom
Example:
[user@localhost ~]$ rpm -q zoom zoom-3.5.392530.0421-1
Example for previous update 2019_07_11 follows
with reference to:
ID: CVE-2019-13450 Title: Zoom Client Remote Security Vulnerability Vendor: Zoom Description: Zoom Client is exposed to a remote security vulnerability. An attacker can leverage this issue to bypass security restrictions and perform unauthorized actions. Remote attackers can force a user to join a video call with the video camera active. This occurs because any web site can interact with the Zoom web server on localhost port 19421 or 19424. *CVSS v2 Base Score: 9.0 (AV:N/AC:M/Au:N/C:C/I:C/A:P)
Updated zoom client as follows:
Downloaded the current version:
cd ~/Downloads/zoom/ wget https://zoom.us/client/latest/zoom_x86_64.rpm
Rename download for current date:
mv zoom_x86_64.rpm zoom_x86_64_2019_07_11.rpm
Remove existing installed zoom package:
$ rpm -q zoom zoom-2.6.149990.1216-1 $ /bin/sudo urpme zoom-2.6.149990.1216-1 password:
Install new zoom package:
$ /bin/sudo rpm -ivh --nodeps /home/mpb/Downloads/zoom/zoom_x86_64_2019_07_11.rpm Preparing... ################################# [100%] Updating / installing... 1:zoom-2.8.252201.0616-1 ################################# [100%] run post install script, action is 1... current home is /root Unknown media type in type 'all/all' Unknown media type in type 'all/allfiles'
Display newly installed package:
$ rpm -qa | grep zoom zoom-2.8.252201.0616-1
References
- Zoom https://zoom.us/
- CVE-2019-13450 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-13450
- Discussion on Zoom security issues (April 2020) https://blog.rapid7.com/2020/04/02/dispelling-zoom-bugbears-what-you-need-to-know-about-the-latest-zoom-vulnerabilities/
- CVE-2020-11500 https://nvd.nist.gov/vuln/detail/CVE-2020-11500
- Mageia bug report 25038 " Qt applications using a different Qt than system one are broken" https://bugs.mageia.org/show_bug.cgi?id=25038
Appendix-1: check_zoom script
The following example script will check if a newer version of zoom is available and if so then update the installed version of zoom.
Run it as a non-root user. If any install is needed it prompts for password with sudo
#!/bin/sh # Name check_zoom version=1 # Author paul[dot]blackburn[at]gmail[dot]com # Written 2020_06_11 # Updated Sat 13 Jun 13:11:21 BST 2020 # 2020_06_13 re-organized, using functions # 2020_06_11 first draft # # Purpose Installing Zoom in Mageia Linux (both 32 and 64 bit). # Install pre-requisite rpm: # 32bit => libxcb-xtest0 # 64bit => lib64xcb-xtest0 # Install zoom's Linux package signing key. # Check for new version of zoom rpm. # Download and compare with previous installed version. # If newer version then install. # # Usage check_zoom [-help] # run as non-root user # Run this script from time to time to check if there is a new update. # (There is no official urpmi rpm repository for this.) # # Reference https://wiki.mageia.org/en/Using_Zoom_communication_application # # Usage check_zoom # # Assumptions: # o The latest available rpm is in: # 64bit => https://zoom.us/client/latest/zoom_x86_64.rpm # 32bit => https://zoom.us/client/latest/zoom_i686.rpm # # o We are installing on 32 or 64-bit Mageia Linux versions 6/7 # o We will use the Fedora rpm (as "closest" to Mageia - no Mageia port available) # o We use urpmi options: "--allow-nodeps --force" because of Fedora rpm # o There is at least 100mb of free disk space in ${HOME}/Downloads/ # # o Local downloaded copy will be: # 64bit => ~/Downloads/zoom/zoom_x86_64.rpm # 32bit => ~/Downloads/zoom/zoom_i686.rpm # # o Current user is authorised to run /bin/sudo for the install part. # # Note # tested on Mageia 7 both 32 bit and 64 bit # functions ------------------------------------------------------------- usage() { cat <<eeooff ${cmd} checks for latest version of Zoom and installs if new version found. Run as non-root user. If an update is needed, sudo will prompt for password. Downloaded zoom rpm stored in: ~/Downloads/zoom/ eeooff } fatal() { echo "${cmd} fatal: ${1}" >&2 exit 1 } error() { echo "${cmd} error: ${1}" >&2 } warning() { echo "${cmd} warning: ${1}" >&2 } tstamp() { echo $(date +%Y_%m_%d_at_%H:%M:%S) ${cmd}: ${1} } doit() { tstamp "${1}" eval ${1} retcode=$? if [ ${retcode} != 0 ]; then error "\$?=${retcode}" fi } elapsed_time () { start=${1} end=${2} # echo debug: elapsed_time ${start} ${end} unset x unset y if [ ${start} = ${end} ]; then echo -n "zero seconds" fi let elapsed_seconds=${end}-${start} let days=${elapsed_seconds}/86400 let days_sec=${days}*86400 let x=${elapsed_seconds}-${days_sec} let hours=${x}/3600 let hours_sec=${hours}*3600 let x=${days_sec}+${hours_sec} let y=${elapsed_seconds}-${x} let mins=${y}/60 let mins_sec=${mins}*60 let x=${days_sec}+${hours_sec}+${mins_sec} let secs=${elapsed_seconds}-${x} if [ ${days} != 0 ]; then if [ ${days} = 1 ]; then echo -n "1 day " else echo -n "${days} days " fi fi if [ ${hours} != 0 ]; then if [ ${hours} = 1 ]; then echo -n "1 hour " else echo -n "${hours} hours " fi fi if [ ${mins} != 0 ]; then if [ ${mins} = 1 ]; then echo -n "1 minute " else echo -n "${mins} minutes " fi fi if [ ${secs} != 0 ]; then if [ ${secs} = 1 ]; then echo -n "1 second " else echo -n "${secs} seconds" fi fi echo } # end functions section # set initial values ---------------------------------------------------------------------- cmd=$(basename ${0}) case "${1}" in -? | -help | -usage | --?| --help | --usage ) usage exit ;; esac tstamp "commenced $(dirname ${0})/${cmd} version ${version}" start_epoch=$(date +%s) # Determine: 32 or 64 bit system arch=$(uname -m | sed -e "s/i.86/i686/") case ${arch} in x86_64 ) ZOOM_RPM=zoom_x86_64.rpm LIBXCB_RPM=lib64xcb-xtest0 ;; i686 ) ZOOM_RPM=zoom_i686.rpm LIBXCB_RPM=libxcb-xtest0 ;; *) fatal "Architecture ${arch} is not supported. Bye!" >&2 ;; esac local_download_dir=${HOME}/Downloads/zoom if [ -d ${local_download_dir} ]; then tstamp "local download directory is: ${local_download_dir}" else tstamp "Creating local download directory: ${local_download_dir}" doit "mkdir -p ${local_download_dir}" fi f=${local_download_dir}/${ZOOM_RPM} # Sanity checking starts here # Are we running on Mageia? distro=$(cat /etc/release | awk '{ print $1}') if [ "${distro}" != "Mageia" ]; then fatal "Not running on Mageia. Bye!" fi # Are we running on Mageia 5, 6 or 7? release=$(cat /etc/release | awk '{ print $3}') #echo "This is Mageia ${release}" case ${release} in 8) tstamp "Mageia 8 OK" urpmi_options="--allow-nodeps --force" ;; 7) tstamp "Mageia 7 OK" urpmi_options="--allow-nodeps --force" ;; 6) tstamp "Mageia 6 is obsolete. Please upgrade to current release." urpmi_options="--allow-nodeps --force" ;; 5) tstamp "Mageia 5 is obsolete. Please upgrade to current release." urpmi_options="--allow-nodeps --force" ;; *) fatal "Not supported. Bye!" ;; esac # We need to run as non-root if [ $(whoami) = "root" ]; then fatal "You need to be non-root user to run ${cmd}. Bye!" fi # Check available free space in ${HOME}/Downloads/zoom free_space_in_KB=$(echo $(( $(df ${local_download_dir} | tail -1 | awk '{print $3}' | sed -e "s/K//" -e "s/M/*1024/" -e "s/G/*1024*1024/" -e "s/T/*1024*1024*1024/") )) ) # MB_100_in_KB=$(( $(echo 100M |sed -e "s/K//" -e "s/M/*1024/" ) )) # 100M expressed in kilobytes (KB) MB_100_in_KB=102400 if [ ${free_space_in_KB} -lt ${MB_100_in_KB} ]; then fatal "Free space on disk is less than 100M. Bye!" else tstamp "Good news: more than 100mb of free disk space available for download" fi # Sanity checking ends here for the most part :-) # Check for pre-requisite rpm: # 32bit => libxcb-xtest0 # 64bit => lib64xcb-xtest0 # Is ${LIBXCB_RPM} installed? tstamp "Checking we have ${LIBXCB_RPM} installed" tstamp "rpm -qa | grep ${LIBXCB_RPM}" current_version=$(rpm -qa | grep -iE ${LIBXCB_RPM}) if [ $? = 0 ]; then tstamp "Installed ${LIBXCB_RPM} is: ${current_version}" else tstamp "${LIBXCB_RPM} is not installed" doit "/bin/sudo urpmi ${LIBXCB_RPM}" fi tstamp "Checking we have the Zoom linux package signing key" if [ -s ${local_download_dir}/pubkey ]; then tstamp "Local copy of package signing key:" doit "ls -l ${local_download_dir}/pubkey" else tstamp "Downloading Zoom linux package signing key" doit "wget -O - https://zoom.us/linux/download/pubkey > ${local_download_dir}/pubkey" doit "ls -l ${local_download_dir}/pubkey" fi tstamp "Checking if zoom linux signing key has been imported" doit "rpm -qi gpg-pubkey-61a7c71d-* 2>&1 > /dev/null" if [ $? = 0 ]; then tstamp "Zoom linux package signing key is imported" else tstamp "Import the package signing key" doit "/bin/sudo rpm --import ${local_download_dir}/pubkey" tstamp "Verify package signing key" doit "rpm -qi gpg-pubkey-61a7c71d-*" fi # Is zoom already installed? # Display currently installed rpm version tstamp "Checking installed version of zoom" echo "rpm -qa | grep -iE zoom" current_version=$(rpm -qa | grep -iE zoom) if [ $? = 0 ]; then tstamp "Installed version of zoom is: ${current_version}" else tstamp "zoom is not installed" fi # Check if we already have a local copy of zoom RPM in local Downloads if [ -s ${f} ]; then # We do have a previous download of zoom rpm. # Download currently available zoom rpm and compare with what we previously downloaded. tstamp "${f} was previously downloaded. Checking if current available version is newer." # move aside any previously downloaded copy of zoom rpm doit "mv -f ${f} ${f}-" doit "ls -lh ${f}-" # Download currently available zoom rpm # We skip the "-q" on wget because this will take a few minutes # and the user needs to see the download is happening. tstamp "downloading current zoom rpm: ${ZOOM_RPM}" doit "wget -O - https://zoom.us/client/latest/${ZOOM_RPM} > ${f}" doit "ls -lh ${f} # Downloaded rpm" # Downloaded version details # echo # doit "rpm -qip ${f}" # echo installed_version=$(rpm -qa | grep zoom | sed -e "s/zoom-//") if [ -z "${installed_version}" ]; then installed_version="not already installed" # new install tstamp "+---------------------------------------+" tstamp "| Zoom is not installed. Installing now |" tstamp "+---------------------------------------+" doit "/bin/sudo /sbin/urpmi ${urpmi_options} ${f}" new_version=$(rpm -qa | grep -iE zoom) tstamp "Installed version: ${new_version}" else tstamp "Installed version: ${installed_version}" downloaded_version=$(rpm -qip ${f} | grep "Source RPM" | awk '{print $4}' | sed -e "s/zoom-//" -e "s/.src.rpm//") tstamp "Downloaded version: ${downloaded_version}" if [ "${installed_version}" = "${downloaded_version}" ]; then tstamp "Installed and downloaded versions are same: ${installed_version}" tstamp "Removing duplicate downloaded rpm" doit "rm -f ${f}-" tstamp "+------------------------------------------------------------------------------------+" tstamp "| Latest zoom already installed. Please check again for zoom update at a later time. |" tstamp "+------------------------------------------------------------------------------------+" else tstamp "Installed and downloaded versions are different" # tstamp " installed: ${installed_version}" # tstamp " downloaded: ${downloaded_version}" tstamp "+---------------------------------+" tstamp "| Installing updated zoom version |" tstamp "+---------------------------------+" doit "/bin/sudo /sbin/urpmi ${urpmi_options} ${f}" new_version=$(rpm -qa | grep -iE zoom) tstamp "${current_version} <- previous" tstamp "${new_version} <- now installed" fi fi else # We do not have a previously downloaded copy of zoom rpm. # This is probably a brand new install. # Download, install, and display installed version # download available zoom rpm tstamp "Previous download not found. Downloading ${ZOOM_RPM}" doit "wget -O - https://zoom.us/client/latest/${ZOOM_RPM} > ${f}" doit "ls -lh ${f} # downloaded" # install tstamp "+---------------------+" tstamp "| New install of zoom |" tstamp "+---------------------+" doit "/bin/sudo /sbin/urpmi ${urpmi_options} ${f}" # Display currently installed rpm version doit "rpm -qa | grep -iE zoom # display installed zoom version" fi end_epoch=$(date +%s) tstamp "total duration $(elapsed_time ${start_epoch} ${end_epoch})" tstamp "completed"
Appendix-2: Example running check_zoom for new install
The following log shows running check_zoom to complete a new install.
[user@localhost ~]$ check_zoom 2020_06_13_at_17:18:08 check_zoom: commenced /home/user/.local/bin/check_zoom version 1 2020_06_13_at_17:18:08 check_zoom: Creating local download directory: /home/user/Downloads/zoom 2020_06_13_at_17:18:08 check_zoom: mkdir -p /home/user/Downloads/zoom 2020_06_13_at_17:18:08 check_zoom: Mageia 7 OK 2020_06_13_at_17:18:08 check_zoom: Good news: more than 100mb of free disk space available for download 2020_06_13_at_17:18:08 check_zoom: Checking we have lib64xcb-xtest0 installed 2020_06_13_at_17:18:08 check_zoom: rpm -qa | grep lib64xcb-xtest0 2020_06_13_at_17:18:09 check_zoom: Installed lib64xcb-xtest0 is: lib64xcb-xtest0-1.13.1-1.mga7 2020_06_13_at_17:18:09 check_zoom: Checking we have the Zoom linux package signing key 2020_06_13_at_17:18:09 check_zoom: Downloading Zoom linux package signing key 2020_06_13_at_17:18:09 check_zoom: wget -O - https://zoom.us/linux/download/pubkey > /home/user/Downloads/zoom/pubkey --2020-06-13 17:18:09-- https://zoom.us/linux/download/pubkey Resolving zoom.us (zoom.us)... 52.202.62.233 Connecting to zoom.us (zoom.us)|52.202.62.233|:443... connected. HTTP request sent, awaiting response... 200 Length: 1800 (1.8K) [application/x-mspublisher] Saving to: ‘STDOUT’ - 100%[==========================================================================================================>] 1.76K --.-KB/s in 0s 2020-06-13 17:18:10 (25.7 MB/s) - written to stdout [1800/1800] 2020_06_13_at_17:18:10 check_zoom: ls -l /home/user/Downloads/zoom/pubkey -rw-rw-r-- 1 user user 1800 Jun 13 17:18 /home/user/Downloads/zoom/pubkey 2020_06_13_at_17:18:10 check_zoom: Checking if zoom linux signing key has been imported 2020_06_13_at_17:18:10 check_zoom: rpm -qi gpg-pubkey-61a7c71d-* 2>&1 > /dev/null 2020_06_13_at_17:18:10 check_zoom: Zoom linux package signing key is imported 2020_06_13_at_17:18:10 check_zoom: Checking installed version of zoom rpm -qa | grep -iE zoom 2020_06_13_at_17:18:11 check_zoom: zoom is not installed 2020_06_13_at_17:18:11 check_zoom: Previous download not found. Downloading zoom_x86_64.rpm 2020_06_13_at_17:18:11 check_zoom: wget -O - https://zoom.us/client/latest/zoom_x86_64.rpm > /home/user/Downloads/zoom/zoom_x86_64.rpm --2020-06-13 17:18:11-- https://zoom.us/client/latest/zoom_x86_64.rpm Resolving zoom.us (zoom.us)... 52.202.62.233 Connecting to zoom.us (zoom.us)|52.202.62.233|:443... connected. HTTP request sent, awaiting response... 302 Location: https://d11yldzmag5yn.cloudfront.net/prod/5.0.418682.0603/zoom_x86_64.rpm?_x_zm_rtaid=2M6c2-FtQRW7fpQy7-Cvtw.1592065091600.c04fd38166aa1a350026620192cca9f9&_x_zm_rhtaid=824 [following] --2020-06-13 17:18:11-- https://d11yldzmag5yn.cloudfront.net/prod/5.0.418682.0603/zoom_x86_64.rpm?_x_zm_rtaid=2M6c2-FtQRW7fpQy7-Cvtw.1592065091600.c04fd38166aa1a350026620192cca9f9&_x_zm_rhtaid=824 Resolving d11yldzmag5yn.cloudfront.net (d11yldzmag5yn.cloudfront.net)... 99.86.89.49, 99.86.89.137, 99.86.89.230, ... Connecting to d11yldzmag5yn.cloudfront.net (d11yldzmag5yn.cloudfront.net)|99.86.89.49|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 38760020 (37M) [binary/octet-stream] Saving to: ‘STDOUT’ - 100%[==========================================================================================================>] 36.96M 4.42MB/s in 8.4s 2020-06-13 17:18:20 (4.41 MB/s) - written to stdout [38760020/38760020] 2020_06_13_at_17:18:20 check_zoom: ls -lh /home/user/Downloads/zoom/zoom_x86_64.rpm # downloaded -rw-rw-r-- 1 user user 37M Jun 13 17:18 /home/user/Downloads/zoom/zoom_x86_64.rpm 2020_06_13_at_17:18:20 check_zoom: +---------------------+ 2020_06_13_at_17:18:20 check_zoom: | New install of zoom | 2020_06_13_at_17:18:20 check_zoom: +---------------------+ 2020_06_13_at_17:18:20 check_zoom: /bin/sudo /sbin/urpmi --allow-nodeps --force /home/user/Downloads/zoom/zoom_x86_64.rpm WARNING: --allow-nodeps option is in use. Some strange problems may happen installing zoom_x86_64.rpm from /home/user/Downloads/zoom Preparing... ################################################################################################################################################################# 1/1: zoom ################################################################################################################################################################# run post install script, action is 1... 2020_06_13_at_17:18:42 check_zoom: rpm -qa | grep -iE zoom # display installed zoom version zoom-5.0.418682.0603-1 2020_06_13_at_17:18:43 check_zoom: total duration 35 seconds 2020_06_13_at_17:18:43 check_zoom: completed
Appendix-3: Example running check_zoom for updating installed version
The following log shows running check_zoom to check for update and install new version.
[user@localhost Downloads]$ check_zoom 2020_06_13_at_17:34:15 check_zoom: commenced /home/user/.local/bin/check_zoom version 1 2020_06_13_at_17:34:15 check_zoom: local download directory is: /home/user/Downloads/zoom 2020_06_13_at_17:34:15 check_zoom: Mageia 7 OK 2020_06_13_at_17:34:15 check_zoom: Good news: more than 100mb of free disk space available for download 2020_06_13_at_17:34:15 check_zoom: Checking we have lib64xcb-xtest0 installed 2020_06_13_at_17:34:15 check_zoom: rpm -qa | grep lib64xcb-xtest0 2020_06_13_at_17:34:16 check_zoom: Installed lib64xcb-xtest0 is: lib64xcb-xtest0-1.13.1-1.mga7 2020_06_13_at_17:34:16 check_zoom: Checking we have the Zoom linux package signing key 2020_06_13_at_17:34:16 check_zoom: Local copy of package signing key: 2020_06_13_at_17:34:16 check_zoom: ls -l /home/user/Downloads/zoom/pubkey -rw-rw-r-- 1 user user 1800 Jun 13 17:30 /home/user/Downloads/zoom/pubkey 2020_06_13_at_17:34:16 check_zoom: Checking if zoom linux signing key has been imported 2020_06_13_at_17:34:16 check_zoom: rpm -qi gpg-pubkey-61a7c71d-* 2>&1 > /dev/null 2020_06_13_at_17:34:16 check_zoom: Zoom linux package signing key is imported 2020_06_13_at_17:34:16 check_zoom: Checking installed version of zoom rpm -qa | grep -iE zoom 2020_06_13_at_17:34:17 check_zoom: Installed version of zoom is: zoom-5.0.399860.0429-1 2020_06_13_at_17:34:17 check_zoom: /home/user/Downloads/zoom/zoom_x86_64.rpm was previously downloaded. Checking if current available version is newer. 2020_06_13_at_17:34:17 check_zoom: mv -f /home/user/Downloads/zoom/zoom_x86_64.rpm /home/user/Downloads/zoom/zoom_x86_64.rpm- 2020_06_13_at_17:34:17 check_zoom: ls -lh /home/user/Downloads/zoom/zoom_x86_64.rpm- -rw-r--r-- 1 user user 37M Jun 13 17:32 /home/user/Downloads/zoom/zoom_x86_64.rpm- 2020_06_13_at_17:34:17 check_zoom: downloading current zoom rpm: zoom_x86_64.rpm 2020_06_13_at_17:34:17 check_zoom: wget -O - https://zoom.us/client/latest/zoom_x86_64.rpm > /home/user/Downloads/zoom/zoom_x86_64.rpm --2020-06-13 17:34:17-- https://zoom.us/client/latest/zoom_x86_64.rpm Resolving zoom.us (zoom.us)... 52.202.62.206 Connecting to zoom.us (zoom.us)|52.202.62.206|:443... connected. HTTP request sent, awaiting response... 302 Location: https://d11yldzmag5yn.cloudfront.net/prod/5.0.418682.0603/zoom_x86_64.rpm?_x_zm_rtaid=OtOtT-1ITO6pDf5O668aHQ.1592066058096.01a17ff5b4c21c56b3450ebf93b53458&_x_zm_rhtaid=366 [following] --2020-06-13 17:34:18-- https://d11yldzmag5yn.cloudfront.net/prod/5.0.418682.0603/zoom_x86_64.rpm?_x_zm_rtaid=OtOtT-1ITO6pDf5O668aHQ.1592066058096.01a17ff5b4c21c56b3450ebf93b53458&_x_zm_rhtaid=366 Resolving d11yldzmag5yn.cloudfront.net (d11yldzmag5yn.cloudfront.net)... 99.86.89.137, 99.86.89.49, 99.86.89.127, ... Connecting to d11yldzmag5yn.cloudfront.net (d11yldzmag5yn.cloudfront.net)|99.86.89.137|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 38760020 (37M) [binary/octet-stream] Saving to: ‘STDOUT’ - 100%[==========================================================================================================>] 36.96M 4.41MB/s in 8.4s 2020-06-13 17:34:26 (4.40 MB/s) - written to stdout [38760020/38760020] 2020_06_13_at_17:34:26 check_zoom: ls -lh /home/user/Downloads/zoom/zoom_x86_64.rpm # Downloaded rpm -rw-rw-r-- 1 user user 37M Jun 13 17:34 /home/user/Downloads/zoom/zoom_x86_64.rpm 2020_06_13_at_17:34:27 check_zoom: Installed version: 5.0.399860.0429-1 2020_06_13_at_17:34:27 check_zoom: Downloaded version: 5.0.418682.0603-1 2020_06_13_at_17:34:27 check_zoom: Installed and downloaded versions are different 2020_06_13_at_17:34:27 check_zoom: +---------------------------------+ 2020_06_13_at_17:34:27 check_zoom: | Installing updated zoom version | 2020_06_13_at_17:34:27 check_zoom: +---------------------------------+ 2020_06_13_at_17:34:27 check_zoom: /bin/sudo /sbin/urpmi --allow-nodeps --force /home/user/Downloads/zoom/zoom_x86_64.rpm WARNING: --allow-nodeps option is in use. Some strange problems may happen installing zoom_x86_64.rpm from /home/user/Downloads/zoom Preparing... ################################################################################################################################################################# 1/1: zoom ################################################################################################################################################################# run post install script, action is 2... 1/1: removing zoom-5.0.399860.0429-1.x86_64 ################################################################################################################################################################# run post uninstall script, action is 1 ... 2020_06_13_at_17:34:50 check_zoom: zoom-5.0.399860.0429-1 <- previous 2020_06_13_at_17:34:50 check_zoom: zoom-5.0.418682.0603-1 <- now installed 2020_06_13_at_17:34:50 check_zoom: total duration 35 seconds 2020_06_13_at_17:34:50 check_zoom: completed