- Shell 97.5%
- Makefile 2.1%
- M4 0.4%
| docs | Support "listening-ports" on NetBSD. | |
| src | Support "listening-ports" on NetBSD. | |
| .gitignore | Initial package skeleton. | |
| configure.ac | New shorter home page URL. | |
| Makefile.am | Copyright note update for 2025. | |
| README.md | Adjust the RHEL derivatives maximum version to 10. | |
| settings.sh.in | Copyright note update for 2025. | |
Introduction
The Unix Admin Compatibility Tool, uact, provides a consistent simplified interface for package and service management across multiple types of Unix-like operating system, with minimal overhead.
There are no complex dependencies or specific Python versions required. All you need to run uact is a shell and the basic operating system utilities.
The tool simplifies basic package and service management across a heterogeneous estate. It can be used in scripted bulk queries or updates over SSH, interactively via a terminal multiplexer such as tmux(1), or it can be used as an OS-independent layer for a command and control system. More advanced activities are left to the native administrative commands.
Supported operating systems:
- Debian GNU/Linux 7 - 12 and derivatives
- AlmaLinux 8 - 10
- Arch Linux
- Alpine Linux
- FreeBSD 13.3-RELEASE
- OpenBSD 7.5
- OpenSUSE Leap 15.4
- Rocky Linux 8 - 10
- CentOS 5 - 7
- RHEL 5 - 10
Supported tasks include package installation, updating, reinstallation, and removal; and service listing, stopping, starting, restarting, and masking.
An extension mechanism allows new actions to be added where needed. User-defined hooks can also run before and after each action.
Documentation
A manual page is included in this distribution ("man uact"). Before
installation, it is in "docs/uact.8".
Changes are listed in "docs/NEWS.md".
Developers and translators, please see "docs/DEVELOPERS.md".
Installation
See "docs/INSTALL" for more about the configure script.
The typical process for a system-wide install is:
sh ./configure --prefix=/usr
make
sudo make install
This requires Make ("sudo apt install make" on Debian or Ubuntu systems).
If this is not a packaged release, the configure script is not included.
It is generated with the GNU build system tools (autoconf, aclocal,
automake). On Debian or Ubuntu, run "sudo apt install automake". Once
those tools are in place, call "autoreconf -is" to generate the
configure script, and run it as described above.
Example
This example shows the use of "uact package-upgrade-list" to find out which
of the test systems listed in the LAB-VMS file have updates waiting to be
applied.
# for remoteHost in $(cat LAB-VMS); do \
ssh "${remoteHost}" "uact -q package-upgrade-list" \
> "upgrades-${remoteHost%.*}"; \
done
# wc -l $(find . -maxdepth 1 -type f -name "upgrades-*" -size +0 | sort)
2 ./upgrades-alma9
3 ./upgrades-archlinux
2 ./upgrades-centos7
2 ./upgrades-debian11
2 ./upgrades-debian12
13 ./upgrades-freebsd
152 ./upgrades-opensuseleap
237 ./upgrades-rocky8
4 ./upgrades-ubuntu24
417 total
Here we see that, for example, the alma9 system has 1 upgrade waiting (the 2 lines of output include one header line); and the rocky8 system has a lot of upgrades waiting.
Copyright, bug reporting, and acknowledgements
Copyright (C) 2023-2025 Andrew Wood.
License GPLv3+: GNU GPL version 3 or later https://www.gnu.org/licenses/gpl-3.0.html.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License, version 3, in "docs/COPYING". If not, see https://www.gnu.org/licenses/gpl-3.0.html.
Please report bugs or request features via the issue tracker linked from the home page.
The uact home page is at:
The latest version can always be found here.