Hacker News new | ask | show | jobs
by iueotnmunto 1048 days ago
My recent gripe is that I've used Linux for more than half my life and I'm well into my 30's. I feel like my ability to navigate a system has gone _backwards_, Debian no longer accepts 'init 0' as a command, ipconfig isn't a command anymore, systemd changed the whole subsystem from underneath me, ubuntu/snap decided not only to litter+bloat my filesystem with needless duplicates but also that not only would I prefer Firefox be a snap package (which broke my workflow), but that it would require me to go well out of my way to solve that, Gnome decided that I wanted a touchscreen layout (I custom compile gtk+ to remove the 'search on type' behavior in file>open dialogs, most major packages seem to default to nouveau which while a great movement seems to totally break critical path regularly.

How the hell have we gotten to a point where Linux closely reflects the instability of the Windows ecosystem. I'm not afraid of change, but I feel like the large majority of changes that are made cause me problems to the point where I now fear upgrading my distro to latest.

10 comments

> Debian no longer accepts 'init 0' as a command

I'm not sure where this affirmation comes from. Do you have "systemd-sysv" installed? What happens when you do run `init 0´?

init(1)[0] says:

  For compatibility with SysV, if the binary is called as init and
  is not the first process on the machine (PID is not 1), it will
  execute telinit and pass all command line arguments unmodified.
  That means init and telinit are mostly equivalent when invoked
  from normal login sessions. See telinit(8) for more information.
telinit(8)[1]:

  The following commands are understood:

  0

  Power-off the machine. This is translated into an activation
  request for poweroff.target and is equivalent to systemctl
  poweroff.
> ipconfig isn't a command anymore

are you sure you're not mixing up the Windows command ipconfig[2] with the still ubiquitous ifconfig[3]? Even though it's considered deprecated in favor of iproute2's[4] "ip" command, I don't know any distro which has ceased making net-tools available, let alone unusable.

> systemd changed the whole subsystem from underneath me

I agree systemd has been pretty disruptive, but it has made me a lot more productive. Writing a unit file is dead simple, and it is capable of doing a lot of very interesting things. Hardening a unit is quite easy, for instance. You might already be aware of all that, but if not, I can drop some links on another reply.

Overall, from the one of your reply, I have the impression that you might be happier switching to a less opinionated distro like Void Linux or Gentoo. Something as curated as Ubuntu isn't a good fit for you.

  0. https://man7.org/linux/man-pages/man1/init.1.html
  1. https://man7.org/linux/man-pages/man8/telinit.8.html
  2. https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/ipconfig
  3. https://sourceforge.net/projects/net-tools/
  4. https://wiki.linuxfoundation.org/networking/iproute2
Debian 12.1 out of the box, I'm sure there's a workaround, but I had to google 'How do I shutdown my computer.

s/ipconfig/ifconfig/

> Overall, from the one of your reply, I have the impression that you might be happier switching to a less opinionated distro like Void Linux or Gentoo. Something as curated as Ubuntu isn't a good fit for you.

I agree, but I work in infosec. Nobody ever got fired for running Ubuntu, particularly when there's at least some auditing of source before they push out deb packages. I know there are minimal case studies, but one day someone will get malware into a distro, I'd like to reduce the risk that it happens to the distro I'm running.

I also moved away from Gentoo ~ 10 years after systemd was mainstream, at that point it was basically impossible to get Bluetooth Audio working without pulseaudio, which seemed impossible to run without Systemd. I fully understand that Systemd is probably better in a lot of use cases and I really don't care what's running under the hood, provided it doesn't get in my way.

Edit: And the reason I hate whatever is responsible for the 'ip' command is that it's virtually impossible to google specifically for that command (y'know, because 'ip' was a protocol not a command, convoluting things unnecessarily)...

> Edit: And the reason I hate whatever is responsible for the 'ip' command is that it's virtually impossible to google specifically for that command (y'know, because 'ip' was a protocol not a command, convoluting things unnecessarily)...

Oh, absolutely. It could be forgiven if the documentation wasn't so spectacularly useless. The man page just covers that there are OBJECTs you can call, and that you should do for instance 'ip address help' to see what you can do. I encourage anyone to actually do that. A familiarity with Backus normal forms is required to decipher that "help".

Just install 'net-tools' and good ole ifconfig will be in /sbin...

> The man page just covers that there are OBJECTs you can call, and that you should do for instance 'ip address help' to see what you can do.

Amen. I just replied to the upthread comment with the same example of uselessness before reading this comment.

pulseaudio works in Gentoo now, and you can even run it without switching to systemd (which Gentoo also supports if you're into that). Gentoo also has a new sound server called pipewire that is pulseaudio compatible so that's an option also.

(and agreed with all of your other points, and there's still something to be said for the push button utility of ubuntu, etc; to your point, a lot of infosec people, including at large enterprises, prefer gentoo.. I know many of them and am one myself.)

I strongly suggest switching to pipewire instead of pulseaudio. Most big distros are already switching; pipewire is newer but already more mature/stable.
You sound about the same era as me. I'm 35 now, have been using Linux since 2001 until now. Just remember, that when you started using Linux, it was about 10 years old. It's now been 20 years since then - double the time has passed since you started, compared to what came before it. Some stuff is going to change. Sure some of those commands come from older Unixes but the point still stands :)

Some of your complaints are practical but 2 specific ones I'd note: "ip" has been the tool you wanted to use since even the mid 2000s - ifconfig wouldn't even show you every IP on an interface since then unless it had an alias. Something that may help you make the transition is the "-brief" (-br for short) switch which gives a very compact simple output that is a little easier to visually parse. If you're using a systemd-networkd system, "networkctl status" is also handy.

For systemd, I have never been bitter about it, but while it has changed many commands and interfaces or ways you work, if you just dig a tiny bit below the surface it has SO many modernsations and conveniences that more than make up for it. Make your own rosetta stone for your top commands, but then look around at all the other things systemctl, etc, offer and find some pluses to make the pain worth it :)

