A robust and automated system upgrade script for multiple Linux distributions. It streamlines the update process for APT, DNF, Flatpak, Snap, and Homebrew, while ensuring system stability — especially for NVIDIA users.
Supported Distributions:
- Fedora/RHEL based
- Fedora
- RHEL
- Alma
- Rocky
- Debian/Ubuntu based
- Debian
- Ubuntu
- Pop OS
- Linux Mint
- Zorin OS
- Any distribution with Flatpak, Snap, or Homebrew
- Multi-Distribution Support: Automatically detects your Linux distribution and uses the appropriate package manager (DNF for Fedora/RHEL, APT for Ubuntu/Debian)
- Comprehensive Updates: Updates system packages, Flatpak, Snap, and optionally Homebrew
- Kernel Safety: Detects kernel updates on rolling release distros (like Fedora), requests user confirmation, and automatically rebuilds
initramfs - NVIDIA Driver Support: Checks and rebuilds NVIDIA drivers to ensure they persist across kernel updates (Fedora/RHEL)
- Modes:
- Silent (Default): Clean interface with progress spinners
- Verbose (
-l/--verbose): Detailed output for debugging or monitoring
- Maintenance: Automatically cleans old package caches and metadata
tuxgrade [options]Note: For backward compatibility, the commands fedora-update and fedora-upgrade still work as aliases.
-l,--verbose: Enable detailed output.-b,--brew: Include Homebrew packages in the update.
-
Add repository (GPG key is imported automatically):
sudo curl -fsSL -o /etc/yum.repos.d/tuxgrade.repo \ https://raw.githubusercontent.com/Lineax17/tuxgrade/master/extras/tuxgrade.repo
-
Install:
sudo dnf install tuxgrade
Note: DNF will automatically import and verify the GPG key on first install.
Note: The Debian repository does not work at the moment. I am still figuring out how to properly implement the GPG verification.
-
Import GPG signing key:
sudo mkdir -p /usr/share/keyrings sudo curl -fsSL -o /usr/share/keyrings/tuxgrade-archive-keyring.gpg \ https://Lineax17.github.io/tuxgrade/deb/tuxgrade-archive-keyring.gpg
-
Add repository:
sudo curl -fsSL -o /etc/apt/sources.list.d/tuxgrade.list \ https://raw.githubusercontent.com/Lineax17/tuxgrade/master/extras/tuxgrade.list
-
Install:
sudo apt update sudo apt install tuxgrade
For other distributions or development purposes:
git clone https://github.com/Lineax17/tuxgrade.git
cd tuxgrade
pip install .All repository metadata is cryptographically signed with our GPG key to ensure authenticity and integrity.
Signature Coverage:
- DEB (APT): Repository metadata is signed. Packages are not.
- RPM (DNF/YUM): Repository metadata is signed (
repo_gpgcheck=1), individual packages are currently unsigned
Key Details:
- Algorithm: RSA 4096-bit
- Fingerprint:
F7CF 5667 CC26 2DDC 072F 2274 496C BE37 E61D EE21 - Valid until: February 2031
- Post-Quantum migration: Planned for 2030-2031 (ML-DSA/Dilithium)
Verify the public key:
curl -fsSL https://Lineax17.github.io/tuxgrade/deb/tuxgrade-archive-keyring.gpg | gpg --show-keysManual signature verification:
DEB repository:
wget https://Lineax17.github.io/tuxgrade/deb/InRelease
wget https://Lineax17.github.io/tuxgrade/deb/tuxgrade-archive-keyring.gpg
gpg --import tuxgrade-archive-keyring.gpg
gpg --verify InReleaseRPM repository:
wget https://Lineax17.github.io/tuxgrade/rpm/repodata/repomd.xml
wget https://Lineax17.github.io/tuxgrade/rpm/repodata/repomd.xml.asc
wget https://Lineax17.github.io/tuxgrade/rpm/RPM-GPG-KEY-tuxgrade
gpg --import RPM-GPG-KEY-tuxgrade
gpg --verify repomd.xml.asc repomd.xml- User Guide - Installation, usage, and troubleshooting
- Architecture - System design and architecture
- Developer Guide - Contributing and development
- API Reference - Complete API documentation
- FAQ - Frequently asked questions
Contributions are welcome! Please read the Developer Guide for details on:
- Setting up development environment
- Running tests
- Code style guidelines
- Submitting pull requests
This project is licensed under the MIT License - see the LICENSE file for details.
AI tools were used to assist in the development of this project, primarily for documentation, help with the build pipeline, and the creation of the DNF and APT repositories.
The main project (src) contains a few lines of AI-generated code as well, but these have been thoroughly reviewed and tested by me. This project is not AI-generated slop.