pkgupdate/README.md

43 lines
1.9 KiB
Markdown
Raw Normal View History

2021-08-15 18:58:08 +00:00
# Presentation
2021-08-15 18:38:45 +00:00
2022-03-13 15:23:17 +00:00
**pkgupdate** is a simple shell script meant for OpenBSD users to easily keep their packages up to date the fastest possible.
2021-08-15 18:58:08 +00:00
2022-03-13 15:23:17 +00:00
It is meant to be run daily by cron on servers on at boot time for workstations.
2021-08-15 18:58:08 +00:00
2021-08-29 10:13:24 +00:00
# Usage
**pkgupdate** has only one flag `-q` to hide successful messages, preventing to send an email from cron scripts if it worked.
2021-08-15 18:58:08 +00:00
# How?
**pkgupdate** uses 3 tricks to speed up the process, this is particularily important for workstations updating during the boot process:
- fetch the index of packages and compare it between runs (using a cache in `/var/cache/pkgupdate/`)
- if the index changed, which mean everytime a new package is updated, then it only try to update the packages available in the `packages-stable` directory
2022-03-13 15:23:17 +00:00
- if curl is installed, use curl instead of ftp(1) command (because [pkg_add is more efficient with curl](https://dataswamp.org/~solene/2021-07-08-openbsd-pkg_add_performance_analysis.html))
2021-08-15 18:58:08 +00:00
# Why?
This tool is based on solene@ previous work [faster packages updates](https://dataswamp.org/~solene/2021-08-06-openbsd-pkgadd-tuning-updates.html) and [pkg_add performance analysis](https://dataswamp.org/~solene/2021-07-08-openbsd-pkg_add_performance_analysis.html).
In my opinion, workstations should be updated as soon as possible, at boot time, to update packages at boot before using anything from the user session, avoiding a boring reboot.
As for servers, making the process faster is always welcome.
# Setup
First, use `git clone https://tildegit.org/solene/pkgupdate.git` and run `make install` as root to install `/usr/local/bin/pkgupdate`.
2021-08-15 18:58:08 +00:00
Best way to manage this is to use root's crontab. As root, type `crontab -e` to edit its tab.
```
# for updating on boot
@reboot /usr/local/bin/pkgupdate
# for updating every hour
@hourly /usr/local/bin/pkgupdate
# for updating every 6 hours
0 */6 * * * /usr/local/bin/pkgupdate
```