Confusion about yay's --rebuildtree vs --rebuildall

According to yay manual:

--rebuildall          Always build all AUR packages
--rebuildtree         Always build all AUR packages even if installed

But I still don’t understand the difference. If an AUR package is not installed, why that package even can be rebuild?

That is from the help. The full man page explains in more detail.

–rebuildtree
When installing an AUR package rebuild and reinstall all of its AUR dependencies recursively, even the ones already installed. This flag allows you to easily rebuild packages against your current system’s libraries if they have become incompatible.

Ok, how it different from --rebuildall?

--rebuildall - This rebuilds all AUR packages that would be installed by the yay command
--rebuildtree - Same as above but also rebuilds all those packages dependencies

To be clear, --rebuildall doesn’t rebuild every AUR package you have installed in the system, just the ones that would be installed by the yay command.

1 Like

So why not just use the yay command? Is their a difference? It will eventually leave you with the latest version of what you have installed.

Those are all options for the yay command.

If you are asking why use those options, it is because, sometimes, with an AUR package that is built from source, it needs to be rebuilt even when the package itself hasn’t been updated. This is happens when something it is built against is updated.

2 Likes

Now I get it, thanks for the explanation.

1 Like

Ok, now I undertand. Thank you.

1 Like