Skip to content

ublue-os/uupd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

114 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

u(niversal )upd(ate)

Small update program written in golang intended for use in Universal Blue, updates flatpak apps, distrobox, brew, bootc and rpm-ostree (as a fallback)

Includes systemd timers and services for auto update

Installation

This program is now in the ublue-os/packages COPR

You can install it on Fedora by running:

Note dnf can be substituted for rpm-ostree or dnf5. The dnf COPR plugin must also be installed for the dnf copr command.

$ sudo dnf copr enable ublue-os/packages
$ sudo dnf install uupd

Note If you are on an image derived from uBlue main, you will need to remove or disable automatic updates with rpm-ostreed, to do this, you need to remove or change this line in the config file: AutomaticUpdatePolicy=stage (set to none if you don't want to remove the line)

Command Line

To run a complete system update you can use the command line

$ sudo uupd

This allows for passwordless system updates (user must be in wheel group)

Run updates from command line (not recommended)

$ sudo uupd

CLI Options

$ uupd --help

Configuration

Automatic updates are ran from the systemd service to edit basic options, you can edit /etc/uupd/config.json

{
    "checks": {
        "hardware": {
            "enable": true,
            "bat-min-percent": 20,
            "cpu-max-percent": 50,
            "mem-max-percent": 90,
            "net-max-bytes": 700000
        }
    },
    "modules": {
        "brew": {
            "disable": false
        },
        "distrobox": {
            "disable": false
        },
        "flatpak": {
            "disable": false
        },
        "system": {
            "disable": false
        }
    }
}

Options

modules

  • brew.disable: disable brew update module
  • distrobox.disable: disable distrobox update module
  • flatpak.disable: disable flatpak update module
  • system.disable: disable system update (bootc/rpm-ostree) module

checks.hardware

  • enable: enable hardware checks when running automatic updates (making sure wifi, etc is runnable)
  • bat-min-percent: minimum battery percentage for checks to pass
  • cpu-min-percent: maxmium cpu load percentage before checks fail
  • mem-max-percent: maximum memory usage percentage before checks fail
  • net-max-bytes: maximum amount of bytes transferred over the network before checks fail

Troubleshooting

You can check the uupd logs by running this command:

$ journalctl -exu 'uupd.service'

How do I build this?

For Testing

  1. just build will build this project and place the binary in output/uupd
  2. sudo ./output/uupd will run an update

Development System Installation

  1. just build-package will build uupd as a package and place it into output/rpms/uupd.rpm
  2. Install the rpm with a package manager of your choice or into a VM for testing

Devcontainer Usage

  1. When prompted, reopen the repository in Container
  2. Follow above building instructions
  3. Download uupd from container to host and run on your host

FAQ

Q: How do I add my own custom update script?

A: This is meant purely for updating the 'system' components of a Universal Blue image (Distrobox, Flatpak, Bootc, and Brew), anything outside of updating these core components is out of scope

About

No description, website, or topics provided.

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors