Some time ago, I stopped sharing scripts due to time constraints maintaining them. This one installs Google Chrome the first time, otherwise updates on subsequent use. I run it periodically. At this moment, Google Chrome is current on my system.
$ ~/bin/upd-chrome-stable
Google Chrome stable 117.0.5938.149 (current)
upd-chrome-stable - Installer/updater combo
#!/bin/bash
#-------------------------------------------------------------------------------
# Install and update script for Google Chrome stable.
# https://pkgs.org/search/?q=google%20chrome
#-------------------------------------------------------------------------------
# shellcheck disable=SC2001,SC2143,SC2164
URL1='https://www.ubuntuupdates.org/package/google_chrome/stable/main/base/google-chrome-stable'
URL2='https://dl.google.com/linux/chrome/rpm/stable/x86_64/google-chrome-stable'
NEW_VER=$(curl -s "$URL1" | awk -F'>' '/Version:/ { print $NF; exit }')
BROWSER_EXE="/opt/google/chrome/google-chrome"
if [[ -x "$BROWSER_EXE" ]]; then
CUR_VER=$($BROWSER_EXE --version 2>/dev/null | awk '{ print $NF }')
else
CUR_VER="not-installed"
fi
if [[ "$NEW_VER" =~ ^$CUR_VER ]]; then
echo "Google Chrome stable $CUR_VER (current)"
exit
elif [[ "$USER" == "root" ]]; then
echo "Please run the script as a normal user, exiting..."
exit 1
fi
# Test sudo, exit if wrong password or terminated.
sudo true >/dev/null || exit 2
# Install dependencies.
if [[ ! -x "/usr/bin/curl" || ! -x "/usr/bin/rpm2cpio" ]]; then
echo "Installing dependencies."
sudo swupd bundle-add curl package-utils --quiet
fi
#-------------------------------------------------------------------------------
if [[ ! -x "$BROWSER_EXE" ]]; then
echo "Installing Google Chrome stable ${NEW_VER%%-*}"
else
echo "Updating Google Chrome stable ${NEW_VER%%-*}"
# remove older installation via rpm
sudo rpm -e google-chrome-stable 2>/dev/null
fi
FILE="google-chrome-stable-${NEW_VER}.x86_64.rpm"
cd ~/Downloads
if [[ ! -f "$FILE" ]]; then
curl -LO "${URL2}-${NEW_VER}.x86_64.rpm"
if [[ ! -f "$FILE" || -n $(grep "Error 404 (Not Found)" "$FILE") ]]; then
rm -f "$FILE"
echo "ERROR: $FILE (No such file at download URL)"
echo "https://dl.google.com/linux/chrome/rpm/stable/x86_64/"
exit 1
fi
fi
mkdir -p /tmp/update.$$ && pushd /tmp/update.$$ >/dev/null
rpm2cpio ~/Downloads/"$FILE" | cpio -idm 2>/dev/null
sudo mkdir -p /opt/google
sudo rm -rf /opt/google/chrome
sudo cp -a usr/share/* /usr/share/.
sudo mv opt/google/chrome /opt/google/.
sudo sed -i 's!/usr/bin/google-chrome-stable!/opt/google/chrome/google-chrome!g' \
/usr/share/applications/google-chrome.desktop
sudo sed -i 's!^\(Exec=\)\(.*\)!\1env FONTCONFIG_PATH=/usr/share/defaults/fonts \2!g' \
/usr/share/applications/google-chrome.desktop
popd >/dev/null
rm -fr /tmp/update.$$
# Add icons to the system icons; installs to /usr/share/icons/hicolor/.
for icon in \
product_logo_32.png product_logo_48.png product_logo_256.png product_logo_128.png \
product_logo_16.png product_logo_64.png product_logo_24.png
do
size=$(echo "$icon" | sed 's/[^0-9]//g')
sudo xdg-icon-resource install --size "$size" /opt/google/chrome/${icon} "google-chrome"
done
sync
echo "OK"