Update Upgrade Ubuntu - An automated system update tool for Ubuntu/Kubuntu written in Go.
uubu automates comprehensive system updates for Ubuntu-based distributions. It handles APT packages, Snap packages, Flatpak applications, system cleanup, and offers optional Timeshift snapshots for safe rollback.
- π Complete System Updates: APT, Snap, and Flatpak packages
- πΈ Timeshift Integration: Optional system snapshots before updates
- π§Ή Automatic Cleanup: Removes obsolete packages and cleans cache
- π Safety Checks: Root prevention, internet connectivity verification
- π¨ Colored Output: Clear, colored terminal messages
- β‘ Fast & Lightweight: Single binary with no dependencies
- π§ Configurable: Flexible command-line options
# Download latest release
wget https://github.com/NDXdeveloper/uubu/releases/latest/download/uubu-linux-amd64
chmod +x uubu-linux-amd64
sudo mv uubu-linux-amd64 /usr/local/bin/uubugit clone https://github.com/NDXdeveloper/uubu.git
cd uubu
make build
make install# Basic system update
uubu
# Update with Timeshift snapshot
uubu -s
# Update without Snap packages
uubu --no-snap
# Update with full system upgrade
uubu --dist-upgrade
# Show help
uubu --help
# Show version
uubu --version| Option | Description |
|---|---|
-h, --help |
Display help information |
-v, --version |
Show version information |
-s, --snapshot |
Create Timeshift snapshot before update |
--dist-upgrade |
Perform full system upgrade (includes removing obsolete packages) |
--no-snap |
Skip Snap package updates |
--no-flatpak |
Skip Flatpak package updates |
--no-reboot |
Don't prompt for reboot |
- System Checks: Verifies non-root execution and internet connectivity
- Optional Snapshot: Creates Timeshift snapshot if requested
- APT Updates: Updates package lists, upgrades packages, dist-upgrade
- Snap Updates: Refreshes Snap packages (if installed)
- Flatpak Updates: Updates Flatpak applications (if installed)
- System Cleanup: Removes obsolete packages and cleans cache
- Reboot Check: Detects if reboot is required and prompts user
- Ubuntu 20.04+ or Kubuntu 20.04+
- Go 1.19+ (for building from source)
- sudo privileges for system updates
- Optional: Timeshift (for snapshots)
# Clone repository
git clone https://github.com/NDXdeveloper/uubu.git
cd uubu
# Build with version info
make build
# Run tests
make test
# Check code coverage
make test-coverage
# Development mode (auto-rebuild)
make dev# Run all tests
make test
# Run tests with race detection
make test-verbose
# Quick tests (no integration)
make test-short
# Benchmarks
make benchuubu/
βββ main.go # Main application
βββ main_test.go # Unit tests
βββ Makefile # Build automation
βββ go.mod # Go module file
βββ README.md # This file
βββ LICENSE # MIT license
- Root Prevention: Refuses to run as root user
- Internet Check: Verifies connectivity before updates
- Error Handling: Graceful handling of command failures
- Snapshot Support: Optional system backup via Timeshift
- Reboot Detection: Warns when restart is required
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Nicolas DEOUX NDXDev (NDXDev@gmail.com)
- Original bash script inspiration
- Ubuntu/Kubuntu community
- Go programming language team
β Star this repository if you find it useful!