I have started using linux for 6 months since I leave Windows and already tried ubuntu, arch and liked mint besides arch AUR be so useful, but because I have had some issues with rolling release I choose mint, and I sometimes need latest package, there is somehow to install without being though appimage and tarball?
Flatpak is good for user things that need to be bleeding edge. If I need to work with a server that’s bleeding edge, containers are the way to go.
Yeah if they want to update system packages it’s where things end up in dependency hell. You want newer X, it needs newer Y, it needs newer Z and it’s a a library half the packages of the system depends on and the rest of the system goes boom.
It’s actually why I went to Arch, I need to hold back packages way more rarely than I want newer everything else.
Your only option is universal formats like Flatpak and AppImage. I would recommend against random deb packages or compiling from source unless it’s some very tiny obscure utility that will not need any updates in the foreseeable future (so something like j4-dmenu-desktop or a fetch script).
Flatpaks the best way.
In my roughly recommended order:
- Flatpaks (great stuff)
- Crates/Cargo (if it’s a rust program)
- deb-get (assuming the .deb it fetches is from an official source (I think they are all official?))
- Homebrew
- Nix Package Manager
- bin
- Docker (occasionally useful even for desktop programs, e.g. CLI programs)
- Compile and install it yourself (test the compilation in a VM first to make sure your compilation steps work if you’re not sure about dependencies)
You are missing PPAs from the list even though it needs some attention on which PPA is being used. I used to use the when I was on Mint.
I forgot about PPAs - I don’t normally use Ubuntu-derivatives. PPAs are a little more dangerous if I recall correctly right? Firstly it should be an official PPA from the software developer, and secondly because it’s a repo you have to make sure that it isn’t going to eventually pull in packages that replace/break your system.
Safety for the ones I’ve listed:
- Flatpaks - Containerized, separate from system packages
- Cargo - Manual compilation,
/home installation
- deb-get - One-off .deb from official source and doesn’t try to pull any other dependencies in - worst case you fail the dependency check I think?
- Homebrew - Pre-compiled binaries or manual compilation if you choose,
/home installation
with local dependency network - Nix Package Manager - Roughly the same as Homebrew,
/home installation
- bin - Probably a single statically-linked executable,
/home installation
- Docker - Containerized, separate from system
- Compile and install it yourself - Highest potential for things to go wrong as you’re messing with system packages and probably working off of some developer’s questionable compilation instructions (or even lack thereof).
Worst thing about PPAs is their maintainers don’t keep up with the base Ubuntu version and then you have to disable the PPA on the next version upgrade, or you end up seeing someone with repositories for Ubuntu 16.04 on 22.04 and wondering why apt is returning errors. Containers are a much better modern solution.
Check devs site if they have own repository, so you can add it and app will be updated directly from that repository.
If it’s cli, use toolbox or distrobox. You can pull in an arch image and get the stuff from AUR.
Distrobox also works with GUI applications. Toolbox, probably too
That’s awesome then. I had some trouble with an electron app so i thought it’s complicated.