update readme

This commit is contained in:
JerryXiao 2021-07-11 15:38:35 +08:00
parent 111a712fee
commit b4dceac194
Signed by: Jerry
GPG key ID: 22618F758B5BE2E5

View file

@ -1,15 +1,15 @@
# Pacroller
The "Unattended Upgrades" for Arch Linux.
The "Unattended Upgrades" for Arch Linux.
## Concept
Parsing the output of pacman and pacman.log, searching for known patterns and notifying the user whether there is a potential error.
Currently the design is regex-based, any output that is unable to match a set of regex is reported back to the user.
Parsing the output of pacman and pacman.log, searching for known patterns and notifying the user whether there is a potential error.
Currently the design is regex-based, any output that is unable to match a set of regex is reported back to the user.
## Installation
`yay -S pacroller`
## Usage
pacroller has the following subcommands
pacroller has the following subcommands
```
run [-d --debug]
start an upgrade
@ -20,28 +20,33 @@ status [-v --verbose] [-m --max <number>]
print details of a previously successful upgrade
reset
reset the current failure status
test-smtp
send an test email to the configured address
```
There is also a systemd timer for scheduled automatic upgrades.
There is also a systemd timer for scheduled automatic upgrades.
## Configuration
Pacroller reads `/etc/pacroller/config.json` on startup.
Pacroller reads `/etc/pacroller/config.json` on startup.
### custom sync commands
Pacroller can be configured to use custom sync commands, which allows the usage of a different set of mirrors when syncing the database. Enable the "custom_sync" option and write your custom `/etc/pacroller/sync.sh`.
Pacroller can be configured to use custom sync commands, which allows the usage of a different set of mirrors when syncing the database. Enable the "custom_sync" option and write your custom `/etc/pacroller/sync.sh`.
### needrestart
If the "needrestart" option is enabled, needrestart should be called after a successful upgrade.
If the "needrestart" option is enabled, needrestart should be called after a successful upgrade.
### hold packages
Put your hold packages in a json keyval {package name: regex}, where the regex should have at least one matching group.
If pacroller observes any changes of the matching group or the hold package is to be removed, it refuses to upgrade further.
Put your hold packages in a json keyval {package name: regex}, where the regex should have at least one matching group.
If pacroller observes any changes of the matching group or the hold package is to be removed, it refuses to upgrade further.
### ignored pacnew
A list of pacnew files that are silently ignored during parsing, any other pacnews will trigger a warning and prevent further upgrades.
A list of pacnew files that are silently ignored during parsing, any other pacnews will trigger a warning and prevent further upgrades.
### custom pacman hooks and packages
Custom pacman hooks and packages output matching is configurable via `/etc/pacroller/known_output_override.py`.
Custom pacman hooks and packages output matching is configurable via `/etc/pacroller/known_output_override.py`.
### check systemd status
The "systemd-check" option allows pacroller to check fo degraded systemd services before an upgrade.
The "systemd-check" option allows pacroller to check fo degraded systemd services before an upgrade.
### clear package cache
Pacroller wipes /var/cache/pacman/pkg after a successful upgrade if the option "clear_pkg_cache" is set.
Pacroller wipes /var/cache/pacman/pkg after a successful upgrade if the option "clear_pkg_cache" is set.
### save pacman output
Every time an upgrade is performed, the pacman output is stored into /var/log/pacroller. This can be configured via the "save_stdout" keyword.
Every time an upgrade is performed, the pacman output is stored into /var/log/pacroller. This can be configured via the "save_stdout" keyword.
## Smtp
Configure `/etc/pacroller/smtp.json` to receive an email notification when an upgrade fails. Note that pacroller will not send any email if stdin is a tty (can be overridden by the `--interactive` switch).
## Limitations
- Your favourite package may not be supported, however it's easy to add another set of rules.