# Slack Autoupdate Update your Slackware system automatically by integrating these customizable bash scripts. Pending update information is saved into the 'info' and 'error' text files under '/var/spool/slack-autoupdate'. 'info.txt' should contain package update information, and 'error.txt' contains any problems encountered while attempting to source updates. ## Support These scripts only currently support stable Slackware64 releases (sorry -current). Please refer to the project's [linux questions post](https://www.linuxquestions.org/questions/slackware-14/tool-to-help-with-automatic-updates-4175735340/) for feedback and bug reports. You can find known bugs or possible improvements on the project's [todo](https://git.server.ky/slackcoder/slack-autoupdate/tree?h=todo) branch. ## Installation and Configuration There are three components. the [cron script](./src/slack-autoupdate) which downloads packages, the [rc.slack-autoupdate script](./src/rc.slack-autoupdate) which installs the packages, and the [install-kernel script](./src/install-kernel) which updates your computer after a kernel update. ### Cron script Your system downloads the packages using this script. Adjust the script using your favorite editor: ``` vim src/slack-autoupdate ``` Then as root: ``` cp src/slack-autoupdate /etc/cron.hourly chown root:root /etc/cron.hourly/slack-autoupdate chmod +x /etc/cron.hourly/slack-autoupdate ``` ### rc.slack-autoupdate Your system updates your installed packages using this script. Adjust the script using your favorite editor: ``` vim src/rc.slack-autoupdate ``` Then as root: ``` cp src/rc.slack-autoupdate /etc/rc.d/ chown root:root /etc/rc.d/rc.slack-autoupdate ``` Then add this to /etc/rc.d/rc.local: ``` if [ -x /etc/rc.d/rc.slack-autoupdate ]; then /etc/rc.d/rc.slack-autoupdate fi ``` To enable installation on reboot: ``` chmod +x /etc/rc.d/rc.slack-autoupdate ``` or to disable it again: ``` chmod -x /etc/rc.d/rc.slack-autoupdate ``` ### install-kernel This part depends on your system setup and will automatically update the kernel into your system. You should modify it to suit your circumstance. The default script assumes you are using elilo and the kernel for your EFI is installed into /efi/EFI/Slackware/vmlinuz. Adjust the script to your system using your favorite editor: ``` vim install-kernel ``` Then as root: ``` cp install-kernel /usr/local/sbin chown root:root /usr/local/sbin/install-kernel chmod +x /usr/local/sbin/install-kernel ``` ## Source ### Customizing Update Downloads You can add a section to the [script](src/slack-autoupdate) to pull updates using different tools or sources. The sections use the following structure, and some examples are provided in the [recipes](src/recipes) directory. ``` if ! OUTPUT="$( # Redirect error output to standard output. exec 2>&1 # Download updates into $STAGING_DIR. # # On failure the command output is appended to the error file. # Update information should be appended to the $UPDATE_INFO file. )"; then if [ -f "$UPDATE_ERROR" ]; then >>"$UPDATE_ERROR" echo "" >>"$UPDATE_ERROR" echo "" fi >>"$UPDATE_ERROR" echo -e "[Update Name]:\n\n$OUTPUT" fi ``` ### Testing You can test the project by running the shell files under the 'test' folder. ``` sh src/test/*.sh ```