Gentoo Linux updater
Project description
Gentoo Updater
gentoo-update
is a tool that automates updates on Gentoo Linux.
By default it only installs security updates from GLSA,
but it can also be used to update all packages on the system. i.e. @world
.
This project originates from 2023 Google Summer of Code, more about it can be found in the blog post and Gentoo Forums.
TLDR: gentoo_update
has 3 main modules - updater, parser and notifier. Updater runs the
update script and creates a log file. Parser reads the log file and composes a post-upgrade
report which notifier then sends via email, IRC bot or
mobile app.
Features
- updater:
- detect and patch security updates by default using glsa-check
- update
@world
- insert additional flags to
@world
update - calculate disk usage before and after the update
- do not start the update if available disk space is lower than a certain threshold
- parser:
- Compose a report that informs if the update was successful or not
- Add package info after successful info, like updated packages, new versions and USE flags
- Detect different errors during an update
- Blocked Packages
- USE flag conflicts
- Issues with Licenses
- Network issues during an update
- OOM during an update
- Add disk usage before/after an update to the report
- notifier:
- Send update report via IRC bot
- Send full report via IRC bot if requested
- Send update report via email using SendGrid
- Send update report via email using local relay
- Send update report via mobile app
- Other:
- Add an ebuild to GURU repository
- Create a CI/CD pipeline that will run
gentoo_update
on newly published stage3 Docker containers
Usage
gentoo-update
is in GURU
overlay, and can be installed using emerge
:
emerge --ask app-admin/gentoo_update
Alternatively, it can be installed with pip in a virtual environment:
python -m venv gentoo_update
source gentoo_update/bin/activate
python -m pip install gentoo_update
The updater creates a subdirectory in Portage's default PORTAGE_LOGDIR
located at /var/log/portage/gentoo-update
.
However, if this variable is set to a different value in make.conf
, it will use the new location instead of the default.
Here are some usage examples:
- Basic security update
gentoo-update
- Full system update with extra update parameters
gentoo-update --update-mode full --args "color=y keep-going"
- Full system update, show elogs and news
gentoo-update --update-mode full --read-logs --read-news
- Reading last update report (currently only successful update report):
gentoo-update --report
- Send the last update report via IRC bot
export IRC_CHANNEL="#<irc_channel_name>"
export IRC_BOT_NICKNAME="<bot_name>"
export IRC_BOT_PASSWORD="<bot_password>"
gentoo-update --send-report irc
The detailed explanation of command flags can be found in --help
.
Information on testing can be found in tests directory
readme
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for gentoo-update-0.1.12.post1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac2f6284559aa3e44d2d5816094df0bdd153f7b780b470ec47eaf467cfa426fd |
|
MD5 | 524678abcf7a938a3b6a547fa5f2ae77 |
|
BLAKE2b-256 | c09a76c8cd3bfdbc060be2a398df46ee9a857dbf0d459f3ea9ef9a6e4b54637d |
Hashes for gentoo_update-0.1.12.post1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 230f633fa2c3bc2c34cb7e753864de329b23d3056a17859f9f0fe9a2d95a6d9c |
|
MD5 | 3a514ed55e7827293239a0525ccfbe9b |
|
BLAKE2b-256 | f729bc9fd2b360f3360790aafcee7e6e19b3fcc04333a4dbf4acde393c6af408 |