free-disk-space icon indicating copy to clipboard operation
free-disk-space copied to clipboard

Feature request: add whitelist for "Large misc. packages"

Open ingomueller-net opened this issue 1 year ago • 3 comments

Thanks a lot for this awesome packages! It's an easy work-around for an annoying limitation :)

I have one idea to improve it for my current situation: I really need the space by all options, i.e., I need large-packages: true. However, I also need llvm-12 and friends, which is removed by that option. Of course, I can work around this by installing it again in another step but I think it would be more convenient and faster if it weren't removed in the first place. One idea to achieve this is to add a whitelist feature that allows to filter out packages that are going to be uninstalled. What do you think?

ingomueller-net avatar Jun 13 '23 07:06 ingomueller-net

Hello @ingomueller-net,

Thank you for your kind words and the very nice suggestion, I think this is an excellent idea!

The code for large file removal currently is here:

sudo apt-get remove -y '^dotnet-.*'
sudo apt-get remove -y '^llvm-.*'
sudo apt-get remove -y 'php.*'
sudo apt-get remove -y '^mongodb-.*'
sudo apt-get remove -y '^mysql-.*'
sudo apt-get remove -y azure-cli google-cloud-sdk google-chrome-stable firefox powershell mono-devel libgl1-mesa-dri

A few questions for you:

  • Do you have any ideas on how you think this should be specified? So this could be an input flag, like large-packages-whitelist:, with a string of comma separated patterns? Like large-packages-whitelist: "llvm, dotnet" for instance?
  • Do you want to take a stab at implementing this?

jlumbroso avatar Jun 30 '23 13:06 jlumbroso

Yes, I think 'large-packages-whitelist' would be a good idea. Maybe an actual list of regexes rather than a poor-man's list encoded as a string?

I have been able to reduce my disk usage by other means in the meantime, so I won't be using this action anymore for the time being. I did, however, spent a few minutes thinking about how I would implement this.

I found this post asking the same question I had: how to get a list of packages defined by a wildcard and then remove some with another wildcard. However, I think that that solution isn't quite what we want yet: it only whitelists packages that match the regex of packages that should be removed. However, apt-get remove may remove further packages, which should also be retained.

ingomueller-net avatar Jul 05 '23 08:07 ingomueller-net

add a bug. when dotnet set false, and Large is true, shell will be clean all dotnet runtime . please fix. It would be even better to provide a. Net runtime environment that retains the specified version.

gmij avatar Aug 08 '23 00:08 gmij