See also: https://github.com/certsimple/rosetta-stone

`ip --json ${object} | jq` takes the guesswork and the awful regexps that would be required to otherwise half-ass parse ifconfig output (that is not trivial, otherwise no one would need https://github.com/kellyjonbrazil/jc ).
Such is the nature of technology.

For me, I can't see how anybody actually used/managed linux systems before they standardized the api for creating/managing daemons. A simple convenient api layer for saying to a machine "I want this program running always."

The interface was standardized; sysv initscripts services are supposed to change status depending on ${1}: start, stop, reload, force-reload, status.

The shell script cosmic horrors underneath to implement the interface were not.

> I custom compile gtk+ to remove the 'search on type' behavior in file>open dialogs

> I'm not afraid of change

If that minor issue is a reason to recompile a whole ui-toolkit, then I guess you should just stop applying any os update at all...

It's not actually that complicated, iirc, I have an ansible script to trigger the build based on a 2-line patch.

The maintainers proposed a similar patch to Gnome/GTK as a hidden option in dconf, but iirc their dev team took the opinionated 'our way or the highway' approach, as they've done on many other occasions.

unafraid of change ≠ happy with any particular change

It's very much possible to be unafraid of change and still have strong preferences.

I have a feeling the BSDs could be the answer to that, but I think at this moment what makes me reluctant to migrate is hardware support (could be mitigated by buying specific hardware but I prefer to use what I already have) and virtualization (evolving but not as great as KVM). It is mainly the amount of packages available on Debian-like distros and the slow update cycle that makes me stick to them.

I tried to use OpenBSD for a while at home, and it mostly worked out, but making my VPN work with it looked so complicated that I went back to Debian.

I wonder if AI and a future GPT-5 with a much longer context window can fix this. I made a complex Tailscale/VPN/Docker config last month with GPT-4 that would have required either a highly competent/expensive sys. admin; or 2 months of reading/researching.

It took me an afternoon to get it working.

Have you considered void? ip and ifconfig are both things, services are runit scripts like in 2008, snaps aren't installed by default, your firefox will never be replaced by a snap, you don't have to use gnome, and configurations are by default lean?

Keep in mind that availability of software is not as good as Ubuntu although you can use flatpak if nobody has created a package for something and you don't want to.

> I feel like my ability to navigate a system has gone _backwards_

I've been using Linux since 1995, and I'm completely lost sometimes. The manpage for `ip` is frustrating compared to the `ifconfig` one.

If only the Mac UI wasn't so spectacularly primitive, or Windows wasn't so impressively anti-user, I'd probably switch.

Thankfully I don't share many of your UI woes because I'm on Mate.

I've been using linux since 1992, and find 'ip' far far easier to use for unexpected situations than memorising the bizarre ifconfig incantations.
Spend a week (seriously it will take that long, especially if you've been doing this for a long time and want to customize everything and also haven't been in the gentoo scene for a while) and switch [back] to Gentoo. (don't go all the way to Funtoo, yet, even though syncing and profiles are probably superior)

if you know what `init 0` is then you'll be able to pick up on Gentoo and it'll be the new distro for the rest of your life. another excellent option is Void or Alpine (both of which I prefer on servers, but Gentoo makes a better desktop because it's incredibly flexible).

You ain't kidding. I literally spent a week bootstrapping (read: compiling everything, starting with gcc) Gentoo to get a basic desktop up and running, back when that was a supported thing to do.

Would I do it again? Nah, probably not. Am I glad I did it in the first place? Eh, I was young, had a spare machine, and a bit of a masochist then. But I did learn quite a lot in the process.

These days, I think the closest you can get to the experience I had is building your own Linux from Scratch distro.

>I custom compile gtk+ to remove the 'search on type' behavior in file>open dialogs,

This "feature" never fails to amaze me and I stumble over it _every_ time I use the file picker. And for the life of me I do not understand why someone would implement it this way.

What bugs me most is that file name in the name field is already highlighted but instead of inserting text there when typing it starts to fill in another input field. I wish someone could explain. It just feels asinine. Every time.

Where can this be reported or an existing requested be upvoted? This irks me too no end.
> Where can this be reported or an existing requested be upvoted? This irks me too no end.

You can't. From what I've seen GTK / Gnome devs are incredibly unaccommodating to functionality that they don't agree with. https://bugzilla.gnome.org/show_bug.cgi?id=754302

The patch I'm using:

https://pastebin.com/cdkH8uXg

https://pastebin.com/Ek1tTcsm - this is 'file-chooser__typeahead.patch' which I sourced from a github somewhere

User facing tools have always been changing in Linux but that doesn't mean a regression in functionality, usually quite the opposite. ipchains became iptables which became netfilter. chroot and su evolved into namespaces and capabilities (yes, I know these existed since forever but no one cared back then).

I would agree with you on Gnome. It aped+ the macOS UX poorly and as a result, it feels like several random efforts thrown together with no cohesion or plot.

+: Subtle pun for old timers