Though IMO the main issues with APT/dpkg are not related to their UI. It is their decades-old internals, and very limited support for transactional/atomic upgrades and rollbacks. Upgrading an APT system is the same launch-and-pray operation as on most Linux systems. I see that oma has an `undo` command, which is great, but I wonder how reliable that is in practice.
I think that every modern OS should support safe upgrades and rollbacks. Nix and Guix are obviously built from the ground up with this in mind, but they both leave a lot to be desired as far as UX goes. Nix more so than Guix. It is these package managers that would benefit the most from a good UI/UX polish.
So for a new OS/distro, I would start with a package manager with solid fundamentals, and work on refining their UI/UX, rather than do the same for one with fundamental issues such as APT.
BTW, I was interested in learning more about AOSC, but the main site is in Chinese with no English translation, so I guess it's not meant for global use.
Yeah not to knock their contribution but I was hoping they'd help make system package management as easy as npm package management. If I want to install say r-studio and octave apt will install a bunch of packages with dependencies. But what if I decide I don't want r-studio or any of the other stuff related to r on my system? I can't just do apt remove r-studio.
This is why I I've been using conda, appimages and chroot jails lately. Still no solution though.
Yea dpkg installations are notoriously single threaded and laden with scripts.
Compared to e.g. Alpine's apkg, installations take quite some time.
Installing multiple (independent) packages in parallel would seem like a straightforward improvement - or installing while downloading unrelated packets.
That's like someone gives you a nicer car and you say "yeah but it doesn't fly". Having a better UI for APT is a separate goal from.. making the next package manager? or improving Nix?
The reality is that Ubuntu LTS (and APT by extension) is pretty much the standard OS of Linux. Even if there are better solutions, that's sort of irrelevant. And APT users could use a better UI
Can someone involved with packaging help me understand why dependency management and system configuration are integrated and not separate things entirely?
For instance, if I "install" LXQT on Ubuntu LTS, it's going to not only install all the dependency libraries (and the dependencies' dependencies) as well as all the relevant executables.. but it's also going to go around and change a bunch of configurations so that when I boot LXQT boots instead of whatever I used before.
Why would it not make sense to have installing libraries/executables and their dependencies be decoupled from all the twiddling config files and setting up the spiderweb of userland processes?
> it's also going to go around and change a bunch of configurations so that when I boot LXQT boots instead of whatever I used before.
This because you left the alternative in "auto" mode, or the installed package called update-alternatives and changed the config forcibly.
Debian doesn't change alternatives during package installations without consulting to you if there's a TTY attached. Installing vim doesn't change "editor" to vim, or installing most doesn't change "pager" to most (unless the configs are in auto mode and the package you installed has a higher priority on that alternative list).
Also, when working with apt(itude), the changes are visibly done, saying that "update-alternatives: x has changed to new_program (auto)" or something similar.
So nothing is hidden from you, and why apt has a rolling log so you can review things even after it's completed.
It's mostly about user intent. If you install the LXQT binaries on Ubuntu, you probably intend to use LXQT as your DE. It makes sense to set that up for you.
There's also an accessibility aspect. Novice users are likely to struggle with setting up the configs, so auto-configuring the packages makes them more accessible to novices. Wanting to install a package without configuring it is a poweruser kind of request; it makes sense to require poweruser knowledge to get a poweruser install, rather than making poweruser-style installs the default.
Fwiw, I believe most package managers can be told to not run their configuration steps if you really want that.
I mean, it's not required per se, it's right there in a repository... the script configures the repository and installs oma afterwards (there are system dependencies).
imiric|4 months ago
Though IMO the main issues with APT/dpkg are not related to their UI. It is their decades-old internals, and very limited support for transactional/atomic upgrades and rollbacks. Upgrading an APT system is the same launch-and-pray operation as on most Linux systems. I see that oma has an `undo` command, which is great, but I wonder how reliable that is in practice.
I think that every modern OS should support safe upgrades and rollbacks. Nix and Guix are obviously built from the ground up with this in mind, but they both leave a lot to be desired as far as UX goes. Nix more so than Guix. It is these package managers that would benefit the most from a good UI/UX polish.
So for a new OS/distro, I would start with a package manager with solid fundamentals, and work on refining their UI/UX, rather than do the same for one with fundamental issues such as APT.
BTW, I was interested in learning more about AOSC, but the main site is in Chinese with no English translation, so I guess it's not meant for global use.
ZeroAurora|4 months ago
You can visit the [wiki](https://wiki.aosc.io/) in the meantime.
bobajeff|4 months ago
This is why I I've been using conda, appimages and chroot jails lately. Still no solution though.
pantalaimon|4 months ago
Compared to e.g. Alpine's apkg, installations take quite some time.
Installing multiple (independent) packages in parallel would seem like a straightforward improvement - or installing while downloading unrelated packets.
happymellon|4 months ago
I see both English and Chinese languages in their wiki.
contrarian1234|4 months ago
The reality is that Ubuntu LTS (and APT by extension) is pretty much the standard OS of Linux. Even if there are better solutions, that's sort of irrelevant. And APT users could use a better UI
contrarian1234|4 months ago
For instance, if I "install" LXQT on Ubuntu LTS, it's going to not only install all the dependency libraries (and the dependencies' dependencies) as well as all the relevant executables.. but it's also going to go around and change a bunch of configurations so that when I boot LXQT boots instead of whatever I used before.
Why would it not make sense to have installing libraries/executables and their dependencies be decoupled from all the twiddling config files and setting up the spiderweb of userland processes?
bayindirh|4 months ago
This because you left the alternative in "auto" mode, or the installed package called update-alternatives and changed the config forcibly.
Debian doesn't change alternatives during package installations without consulting to you if there's a TTY attached. Installing vim doesn't change "editor" to vim, or installing most doesn't change "pager" to most (unless the configs are in auto mode and the package you installed has a higher priority on that alternative list).
Also, when working with apt(itude), the changes are visibly done, saying that "update-alternatives: x has changed to new_program (auto)" or something similar.
So nothing is hidden from you, and why apt has a rolling log so you can review things even after it's completed.
everforward|4 months ago
There's also an accessibility aspect. Novice users are likely to struggle with setting up the configs, so auto-configuring the packages makes them more accessible to novices. Wanting to install a package without configuring it is a poweruser kind of request; it makes sense to require poweruser knowledge to get a poweruser install, rather than making poweruser-style installs the default.
Fwiw, I believe most package managers can be told to not run their configuration steps if you really want that.
b112|4 months ago
debconf plus update-alternatives plus display manager login menus means configs are sticky.
There are rare exceptions, but unless Ubuntu is very strange, deviating fron Debian significantly (and stupidly), what you're saying doesn't happen.
And it is separate. The package manager is calling update alternatives. It's not some ad hock wild west.
You're either asked, or alternatively no change is made.
ivolimmen|4 months ago
bayindirh|4 months ago
aptitude can also handle extended states (autoinstall, manual overrides, holds, etc.) and can be used as a apt replacement (aptitude update).
Also, aptitude can provide alternative solutions to harder package migration scenarios, showing all resolutions on a nice TUI.
Wish the developers compared it with aptitude too, because I see no comparison there.
mingcongbai|4 months ago
self_awareness|4 months ago
it of course works with Arch pacman -Ss, Gentoo qsearch, etc.
majorbugger|4 months ago
mingcongbai|4 months ago
https://repo.aosc.io/oma/
Out of curiosity, how - by your preference - should this be done so that it's easier for the user?