frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Oma: An attempt at reworking APT's interface

https://github.com/AOSC-Dev/oma
41•yankcrime•1w ago

Comments

ivolimmen•6h ago
This is a nice and fast interface. I normally use synaptic as I dislike the common 'Software' but this is a really nice command line interface.
bayindirh•6h ago
There's always aptitude if you want a more powerful interface, too.

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.

ivolimmen•2h ago
Yeah I know of it's existence but I always forgot how the interface in aptitude works. It is not intuitive for me. I prefer apt for command line. 99% of the time I mostly use 'apt install x' and that is it. Changing a package to a specific version and other really niche stuff I will use synapic for. With this tool I can actually search and install and that is really nice. When I do not know the name of a package I needed to switch from command line to synapic as I do not know all commands to do so from the command line and that breaks my flow. One should not need to know all different options by heart of package manager on the command line, and with this I do not need to.
bayindirh•1h ago
Note: This is not to discount oma of what it does, but to shed some light to how aptitude thinks about its workflow.

> I always forgot how the interface in aptitude works. It is not intuitive for me.

That's a fair criticism of aptitude, but let me give you a couple of hints, not to change your mind but to give some insights, how to use aptitude, if you prefer.

First, aptitude is mouse aware. You can just click around. Packages, top menu, everything. To close menus you can you can press <ESC>. Alternatively you can press <CTRL> + T to toggle the menu and navigate with arrows.

Management of packages with keyboard shortcuts is like this:

    + : Add / Install
    - : Remove
    _ : Purge
    = : Hold
    M : Mark auto
    m : Mark manual
Makes sense if you ask me.

Upgrading is equally straightforward. "u" for upgrading package lists and "U" for marking every upgradeable package to upgrade.

I think of "g", which aptitude uses as "Next >" button, as (g)o.

The solution of conflicts of other things also intuitive from my PoV. e for examine, "." for next, "," for previous, "!" for apply/force (think as "do as I say switch" in vi/vim).

The only shortcoming of aptitude can be told as not searching package descriptions from the search interface, which can be opened with "/", which is search in almost any other CLI tool in Linux. Also, this search interface accepts regular expressions to match parts of the package names.

Lastly, both apt and aptitude has bash completion for everything from switches to package names. apt(itude) can accept pretty convoluted command line switches, but I rarely use them, if ever.

So yeah, this is how I think of and operate with apt(itude), hope it sheds some more light into these tools. Again, this is not to discount oma or change your mind, but a little cheat sheet.

P.S.: aptitude has minesweeper built-in, because we used to use this thing on dial-up era, and waiting for packages was boring. A couple of rounds of it always brings some joy to late night waits.

mingcongbai•6h ago
As a hint - there's a TUI interface to oma, just run `oma' without any parameter!
self_awareness•6h ago
for fuzzy package search we can run `apt-cache search keyword | fzy` (fzy is a fuzzy pager).

it of course works with Arch pacman -Ss, Gentoo qsearch, etc.

imiric•5h ago
This looks nice, thanks for sharing.

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.

happymellon•5h ago
https://wiki.aosc.io/aosc-os/is-aosc-os-right-for-me/

I see both English and Chinese languages in their wiki.

contrarian1234•5h ago
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

imiric•4h ago
> That's like someone gives you a nicer car and you say "yeah but it doesn't fly".

No, not really. It's like someone giving you a car that looks like a Ferrari, but has the internals of a Fiat.

To be fair, I'm not discrediting this project. I think it's great that someone is thinking about these things. I'm just saying that I would've started with a project with solid internals, rather than put lipstick on a pig.

medstrom•4h ago
You make it sound as if it's pure aesthetics, but... an interface that makes it easier to undo a change is far from being lipstick on a pig, it's an upgrade in real function.
ZeroAurora•4h ago
The AOSC team is working on website i18n recently, so check back later!

You can visit the [wiki](https://wiki.aosc.io/) in the meantime.

bobajeff•2h ago
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.

craftkiller•3m ago
What doesn't `apt-get purge r-studio` accomplish? Are you saying you want your R/python files deleted too?
contrarian1234•5h ago
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?

bbarnett•4h ago
This isn't true.

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.

bayindirh•4h ago
> 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.

majorbugger•3h ago
I'm really disappointed that it's yet another tool that requires "curl into bash" to install, even when you're building from source.
mingcongbai•1h ago
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).

https://repo.aosc.io/oma/

Out of curiosity, how - by your preference - should this be done so that it's easier for the user?

BERT Is Just a Single Text Diffusion Step

https://nathan.rs/posts/roberta-diffusion/
113•nathan-barry•1h ago•10 comments

Commodore 64 Ultimate

