I like to introduce a complete rewrite of the Linux download scripts for the project WSUS Offline Update. These scripts offer many improvements over the legacy script DownloadUpdates.sh:
- Separation of a frontend and backend script
The script update-generator.bash is used to interactively select the update, language and download options. The script download-updates.bash fetches the selected updates without any user interaction. This separation makes the structure of both files more straightforward. - Highly modular approach
Both scripts are further split into libraries, common tasks, setup tasks and download tasks. Each script does one task only in the most straightforward manner. This resembles the flow of control and makes the scripts easily expandable and more maintainable. - Unified language settings
There is no distinction between default languages, custom languages and update languages.
Users can specify one language on the command line, and then they will get downloads for the specified language only, and nothing more. - Verification of downloaded files
SHA-1 hashes are embedded into the filename of all security updates, as a number of 40 hexadecimal digits. These are compared to the checksums, which are calculated by hashdeep.
The verification of digital file signatures with Sysinternals Sigcheck running under wine was tried, but it doesn't really work without the necessary root certificates. - Compatibility
The download script uses the same algorithms for calculating superseded and dynamic updates as the Windows script DownloadUpdates.cmd. The compliance with the Windows scripts can be tested with the scripts compare-integrity-database.bash and compare-update-tables.bash. - Desktop integration
Obsolete updates are not deleted immediately, but moved into the trash. GNOME and most other GTK+ based desktop environments use GVFS to handle the trash. The package trash-cli can be used with other desktop environments or window managers. trash-cli should also work without any graphical environment. - Self updates of WSUS Offline Update
Both the setup and the download script check for new versions of WSUS Offline Update. They also handle updates of the configuration files in the static and exclude directories. - Same day rules
Same day rules are used to prevent the repeated evaluation of the same tasks in adjacent runs of the download script. - Documentation
There is even a complete documentation.
Current versions
- Note: The WSUS Offline Update versions at https://www.wsusoffline.net/ from the original developers should no longer be used, because they are not maintained anymore. Try the wsusoffline "Community Edition" instead.
- The Linux download scripts, Version 2.3-CE support the Community Edition 12.4 of WSUS Offline Update at https://gitlab.com/wsusoffline/wsusoffline/-/releases
- The Linux download scripts, Version 1.19.4-ESR support WSUS Offline Update, Community Edition 11.9.7-ESR at https://gitlab.com/wsusoffline/wsusoffline/-/releases
Setup
Please see the installation guides in English and German in the following posts for the setup:
- Installation guide for the Linux download scripts
- Installationsanleitung für die Linux-Download-Skripte
Changes
- 2017-01-09 Download links edited to point to version 1.0-beta-2
- 2017-03-30 Download links edited to point to version 1.0-beta-3
- 2017-06-24 Download links edited to point to version 1.0-beta-4
- 2017-08-26 Download links edited to point to version 1.0-beta-5
- 2018-01-19 Download links edited to point to version 1.0
- 2018-01-21 Changed the file ending of the archive from .tar.gz to .tgz
- 2018-02-06 Download links edited to point to version 1.1
- 2018-04-17 Download links edited to point to version 1.2
- 2018-04-19 Download links updated to point to version 1.3
- 2018-04-21 Download links updated to point to version 1.4
- 2018-05-01 Download links updated to point to version 1.5
- 2018-05-04 Download links updated to point to version 1.6
- 2018-05-25 Download links updated to point to version 1.7
- 2018-07-27 Download links updated to point to version 1.8
- 2018-07-30 Download links updated to point to version 1.9
- 2018-08-09 Download links updated to point to version 1.10
- 2019-04-04 Download links updated to point to version 1.11
- 2019-04-10 Download links updated to point to version 1.12
- 2019-05-14 Download links updated to point to version 1.13
- 2019-06-07 Download links updated to point to version 1.14
- 2019-07-30 Download links updated to point to version 1.15
- 2020-01-08 Download links updated to point to version 1.16
- 2020-01-10 Download links updated to point to version 1.17
- 2020-02-02 Download links updated to point to version 1.18
- 2020-03-11 Download links updated to point to version 1.19
- 2020-03-25 Download links updated to point to version 2.0
- 2020-07-12 List all current versions
- 2020-08-09 Updated for version 2.2-CE
- 2020-08-12 Updated for version 1.19.3-ESR
- 2021-01-20 Updated for version 2.3-CE
- 2021-01-27 Updated for version 1.19.4-ESR