On 4/12/21 5:11 PM, Rich Shepard wrote:
I'm running Slackware64-14.2 and keep a list of installed packages. When a
package is upgraded I want to remove the earlier version, and I've not
before written a script like this. Could there be a module or tool that
already exists to do this? If not, which string function would be best
suited to the task?
Here's an example:
atftp-0.7.2-x86_64-2_SBo.tgz
atftp-0.7.4-x86_64-1_SBo.tgz
and there are others like this. I want the python3 script to remove the
first one. Tools like like 'find' or 'sort -u' won't work because while the
file name is the same the version or build numbers differ.
Yes, you've identified why this is hard: package versioning takes many
forms. As suggested elsewhere, for Linux distribution packages, the
only reliable approach is to lean on the distro's packaging
infrastructure in some way, because those version strings (plus package
metadata which may have "replaces" or "obsoletes" or some similar
information) all have a defined meaning to *it* - it's the intended
audience.
Don't know if Slack exposes this information in some way, it may be hard
to make a reliable script if not. I know Debian actually does what
you're looking for as a feature of the packaging system (apt-get
autoclean), and the Fedora/RedHat universe does not, so I've also looked
for what you're looking for :)
--
https://mail.python.org/mailman/listinfo/python-list