I use native packages wherever possible, then flatpak's after that, and then aur pretty much only for things that don't run well in flatpaks. I really don't want to have to look through 50 different pkgbuilds every time there's an update and the downsides to flatpaks are, I believe, largely overstated
Linux
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
when both are available it's hard to decide.
It's easy to decide: AUR (only)
Personally, I use pacman for as much as I can, then dip into yay for anything else.
I just use pacman and yay. I avoid flatpaks as best I can, I don't see the hype.
Yay
I only use flatpak for one Python program because it has a lot of runtime dependencies I don't want to bother with. I generally wouldn't use flatpak.
My reason for using arch linux is to have as little bloat as possible. So, pacman. Yay sometimes for AUR stuff, but my need for it is rare.
Pacman plus the AUR is the move on Arch based distros. The AUR gives you access to basically everything, and paru or yay handles the build chain without pain. Flatpak has its place for apps that ship messy runtime dependencies, but for most things it adds an unnecessary isolation layer. Have you tried paru as your AUR helper yet?
I sometimes prefer Flatpak over AUR, because I do not trust everyone on the AUR to run scripts with root rights on my system. At least Flatpaks are a bit sandboxed (even if the sandbox is an illusion) and the programs don't install and run with root rights. Sometimes the Flatpak is from the original developer and the script in AUR is not. Or the AUR script is not updated well and often enough, unlike day one Flatpak updates. But Flatpaks do not integrate well in your system and applications can look out of place too. There is a lot to consider, besides what you already mentioned.
I use both, prefer the AUR in optimal cases.
pacman / yay
I also like pacseek as it provides a simple tui for package search and getting info about packages.
I use yay, as it comes by default with EndeavourOS. It's basically an AUR helper that uses pacman and works quite the same.
Flatpak is a different package manager and has nothing to do with your system packages. They are not exclusive, I use both. So what you basically asking isn't which package manager people use, but rather which package format.
Same here, I tried a number of arch derivatives and arch as well when I got a new desktop last year (after many years of mac work computers, iMac desktop for my kids, mostly Alpine images in the cloud/on k8s, and many many years of mostly Debian and fedora derivatives before I had kids and had time to putter around with *nix). Endeavor suited my needs (some local LLM stuff, personal browsing, a few OSS projects, and Steam) and yay has generally worked great to bridge the gap between pacman and aur.
I have both yay and paru on the two Arch systems I manage, because pacman tends to break those occasionally through dependencies and that way I don't have to do the whole makepkg bit again and instead can update the one with the other. I still find it asinine that these aren't in the repos or the functionality isn't integrated in to pacman, but since Arch's entire philosophy is based on simplicity, I guess the chosen solution to secure user packages is security by obscurity.
(I only still use Arch on those systems because I haven't gotten around to migrate them to Gentoo yet, after implementing a binpkg repo and custom profiles many years ago so compiling on the weaker machines is essentially unnecessary, btw.)
I use paru
There is pacman + aur and then there is flatpak.
This is sort of like asking "which fruit juice do you use, an acme apple juicer or a blamco orange juicer." If I need a flatpak, I use flatpak. Sometimes things only have flatpaks and aren't on the AUR.
If it's on both, nowadays I typically prefer the non-flatpak version, but that's just sort of vibe based, I don't really have a good reason. I think I ran into a few (very minor) problems with flatpaks (that were probably easy to fix) that I didn't have with the non-flatpak version and that skewed me in that direction.
For command line apps, I use paru for AUR. For desktop apps, if they’re available as a flatpak, I prefer that for the increased security provided by the sandbox. Otherwise I use Arch packages or AUR. I even uninstall GNOME apps (calendar, weather) from pacman, and install their flatpaks.
Paru, so Pacman & AUR...
With exactly one exception: Steam via flatpak because that's the single package left that would need 32bit libraries from multilib-repo since Wine finally left those dependencies behind.
I don't like Flatpak, so that makes it an easy choice for me. Flatpak apps never quite integrate properly
I like having Flatpaks as a fallback option, but if something is available in the arch repos, aur or chaotic-aur, I'll always go there first
You can choose between things like flatpak or aur packages, but you're gonna have to use pacman either way, since your core packages are still managed by pacman even if you decide to install most things through flatpak. Just wanted to point that out in case you were thinking of not using it at all anymore, cause it's definitely not good to have your system get extremely out of date overtime. Having said that, it's a matter of preference. The aur has more packages available, but flatpak has verified packages available, so assuming you stick to those, it could be safer. It also offers things like sandboxing. When i was on arch i only used the aur. I usually go with whatever has the most packages available or whatever is most convenient.
Your question is not Arch specific, it's "should I use flatpaks?" And the answer in my opinion is probably no.
Flatpaks are a good idea to isolate certain applications and to provide a uniform way of installing packages. So there might be some apps that are not available in your native package manager, but do provide flatpaks. For those cases flatpaks are probably preferred. But Arch based distros have the AUR, so there are a lot of apps that aren't packaged for Arch that you can still get as a native package. Sure, using the AUR is risky and if you're not on actual Arch things might break sporadically because of mismatched dependencies (although I think CachyOS is full parity of packages with Arch, so that's maybe more of a Manjaro warning).
But flatpaks are clunky, bloated, require annoying permissions to be set to do basic things, and require you to update two package managers to do a full system update. They are more appealing for systems where you don't want to give users root access but still allow them to install programs, but for your own computer I have never seen the appeal.
I partially disagree. I have found that some flatpaks are better than otherwise for updating the app. When I use the air branch of discord on arch, discord does not update automatically and I need to complete a system upgrade and modify a Jason file. The flatpak version updates automatically with no problems.
What is the air branch? Discord has a package on pacman, so it should just get updated with your normal system update, there's no config or anything that could prevent that, pacman doesn't care. What JSON do you have to edit and why?
Build_info.json
I have only ever had this issue with discord on arch. Whenever discord has an update, it will not fetch the update, but it tells me that an update can be downloaded.
This is the situation with discord through aur. https://karx.xyz/blog/discord/
I do not know the air branch
Also, I am trying to convince my friends to switch to element instead of discord, but they have been stubborn.
I have only ever had this issue with discord on arch.
The issue you describe is not Arch specific and it's not an issue. Using a package manager means using a program to manage your packages. Things can't auto-upgrade, that breaks the point of a package manager.
Whenever discord has an update, it will not fetch the update, but it tells me that an update can be downloaded.
Of course, if you install discord through pacman, then pacman manages the update.
As for the JSON file that's a very hacky approach, discord shouldn't outright fail to launch if there is an update. And in fact the Arch wiki says it has a flag to skip the version check completely:
To disable the update check, add the line "SKIP_HOST_UPDATE": true to ~/.config/discord/settings.json. If the file does not exist, create it and add the following:
~/.config/discord/settings.json
{
"SKIP_HOST_UPDATE": true
}
More info on https://wiki.archlinux.org/title/Discord
The flatpak version of discord is able to fetch for updates when launching the app without needing to system update. And for some reason it is specifically on a system update. Updating only discord does not update the version even after modifying the build_info.json. and I could disable updates, but that shouldn't be necessary unless discord is pushing updates that are actively making the experience worse.
You're completely missing the point. Discord is a chat app, not a package manager, therefore it should NOT update things EVER. You're complaining that discord tries to do something it shouldn't, fails and somehow you seem to think that's pacman's fault.
The "issue" doesn't exist on flatpaks because discord probably checks if it's installed via flatpak and runs an update using the flatpak command without your say so. The "solution" is to stop discord from trying to be "smart" and failing and let it be updated when pacman decides to.
The idea of a package manager is to let it manage your packages, if you want self-updating apps you don't need a package manager, and good luck with dependencies and overlapping libraries.
I guess you could put it that way. For most general applications, I prefer to use flatpak over pacman. Pacman and arch's repos to me are still very confusing over other package managers (dnf, apt, etc)
What makes it confusing to you?
I use an unholy blend of paru, Flatpak, Docker and AppImage apps (no Snap!) with Topgrade to update it all.
Upvoted for Topgrade. It's honestly so good on any system that employs more than one 'updatable microcosm',
It's like magic too, because any new weird kind of package manager I add, it's just picks it up and starts updating it. It can even update Windows apparently.
Look into the Chaotic AUR. It offers pre compiled AUR programs. Almost every app I really need has been there. If it's not in there and I really need it and will get used often I'll get it from the AUR.
I dont really like flatpaks much. I'll use it if it's easy and I dont plan on using the app much. Apps like Bottles. They are nice to have but rarely do I use it.
Yay. Add ssu (a 120 loc C tool) as "sudobin" in it's config and you've got a passwordless package manager.
And btw, that question is covered already.
You mean you have a package manager for your system without a password? Why would anyone want that?
Edit: For context. The part I was replying to was edited out.
(I can't see the edited out part but if it was about yay...)
Yay builds in your local cache and then when it is ready to install it asks for sudo. The reason for this is because sudo can timeout during long builds, and more importantly if you compile with sudo you run the risk of arbitrary code execution. So it is safer to run with just yay and then it will ask for sudo when it actually needed.
No, that is not what it was about. I know, don't run sudo yay, but rather just yay and wait for password request. What it was is about a configuration to not ask password anymore, a passwordless package manger.
Convenience. It asks the kernel if you're logged in and if you're allowed to escalate. So, secure enough for a single-user system.
I don't feel safe doing so. Would a script be able to run escalated rights without asking me a password? Is it somewhere displayed that such a process is started (notification in example or at least in the terminal a message?). And even for applications I am directly starting, I want it be explicit to require a password, that I am always aware its escalated root rights the app has now.
I can understand your view of convenience and I am "guilty" of some convenience stuff too. But this goes a bit too far for my taste.
Okok, i've removed the ssu config part.
Shelly is another option, comes pre installed on CachyOS. It's aiming to modernise pacman. It's been pretty good for my usage.
It has a GUI that can handle native repos, the AUR, flatpaks and app images. It can also be used in your CLI as well
Personally, I use pacman when possible and flatpak when it's not. I try to avoid the aur as I have had too many problems with missing dependencies or version conflicts. Plus, I don't generally need things that are not in the repositories so it rarely comes up.
"But flatpaks are not lean!" While this is true, I find flatpaks don't break my system. Flatpaks do use more resources, from storage to RAM, but I have plenty of both so it's not really a concern.
Always use native pkgs if possibile (so use pacman/paru)
pacman /w chaotic-aur.
I don't need the AUR directly, a GUI, or other managers. Just what came with my system + chaotic works just fine.
edit: typo
What do you mean by "bloated"? How many more bytes does the flatpak version have compared to its counterpart?
Depends on the program, they don't use system libraries so if they have a lot of dependencies then they'll be larger.
An example:
Steam Flatpak: 35MB
Steam pacman: 19MB
On one hand, it's only a few MB. On the other hand, it's 54% larger.
Flatpaks can also depend on other flatpaks. For example, graphics card support requires about 1-1.5GB of flatpak dependencies even though your system already has graphics card drivers.
I just don't understand how people still use Flatpak.
Once I had to download a small app 400kB more or less, and suddenly it started downloading 200MB of environment packages.
Never again.
I just reinstalled arch last weekend and have both paru and yay installed. Only real difference between them is yay is Go and paru is Rust. Both work great and very similarly. I think the paru dev originally worked on yay.
I tend to choose the pacman and aur over flatpaks or snaps, something about the isolation layer never sat right with me.
Im running arch proper, nothing come pre-installed. But I originally used paru and then installed yay cuz I was troubleshooting something. Never removed it.
Fo what it’s worth, it doesn’t hurt anything to have multiple installed so you can see which you like. They shouldn’t interfere with eachother.
i used their version of discover (forgot the name) and found it has mostly everything i was looking for (surprisingly so)