This project provides a BASH or ZSH script to update an Ubuntu system with support for various features, including manual updates for Firefox, and system maintenance.
Copyright © 2017–2026 Maulik Mistry
This project is licensed under Apache License 2.0. See the LICENSE.txt file for details.
Please share support:
A demonstration of system updates, package management, and scripting in BASH and ZSH — valuable for Ubuntu users and developers alike.
Many Ubuntu users face challenges with automatic updates, especially when using Firefox Snap or Deb installations. This script offers a reliable solution for those who prefer manual installations or need to bypass restrictions imposed by certain distributions.
- Exampled upgrades via release URLs under
$HOME/my_applications/$app_name - Works well for distros that block applications like Firefox in Snap or Deb, or preferring a manual install
- Exampled neovim, fwupdmgr, flatpak, rust toolchain upgrades
- Snap refresh is run first to prevent delays
- APT update/upgrade
- Optional cleanup steps
-
Clone this repo and make scripts executable:
git clone --recurse-submodules https://github.com/m1st0/ugu.git ugu cd uguIf the project was already cloned without its submodules:
git submodule update --init --recursive -
Make the desired scripts executable:
chmod +x ugu.zsh -
Run the script.
Unlike Snap or Apt installs, this script checks Mozilla’s (Zen's) release site and updates your manually installed Firefox/Thunderbird/Zen if needed. There used to be issues with the Snap and Apt install changes. I have opted for a manual Mozilla product installation, which allows for custom update checks.
Your custom Firefox/Thunderbird/Zen should previously be installed into unless you want to update the script:
$HOME/my_applications/firefox/
$HOME/my_applications/thunderbird/
$HOME/my_applications/zen/
The script will:
- Detect the current version a binary
- Compare it to online Mozilla or Github versions per respective binaries
If AppArmor complains about your custom use of Mozilla apps, check out my apparmor_customizations.