https://www.commodore.net/product-page/commodore-64-ultimate-basic-beige-batch1
46•guerrilla•1h ago•14 comments

DeepSeek OCR

https://github.com/deepseek-ai/DeepSeek-OCR
644•pierre•9h ago•165 comments

Space Elevator

https://neal.fun/space-elevator/
1015•kaonwarb•11h ago•215 comments

Servo v0.0.1 Released

https://github.com/servo/servo
238•undeveloper•3h ago•55 comments

Matrix Conference 2025 Highlights

https://element.io/blog/the-matrix-conference-a-seminal-moment-for-matrix/
89•Arathorn•3h ago•46 comments

How to stop Linux threads cleanly

https://mazzo.li/posts/stopping-linux-threads.html
26•signa11•5d ago•3 comments

Docker Systems Status: Full Service Disruption

https://www.dockerstatus.com/pages/incident/533c6539221ae15e3f000031/68f5e1c741c825463df7486c
260•l2dy•8h ago•102 comments

Anthropic and Cursor Spend This Much on Amazon Web Services

https://www.wheresyoured.at/costs/
45•isoprophlex•50m ago•16 comments

Modeling Others' Minds as Code

https://arxiv.org/abs/2510.01272
27•PaulHoule•2h ago•8 comments

Entire Linux Network stack diagram (2024)

https://zenodo.org/records/14179366
461•hhutw•12h ago•39 comments

Show HN: Playwright Skill for Claude Code – Less context than playwright-MCP

https://github.com/lackeyjb/playwright-skill
58•syntax-sherlock•3h ago•22 comments

How to Enter a City Like a King

https://worldhistory.substack.com/p/how-to-enter-a-city-like-a-king
34•crescit_eundo•1w ago•12 comments

Pointer Pointer (2012)

https://pointerpointer.com
177•surprisetalk•1w ago•19 comments

AWS Multiple Services Down in us-east-1

https://health.aws.amazon.com/health/status?ts=20251020
670•kondro•8h ago•263 comments

The Peach meme: On CRTs, pixels and signal quality (again)

https://www.datagubbe.se/crt2/
39•zdw•1w ago•11 comments

Forth: The programming language that writes itself

https://ratfactor.com/forth/the_programming_language_that_writes_itself.html
264•suioir•15h ago•116 comments

State-based vs Signal-based rendering

https://jovidecroock.com/blog/state-vs-signals/
40•mfbx9da4•6h ago•34 comments

Qt Group Buys IAR Systems Group

https://www.qt.io/stock/qt-completes-the-recommended-public-cash-offer-to-the-shareholders-of-iar...
18•shrimp-chimp•3h ago•4 comments

AWS Outage: A Single Cloud Region Shouldn't Take Down the World. But It Did

https://faun.dev/c/news/devopslinks/aws-outage-a-single-cloud-region-shouldnt-take-down-the-world...
257•eon01•3h ago•138 comments

Optimizing writes to OLAP using buffers (ClickHouse, Redpanda, MooseStack)

https://www.fiveonefour.com/blog/optimizing-writes-to-olap-using-buffers
19•oatsandsugar•5d ago•7 comments

Fractal Imaginary Cubes

https://www.i.h.kyoto-u.ac.jp/users/tsuiki/icube/fractal/index-e.html
34•strstr•1w ago•3 comments

Novo Nordisk's Canadian Mistake

https://www.science.org/content/blog-post/novo-nordisk-s-canadian-mistake
396•jbm•19h ago•207 comments

Major AWS Outage Happening

https://old.reddit.com/r/aws/comments/1obd3lx/dynamodb_down_useast1/
1018•vvoyer•8h ago•528 comments

Introduction to reverse-engineering vintage synth firmware

https://ajxs.me/blog/Introduction_to_Reverse-Engineering_Vintage_Synth_Firmware.html
146•jmillikin•13h ago•22 comments

Duke Nukem: Zero Hour N64 ROM Reverse-Engineering Project Hits 100%

https://github.com/Gillou68310/DukeNukemZeroHour
209•birdculture•19h ago•89 comments

Give Your Metrics an Expiry Date

https://adrianhoward.com/posts/give-your-metrics-an-expiry-date/
57•adrianhoward•5d ago•18 comments

Gleam OTP – Fault Tolerant Multicore Programs with Actors

https://github.com/gleam-lang/otp
165•TheWiggles•17h ago•70 comments

Airliner hit by possible space debris

https://avbrief.com/united-max-hit-by-falling-object-at-36000-feet/
372•d_silin•22h ago•196 comments

Major AWS outage takes down Fortnite, Alexa, Snapchat, and more

https://www.theverge.com/news/802486/aws-outage-alexa-fortnite-snapchat-offline
200•codebolt•7h ago•79 comments