The purpose would be to have the equivalent of Ubuntu's "apt-get autoremove" functionality.

When you install package P, it might draw in dependancies D1, D2, ... Dn automatically.

When you later uninstall P, the dependancies D1, D2, ..., Dn might remain on your system.

If you keep installing and uninstalling packages, after a while your system remains cluttered with things you don't need.

The idea would be to mark all dependancies that were installed but not explicitely requested as "installed automatically". Then a command like "zypper autoremove" could remove them at once if they are not needed anymore.

Sorry in advance if this is already possible - I did not find.

Looking for mad skills in:

zypper

This project is part of:

Hack Week 15


Comments

  • dmacvicar
    over 2 years ago by dmacvicar | Reply

    There is zypper packages --unneeded which I am not sure if it takes into account /var/lib/zypp/AutoInstalled.

    In any case a worth project is to:

    • Fix the man page
    • Expose the functionality somehow present zypper packages --unneeded (only lists) and zypper rm -U foo (not usable without a package argument) into an usable command.

  • e_bischoff
    over 2 years ago by e_bischoff | Reply

    Thanks Duncan. I did not know about the --unneeded flags.

    After searching a bit, I found it was described by

           https://features.opensuse.org/300758
    

    I don't think that

      "packages which are not required by other packages and are not in wanted selections"
    

    match the list of "automatically installed" packages that I described, but it seems to address pretty much the same use case:

               A typical use case: user installs an application which pulls in some
               dependencies to test it, uninstalls the application shortly after or way later
               but the dependencies stay unused installed on the system.
    

    In any case, turning this list of packages into a command currently requires quite a bit of sed/awk:

          https://forums.opensuse.org/showthread.php/422841-Remove-unused-packages-with-zypper-or-yast/page2
    

    so a "usable command" as you say it would make sense.

  • e_bischoff
    over 2 years ago by e_bischoff | Reply

    My first tests show that once you remove packages listed with zypper packages --unneeded, new unneeded packages appear. This shows that the --unneeded feature does not explore the tree in depth, or said otherwise, it does not mark as unneeded the packages that would become unneeded if the "immediately" unneeded were removed.

    I also remarked that packages you installed explicitely but are not in "wanted selections" are marked as "unneeded". That one is bad.

    In short, this "unneeded" feature does not really work the same way as the "installed automatically" feature on Debian / Ubuntu.

  • mlandres
    over 2 years ago by mlandres | Reply

    IMO prerequisite for any automatic cleanup is the ability to inspect and manipulate a packages 'autoinstalled' property. This is the base on which the resolver decides which packages can be cleaned and which are requested by the user. If you can not change this property, you can not influence the resolvers decision.

  • e_bischoff
    4 months ago by e_bischoff | Reply

    Right.

    At the end I had not the time to work on this in Hackweek 17.

  • e_bischoff
    4 months ago by e_bischoff | Reply

    I meant Hackweek 15.

Similar Projects

This project is one of its kind!