Being still relatively new to the Arch ecosystem, I try to keep my dependence on the AUR down to only packages critical to my system, i.e. gdm-prime & optimus-manager for optimus support and I also like to have some critical packages of software that I use i.e. timeshift, yaru-gtk-theme, pamac-aur, etc. The reason I do this is just to be on the safe side of things and that I don’t end up having conflicting packages when updates come around to potentially mess up some packages and leave some applications possibly unusable. I have a modest set of about ~35 individual packages installed from the AUR currently and that got me thinking…
When I have a package from the AUR and one or more of it’s dependencies which are also from the AUR get an update, is it general safe to update those dependencies or is it recommended to wait until that specific AUR package gets updated to support those newer dependencies I wonder? Or possibly if none of that really matters and I’m over thinking it a bit too much?
For any example, there is a new dependency update libopenmpt in the AUR, which is used by my favorite music player tauon-music-box which is also in the AUR. The AUR package is maintained by the same developer, so I know I can trust this particular AUR package, I just wonder if it’s okay to always update any and all AUR packages/dependencies or if some patience has to come into play with updating somethings in the AUR?
This is just one example of the AUR that I am curious about, but if anyone has any additional knowledge about something relating to this topic, then please feel free to share of course! I appreciate any advice and thanks for taking the time to read my quick post!
You should do the updates when they become available. Usually, it won’t break the dependent application. However, if it does, you usually just need to rebuild it. It is the same situation as when an AUR package has dependencies in the repos that get updated.
Thanks for your answer that makes a lot of sense to me. For clarification (if there was an error), when you say rebuild it do you just mean like reinstalling the package or is there a specific way to rebuild an AUR package that was giving someone trouble? Or do you have to like uninstall everything and tehn redownload all the AUR package, rebuild everything, and then things should be good to go?
If the package is a binary package, there is nothing you can do. If it is a package built from source you need to rebuild it. Depending on which helper you use, you may need to cleanbuild it. In other words, you can’t reinstall the same package, you need to rebuild the source.
I don’t typically use any binary AUR packages (none currently installed at least), and I just so happen to use the default yay AUR helper of course! So what exactly would a rebuild/cleanbuild/etc look like I wonder?
@dalto@fbodymechanic Ah so if I ever have an issue with an AUR package update with one of the dependencies, I could say for an example, run yay -S tauon-music-box and for Packages to cleanBuild? I would just select A for ALL and that would basically rebuild it with all the updated dependencies and I should be good to go theoretically then eh? Just trying to wrap my head a bit around this process if I ever have to come across it in the wild!
You would select all, if you want to cleanbuild all of the packages listed, not specific packages (as noted already). That question is asking which of the packages do you want to cleanbuild - since I only picked 1 to show instead of several, that’s why there’s only one.
If something doesn’t build this can help, part ofthe update may have been to the build process - so a cleanbuild will be necessary. You may also need to clear your cache as well.
I always select none - and then if something fails - I’ll remove it from the process, finish updating the other packages and then just cleanbuild that one specific package at the end. It’s probably unnecssary, but, everyone does things a bit differently.
But this feeling is awesome:
[derek@archcinnamon ~]$ yay
[sudo] password for derek:
:: Synchronizing package databases...
core is up to date
extra is up to date
community 5.7 MiB 950 KiB/s 00:06 [############################] 100%
multilib is up to date
:: Starting full system upgrade...
there is nothing to do
:: Searching databases for updates...
:: Searching AUR for updates...
there is nothing to do
Ahh okay that’s good to know, otherwise I’d have just always assumed to cleanBuild ALL every time an issue were to occur, so this is good to know, thank you for the assistance.
I wouldn’t mind clearing my AUR cache if it’s needed to fix an issue, but I wouldn’t want to clear my pacman cache as well since I use that with 2 previous versions in case I ever need to downgrade anything ya know. Pretty sure yay -Sc clears the cache, but I think that also clears the pacman cache as well, which is something I’d rather avoid doing. What’s the best way to just clear out the AUR cache or perhaps a specific AUR package and keeping the rest of the cache in tact, if that is a thing?
Why? It asks which packages do you want to cleanbuild and then gives you several options. If All everytime was the answer - it would just offer up options for all, or none.
I guess? In a few years I don’t think I’ve ever downgraded anything except back when I used Manjaro and went from testing or unstable branch back to stable. I do know it happens occassionally though, it’s definitely not something you need to do daily, or even weekly.
What do you mean by “I use that with 2 previous versions.” ?? Like you just want to make sure you have 2 previous versions to fall back onto, or do you actually use them for something?
I clear both cache on some sort of regular basis - maybe every few months, when I do my journalcleaning too. It hasn’t hurt me yet** but as everything, your results may vary on that one.
Manjaro was my first experience with an Arch-based distro a couple years ago, so I think perhaps the idea that things may break so plan for the worst is a mindset I have from those days where Manjaro had borked my system at least twice that I ended up leaving.
What I meant by that was like keeping previous versions in the cache in case I needed to downgrade, like basically what paccache -r does I just have a horrible way of saying it I suppose.
>> yay -Sc --aur
Build directory: /home/dalto/.cache/yay
==> Do you want to remove all other AUR packages from cache? [Y/n]
removing AUR packages from cache...
==> Do you want to remove ALL untracked AUR files? [Y/n]
removing untracked AUR files from cache...
>> ls ~/.cache/yay