Automated system maintenance scripts for Slackware, including package updates, Perl module updates, and Python PIP module updates.
-
slapt-get – Slackware package manager extension for dependency handling and updates. Installation & info: https://github.com/jaos/slapt-get
-
Perl – Base Perl interpreter. The
perthingsscript updates Perl modules via CPAN. Optional CPAN utilities may includecpan-outdated. -
Python & pip – Base Python interpreter. The
pipthingsscript updates Python packages viapip-review.
-
needrestart – Detects services that need restarting after package updates. Installation & info: https://github.com/liske/needrestart
-
wmctrl – Moves open file manager windows to specific workspaces. SlackBuild: https://slackbuilds.org/result/?search=wmctrl&sv= Alternative / upstream: https://github.com/dancor/wmctrl
-
xdotool – Alternative for moving windows in XWayland or Wayland via XWayland.
-
Uses
slapt-getto update system packages. -
Handles:
- MD5 mismatches
- HTTP errors
- Excluded packages and sources
-
Supports moving the file manager window to a specific workspace for visibility.
Example usage:
windowtomoveto="4"
wintomv="/path/to/package/dir"
. /etc/windowlabelandmove.sh
wlm-fn_windowlabelandmove-
Updates Perl modules via
cpan. -
Excludes modules listed in
ExcludedModules. -
Attempts updates up to 5 times to handle dependency chains.
-
Tracks:
- Modules successfully updated
- Excluded modules installed
- Excluded modules not installed
- Failed updates
Configure excluded modules:
ExcludedModules="Image::Magick,ExtUtils::Command,ExtUtils::Install,File::Temp,DBD::mysql,Time::Piece"Run script:
./perthings.sh- Updates Python packages via
pip-review. - Clears pip cache on each attempt.
- Loops up to 5 times to handle recursive dependency installations.
- Skips if everything is already up-to-date.
Run script:
./pipthings.sh- The scripts are designed for unattended execution (e.g., cron jobs), but some display behavior (workspace/window moves) may require a running X server.
- Excluded modules/packages allow safe skipping of critical or problematic items.
- The scripts use
set -euo pipefailfor strict error handling wherever appropriate. - To remove a Perl module manually:
perldoc -l Module::Name
rm -rf /path/to/module.pmMIT License – see the LICENSE file for details.