43 lines
1.9 KiB
Markdown
43 lines
1.9 KiB
Markdown
# Presentation
|
|
|
|
**pkgupdate** is a simple shell script meant for OpenBSD users to easily keep their packages up to date the fastest possible.
|
|
|
|
It is meant to be run daily by cron on servers on at boot time for workstations.
|
|
|
|
# Usage
|
|
|
|
**pkgupdate** has only one flag `-q` to hide successful messages, preventing to send an email from cron scripts if it worked.
|
|
|
|
# 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
|
|
- 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))
|
|
|
|
# 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`.
|
|
|
|
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
|
|
```
|