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

Reply via email to