79
What are the problems with Ubuntu?
(lemm.ee)
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.
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
The general philosophy behind it.
Ubuntu started out as Debian with some improvements.
Once they were established as the primary Linux distro, they pivoted to an MS-like approach. They tried to invent and implement their own solutions for things that an agreed-upon solution already existed, and was in need of manpower to iron out the kinks (best example is developing Mir instead of throwing their weight behind Wayland, or creating Unity instead of improving Gnome).
They also tried again and again to monetize their OS, which they built on top of millions of volunteer work hours from the Debian project.
All of these efforts failed so far. Their current "we can do it better" project is Snaps, which again duplicates volunteer work instead of contributing to Flatpak which was there before.
I'm willing to admit this one does make sense, since their goal is to make an OS where everything except the kernel and the init system is a snap, something which you can't do with flatpak.
But I'm also pretty sure that'll fail again.
If they simply built an OS with a Debian base, newer packages, 2 releases per year, an LTS every 2 years, and a GUI selector for Gnome or KDE in the installer, they'd be the perfect beginner distro. On the other hand, then they wouldn't make any money.
I like Ubuntu for exactly that: The bravery and manpower to try different things. I remember I loved their Init-System Upstart when it came out in 2006 - long before systemd got established. It made managing services and their dependencies far easier than with the SysV-Init system other distros had at the time.
Unity was miles ahead of Gnome-Shell in the beginning. And I loved the one-menu-bar approach - similar to macOS - as it saved screen space on smaller screens.
It’s easy to flak on Ubuntu for not keeping in line with “tradition”, but I believe we wouldn’t have some newer projects without Canonical trying something new and showing people what’s possible.
My daily driver for ~25 years is still on sysvinit. I have plenty of experience with systemd based distros. I run proxmox on my home server. I don't hate systemd, but it's a lot less intuitive for me.
Example: I want to start the tailscale daemon and service at boot. Easy, add it to /etc/rc.d/rc.local . Oh wait, I want my laptop to check for an internet connection before trying to bring up tailscale. Otherwise the boot process halts for 20 seconds until it gives up. Easy, add a bash script in rc.local to test for an internet connection before trying to bring tailscale up.
I know the answer is systemctl something, but I have to look it up EVERY DAMN TIME. and this is just one of many things that have been giving me heartburn for years.
But you are doing the work the computer should do by scripting your own startup process. Also, it will process your
rc.local
sequentially whereas systemd does things in parallel. If you have 5 different custom services that need network, your approach would have them started one after another. Systemd would wait for network access and then start them all in parallel. If one of those hangs, the others will still start in a few seconds (unless they depend on the hanging service) and the boot process will still continue.Also, what about if some service fails? systemd can restart them automatically, you have commands to see at a glance whether your desired services are all running (i.e. the system is in your desired state), it manages the log outputs for each service, etc. etc. .... it's a huge comfort win and once you've written a few units, you won't have to look everything up all the time.
Put this in
/etc/systemd/system/myservice.service
, runsystemctl daemon-reload
followed bysystemctl enable myservice
and Bob's your mother's brother. Optionally, start it directly usingsystemctl start myservice
. (On most systems,service myservice start
will work, too.) It doesn't get any easier than that.And, if you start to automate your system's configuration(s) using e.g. Ansible, it's far easier to just place a few files in the filesystem and run a few commands than to modify the
rc.local
in an automated fashion without breaking something.While I don't really like the one-tool-for-everything approach with systemd and its various additional features (timedated, resolvd, etc.), I do like the main feature.
I use slackware btw. Doing work for the computer is half the fun.
But I did learn something here, so thanks for that.
On the one hand, diversity is usually a good thing for its own sake, because it reduces the number of single points of failure in the system.
On the gripping hand, none of Ubuntu's many projects has ever become a long-term, distro-agnostic alternative to whatever it was supposed to replace, suggesting either low quality or insufficient effort.
I'm . . . kind of torn. Not that I'm ever likely to switch from Gentoo to Ubuntu, so I guess it's a moot point.
I'd add irrational hate against Canonical to the list of possible causes.
systemd was in the hands of one single guy with very controversial ideas in the beginning. It wasn't really better than Upstart, yet got adopted by more and more distributions over time.
Unity worked smoothly when Gnome-Shell was sluggish as hell on the same hardware.
And you have fixed versions every half a year with a set of packages that is guaranteed to work together. On top of that, there's an upgrade path to the next version - no reinstall needed.
Ubuntu's slogan is "Linux for human beings" which fits quite well, I believe. Otherwise, it wouldn't get recommended to newbies so often. If you want all the nerdy stuff, there are plenty of other distributions to choose from. 😉
Thing is, even when Ubuntu's software has been packaged outside Ubuntu, it's so far failed to gain traction. Upstart and Unity were available from a Gentoo overlay at one point, but never achieved enough popularity for anyone to try to move them to the main tree. I seem to recall that Unity required a cartload of core system patches that were never upstreamed by Ubuntu to be able to work, which may have been a contributing factor. It's possible that Ubuntu doesn't want its homegrown software ported, which would make its contribution to diversity less than useful.
Canonical's done a few things that make it quite rational to hate them, though. I seem to remember an attempt to shoehorn advertising into Ubuntu, à la Microsoft—it was a while ago and they walked it back quickly, but it didn't make them popular.
(Also, I'm aware of the history of systemd, and Poettering is partly responsible for the hatred still focused on the software in some quarters. I won't speak to his ability as a programmer or the quality of the resulting software, but he is terrible at communication.)
I've been upgrading one of my Gentoo systems continuously since 2008 with no reinstalls required—that's the beauty of a rolling-release distro. And I've never had problems with packages not working together when installing normally from the main repository (shooting myself in the foot in creative ways while rolling my own packages or upgrades doesn't count). Basic consistency of installed software should be a minimum requirement for any distro. I'm always amazed when some mainstream distro seems unable to handle dependencies in a sensible manner.
I have nothing against Ubuntu—just not my cup of tea for my own use—and I don't think it's a bad distro to recommend to newcomers (I certainly wouldn't recommend Gentoo!) Doesn't mean that it's the best, or problem-free, or that its homegrown software is necessarily useful.