Often when you install zoom in linux you would have encountered broken install issue. Here is a function to save you from installing and keeping it updated:
#!/bin/bash set -euo pipefail print_style() { local style="${1:-0}" local color="${2:-32}" local message="${3:-$color}" echo -e "\e[${style};${color}m${message}\e[0m" } get_version_from_json() { local url="https://zoom.us/rest/download?os=linux" curl -s "$url" | jq -r '.result.downloadVO.zoom.version' } get_installed_version() { dpkg-query -W -f='${Version}' zoom 2>/dev/null || echo "Not installed" } download_zoom() { local version="$1" local filename="zoom_amd64.deb" print_style 1 31 "Downloading Zoom version $version" curl -LO "https://zoom.us/client/latest/$filename" echo "$filename" } install_dependencies() { local filename="$1" local package_names package_names=$(dpkg-deb -f "$filename" Depends | sed -e 's/,//g' -e 's/([^)]*)//g') if [[ "$package_names" == *"|"* ]]; then IFS='|' read -ra dep_choices <<< "$package_names" for choice in "${dep_choices[@]}"; do sudo apt-get install -y $choice && break done else sudo apt-get install -y $package_names fi } install_zoom() { local filename="$1" sudo dpkg -i "$filename" sudo apt-get install -f -y } update_zoom() { local latest_version local installed_version local filename latest_version=$(get_version_from_json) installed_version=$(get_installed_version) print_style 1 34 "Latest version : $latest_version" print_style 1 34 "Installed version: $installed_version" if [ "$installed_version" = "$latest_version" ]; then print_style 1 32 "The current version $installed_version is already installed." return fi filename=$(download_zoom "$latest_version") install_dependencies "$filename" install_zoom "$filename" rm -f "$filename" print_style 1 32 "Zoom has been successfully updated to version $latest_version" } main() { if ! command -v jq &> /dev/null; then print_style 1 31 "jq is not installed. Please install it first." exit 1 fi update_zoom } main "$@"
Top comments (0)