
The destructive desktop — Linux in trouble? - larelli
http://blog.ngas.ch/archives/2011/12/13/the_destructive_desktop__mdash_linux_in_trouble/index.html
======
rlpb
"If you don't use NetworkManager, a number of programs will refuse to connect
to the Internet or behave in various weird ways. More so, a lot of system
services now depend on NetworkManager and won't start unless it is running.
And if you run NetworkManager, it starts periodically messing up any local
system configuration. So you're basically bound to use NetworkManager. "

...

"The effect of all those changes are numerous. For one, it is no longer
possible to run the system without a graphical user interface unless you plan
to invest a huge amount of work and to throw out most of your system support.
If you want to get vendor support, this is not the way you will want to go."

Not true. Ubuntu Server does not use a GUI. Nor does it use Network Manager.

------
sagarun
This is factually wrong: _Then you try to figure out how to configure
NetworkManager from the command line. There's no tool in the entire
distribution which lets you do that_

nmcli lets you configure network manager through command line
[http://manpages.ubuntu.com/manpages/maverick/man1/nmcli.1.ht...](http://manpages.ubuntu.com/manpages/maverick/man1/nmcli.1.html)

~~~
tankenmate
Not on any current Ubuntu LTS (we are talking primarily about servers here).

~~~
sciurus
You still don't need to configure NetworkManager to get a network connection.
You can use the old methods (/etc/network/interfaces or
/etc/sysconfig/network-scripts) instead.

~~~
lmm
Those are not the old methods - were they ever portable beyond debian? The old
method is ifconfig. I don't care about linux any more, but on FreeBSD ifconfig
still works, as it has for at least 20 years. If it becomes impossible to use
KDE programs without using networkmanager, that will be a real irritation for
me.

~~~
sciurus
/etc/sysconfig is Red Hat. /etc/network is Debian.

Of course ifconfig (or better yet, the ip) still work.

------
asto
I've never done any systems programming on Linux (or any other OS for that
matter) so I can't comment on most of the article but I HAVE configured a
network on a Fedora box on many occasions and it's simpler than the author's
making it out to be.

On my fedora computer, I can just run system-config-network from the terminal
and have a GUI pop up where I can configure network devices and DNS addresses
with no need for X11 whatsoever. This is enough for a stable internet
connection with no further action from the administrator of the computer such
as _"periodically calling ifconfig and ip route add until you finally managed
to fetch all the data before NetworkManager would mess it up again."_

Of course, if your router issues the configuration via DHCP, then you don't
even need to do this much. You can just boot in on install and access the
internet. I believe RedHat and CentOS work the same way. Contrary to his
perception, configuring a network is not really a big deal on a Linux
computer! :-D

~~~
FooBarWidget
I suspect that the author is used to the old interface, involving manually
writing shell scripts that call ifconfig and friends. And now he's pissed off
because he can't do that anymore and concludes that the system must suck, or
that his "freedom" is in jeopardy because his old way is no longer supported.

Well I see things differently. Users should be free from interference from
ancient and non-user-friendly cruft. Yeah so some /etc scripts don't work
anymore, but the new way allows displaying GUI dialogs which the old way
didn't allow so there are legit reasons supporting the new way.

~~~
dman
You can still do all of that. NetworkManager is far from the only way to get
your box to connect to the internet.

~~~
regularfry
It does have a tendency to intrude if you don't explicitly configure it not
to, or remove it if you're not going to use it. I always forget to tell it not
to configure /etc/resolv.conf, and _always_ get confused when DNS lookup
breaks.

~~~
dman
apt-get purge it!

------
jiggy2011
Network manager is particularly annoying. It doesn't seem to like static IP
addresses at all, sure the GUI will allow you to assign them but it doesn't
actually seem to affect the system at all.

I tried disabling NetworkManager since on my development box I like to have a
number of static IPs assigned to it for testing on the LAN. However I also
want to be able to easily connect to wireless networks and I can't find an
easy way to do that without NM (I tried wickd but had other issues with that).

The upshot of this is that I have to use NM with some bash scripts that run on
login to overwrite some of it's settings.

Don't get me started on sound..

~~~
darklajid
Did you file a bug for that behavior? It sure doesn't seem to behave like that
for me.

While I cannot and won't claim that you're wrong, this is not supposed to be
the case (and isn't in my private and professional experience).

You acknowledge that NM is 'easy' for wifi, but try hard to abandon it for
reasons that are unclear. Except for tracking down the real error/filing bugs:
Why couldn't you just set up a simple rule on the dhcp server (which I assume
you have, at least for your wifi connections) to hand out static leases for
your dev box?

Mentioning 'sound' in the end, in this way and out of context, is borderline
trollish (I might be wrong, but I assume this is a suppressed pulseaudio rant
there).

~~~
jiggy2011
The issue with static IPs & Network Manager is posted all over the internet
(just google "network manager static ip" so I assume they know about it
already. Frankly I don't know enough about how NetworkManager works to dig
into the source code and isolate the issue, since it's been ongoing for a
while and I'm not the only person experiencing it I'm going to assume it would
not be a simple fix.

I could use dhcp rules but then I sometimes have to move my development
machine to other places where of course I will be on a different dhcp server
which I may not have admin access to. The workaround of having a shell script
that sends a bunch of "ifconfig" commands does the job for me whilst still
allowing me to use NM for wifi config but it just seems like something that
should be unnecessary.

I sort of assume that most experience Linux people have experienced some sound
issues at some point. My problem with pulseaudio has always been the slight
latency that seems to happen between sound being sent by the program and
played by the speakers which means that for example when an MP3 file is paused
the sound continues for a fraction of a second. Sure this may not be a huge
issue and I didn't even notice it for a while but as soon as I noticed it, it
really started to grind on me. Not to mention that it makes the system
terrible for doing any kind of audio editing.

The solution for this is to uninstall pulseaudio and go back to ALSA which is
a bit of a pain in itself, but once you've achieved this you get odd problems
like (in ubuntu anyway) the sound control panel applet disappears and you have
to run alsamixer to change the volume, also volume control for some programs
(such as spotify) stops working completely.

There are a number of other various small issues that can make desktop Linux a
pain to use sometimes, this is why I am often surprised that canonical seem to
prioritize redesigning the GUI every few releases over fixing stuff like this.

~~~
darklajid
Duckduckgoing 'network manager static ip' really came up with a variety of
reports. But a good number of explanations how this is supposed to work as
well, in the top.

I'm sure you tried a couple things before you decided that it's just not
working the way you like it, but for me it seems that static IPs, your way,
should be no problem [1,2,3] with the on-board tools.

Sound: Never had that (or any related) issue since I stopped running weird
apps under wine and I light a candle for Lennart every other day for a sound
solution that just works in my world, whatever I throw at it.

1:
[http://wiki.debian.org/NetworkManager#Enabling_Interface_Man...](http://wiki.debian.org/NetworkManager#Enabling_Interface_Management)

2:
[http://manpages.ubuntu.com/manpages/oneiric/man5/NetworkMana...](http://manpages.ubuntu.com/manpages/oneiric/man5/NetworkManager.conf.5.html)

3: <http://wiki.debian.org/NetworkManager#FAQ>

~~~
jiggy2011
Yes, I've been down that route with setting things in network manager config
and had them wiped out when doing Ubuntu updates.

The real problem here is that if you set multiple static IPs in NM GUI it will
lie to you and tell you that it has done it when it hasn't. This is pretty
dire UX.

The audio issues with spotify were from running the native Linux client, oddly
the volume control in the Windows/Wine version works fine with alsa (although
a recent update to spotify seems to have broken wine compatibility almost
entirely).

------
nailer
It's 2012. Who cares?

I think Linux on the desktop hit its peak in the early 2000s, when 'Windows,
Mac and Linux' was in people's minds, we had Linux companies like Loki and
Transgaming etc, commercial games from Epic and ID, proper UX-focused
companies like Eazel and Ximian, etc.

I think most people have given up, but that's OK: Linux on the desktop, back
then, still made a huge difference to today. GNOME had GTKHTML which spawned a
rival KHTML which became Webkit which now seems to be the app platform for the
thing that came _after_ the desktop - the browser.

Now I have more apps open in Chrome right now than I do in the dock, taskbar,
gnome panel. So do many users. And the direction is more in the browser than
ever.

It's not just Linux: worrying about the desktop per se is irrelevant - like
worrying about the dominant groupware platform or the dominant LAN manager.
OS/2 might be better than NT, but nobody cares anymore.

~~~
dman
I would like to differ on this - I just dont get the recent consensus on linux
UI's being broken. What is so bad about gnome / kde / xfce / xmonad ?

~~~
freehunter
In the Linux world more so than anywhere else, you have an odd and "at-odds"
mix of users. There exists the "1993 was a great year for Linux" crowd, and
the "Linux on the desktop" crowd. And somehow, you have major overlap between
the two. While there are distros and packages contributing to both mindsets
(meaning the two can coexist just fine), the biggest problem I see in the
Linux world is the users who outright reject experimentation and change.

Personally I love where Gnome and KDE (and even Unity) are going. I might not
use them daily, I might not find all their features helpful or productive, and
I sure as hell am not using them on my server, but there is nothing preventing
any Linux user from simply not using the new software. It's easy to find a
distro that uses Gnome 2 or KDE 3 or doesn't have PulseAudio. But it's hard to
use modern day software without modern day packages or backends. Without this
rote experimentation that is at the heart of open source, I wouldn't be using
Linux on my desktop. There are a lot of very controversial ideas put forth in
the mainstream distros over the years which have contributed more to the
adoption of Linux than they've taken away from the traditional users.

If someone doesn't like Unity, doesn't like Gnome 3, doesn't like KDE Plasma,
doesn't like bleeding-edge distributions... there is a choice. Debian,
Slackware, Arch, Gentoo, the list goes on. I don't much like the interface of
OSX, but I don't create mailing lists to pooh-pooh it, I simply don't use it.
If you have a point, make it. If you just want to complain, get a cat.

------
marbu
Having network manager on the server just doesn't make sence in most cases.
I'm running CenOS 6 (community rebuild of RHEL 6) on my vps without network
manager and don't see any problems with this setup. I also don't know any
service which would not work without network manager, I'm aware only of the
opposite ones (eg. Red Hat cluster suite won't work with networkmanager).
Moreover I'm quite sure that you can install RHEL, Fedora or Debian in
headless mode.

------
rabbidroid
I have also been annoyed by the way Ubuntu handles the network management, I
was setting up an nfs server at home, a task that should've taken no longer
than 10 minutes, ended up eating up a few hours, not to mention the fact that
I had to reconfigure the network reboot which I blamed on myself but now blame
on networkmanager.

I have been using Solaris 11 at work for the past few months, even-though I
dislike Oracle, I was surprised by the way they implemented their networking,
its a pleasure using it and its the most flexible and configurable networking
in all OS's Ive used before.

I will still use Linux at home for personal use, I still envy Enterprises that
have the financial ability to get these servers running Solaris 11. I know
that It's not open source, and that Oracle is the most evil company, I still
love their product (which was developed by sun, and was open-source till
oracle stuck their nails in-to it) and I hate myself for loving it.

------
hp
This article is not well-informed. I worked on or sat next to people who
worked on a lot of the stuff mentioned. So you can take me as biased or as
having a clue or both as you wish.

A general point, the changes described here have been over the course of
something like 15 years. So the article seems to be making a "stuff keeps
changing!" point... but we are talking about over 15 years. Think about
changes to hardware, the Internet, etc. over that time. And most indicators
are that the Linux desktop has moved much too slowly compared to say Windows,
Mac, Android, and iOS.

Some examples of errors:

"So the Gnome developers wanted to reduce the complexity of their protocol as
well and started working on a protocol which was supposed to join the
advantages of DCOP and CORBA. The result was called the Desktop Bus (dbus)
protocol. Instead of complete remote objects it just offers remote interfaces
with functions that can be called."

This is false on several levels. dbus was mostly a kind of cleanup of DCOP for
general use, with no intent to "join the advantages of CORBA" which were
essentially none. I can make no sense of "instead of objects it offers
interfaces" - it has both objects and interfaces, and pretty much can
implement the same kind of API that DCOP does (I believe KDE even did that).
Basically this paragraph doesn't mean anything I can relate to the actual
technology.

"APIs to abstract the uses of OSS, esound and ALSA: gstreamer for Gnome and
Phonon for KDE"

This is wrong. GStreamer is for making graphs of elements, where elements are
decoders, encoders, effects, filters, etc. and can be both audio and video.
There is one kind of element ("sound sink") that does abstract sound output,
as you would imagine. There are some other elements that use sound APIs too.
But GStreamer is not the same thing as a sound API like ALSA, in any way shape
or form. It's for building multimedia _apps_, sort of a media toolkit.

Moreover, the main reason to replace the older tech here (OSS, esound) was
just that it didn't work very well and didn't support a lot of the things
sound cards do. It's not like keeping that old stuff was an option, since it
could barely play beeps.

"it is no longer possible to run the system without a graphical user
interface"

I'm just not sure what planet that's on. There sure are a lot of headless
Linux servers out there in the world, and it's pretty obvious that the large
Linux distributions care about this intensely.

Re: NetworkManager, if it's somehow needed when headless and not configurable
headless, that would be considered a bug by all involved. Just a matter of
tracking down the details and reporting them if they have not been. All the
Linuxes aspire to (and in my experience do) support headless operation.

"they don't implement the original X11 protocol directly and rely on so-called
window manager hints."

This sentence is total word salad. X11 has had window manager hints for two
decades. What's new is "extended window manager hints" which are some new
hints in the same spirit ... in order to do new things. They don't "wrap"
anything, so "directly" is just gibberish. Kind of like how CSS 2.0 isn't the
same as CSS 1.0, you know? This complaint is equivalent to bitching because
you can't use IE5 on the modern web anymore. The protocols are documented, and
you have to use an implementation that implements something from within the
last 5 years. The extended window manager hints range from 6 years old to 10
years old, so that's how old a crap we're talking about.

An almost exact translation of this claim to the web is: "they don't implement
the original CSS 1.0 directly and rely on so-called CSS 2.0 properties" ...
see how that makes no sense?

"Writing X11 programs with xcb and proper RPC APIs like SUNRPC or Thrift
should be more than good enough."

This 100% misunderstands why dbus is used. The first goal of dbus is not to
send a message from process A to process B; it's to keep track of processes
(help A find B, have them each know when the other goes away). The messaging
is important but in many ways secondary.

Overall, the article doesn't understand the big picture of why all this new
stuff was needed. I think there's one big reason: dynamic change. The old ways
of doing things almost all involve editing a text file and then restarting all
affected applications. But to implement the UIs that people expect (as you'd
find on iOS, Android, Windows, Mac), everything has to be "live"; you change a
setting in the dialog, and the whole system immediately picks up on the
change. You unplug a cable, everything notices right away. etc. The daemons
are because so many pieces of dynamically-updated live state are relevant to
more than one process or application. That's why you have a "swarm of little
daemons" design. And guess what: some other OS's have the same design.

That's (at least one of) the major problems being solved. And the author here
gives no indication he knows it exists, let alone his proposed alternative
approach.

I sort of get the inspiration for the article: Linux has been trying to keep
up with modern UI expectations without having enough staffing for that really,
and certainly regressions have been introduced and there have been bugs and
things that could have been better. On the 6-month distribution release
cycles, users are going to see some of that stuff. It's software, people. And
it's understaffed open source software to boot. So yeah, legitimate
frustration, shit changes, sometimes it breaks. I get it.

But there's no need to wrap that frustration up in pseudo-knowledge as if it
were a technical problem, or say inane things about getting back to the "unix
way"; if someone could show up and make the desktop UI stuff behave well with
the "unix way" they would have done it. Or maybe they did do it, and the
critics understand neither the problem requirements nor the "unix way." Just
saying.

~~~
binarycrusader
Totally agree; other inaccuracies are:

"However, the Linux incarnation of OSS was a particularly simplicistic one
which only supported one sound channel at the same time and only very
rudimentary mixing."

That's incorrect. The sound channel limitation depended on the hardware you
had installed. So did the mixing capabilities. If the hardware supported it,
OSS exposed the additional capabilities.

Those of us with SoundBlaster cards remember very well why we looked using
them on Linux (because, unlike most cards, they supported multiple
applications outputting audio simultaneously).

~~~
wink
Despite all the incorrect or misleading facts (you spotted quite a few more
than I did) I can totally relate to what I think was the author's intention in
writing it:

Magic.

Modern linux distributions are doing many things in a way that is, at best,
surprising and, at worst, undebuggable.

"Any sufficiently advanced technology is indistinguishable from magic" comes
to mind quickly.

Working with Linux in the 90s was surely not as easy as it is today, and
probably for the better. But I also find myself longing for the old days at
times. Examples are lack of NetworkManager (like lack of Bridge support in the
version on my laptop, no clue if it's been fixed upstream, I'm using distro
packages) or certain hald/dbus automagic things. And no, I won't go into
details and that can be held against me, but there frustrations and annoyances
- surely partly to be blamed onto me and partly to the software. Coming from
that, I feel with the author.

Then again I'm also glad I don't have to wade knee-deep into config files
every time I want to change something. :)

~~~
hp
yeah, it's a tradeoff. If the software does more, then the software is more
complex... OK, but, sometimes it's nice that it does more. People are used to
other systems (iOS, Android, Windows, MacOS) and those are setting the bar
pretty high. They are all extremely complex systems that do a lot.

Everyone wants a simple system... as long as it has just this one thing that
they need... and this one other thing...

This author seems to feel there was some way in which the software could do
everything it does _and_ there would be no downsides... you know, here and
there in some detail it's probably true that the tradeoff is wrong. But that's
just saying "all software could be better" or "all software has bugs" or
something - true, but not an actionable insight.

I get the guy's frustration. But you know, there's no need to wrap the emotion
up in non-factual hypotheses about source code that one is not familiar with.

Software sucks. We all know it. Using your imagination to diagnose why isn't
going to get anyone anywhere ;-)

There probably are some improvements possible if we all go look at the source
and get the real info.

------
jakobe
While I don't quite understand the specifics the author describes, I can
relate very well to the general problem: Open Source software often depends on
packages that are common on the Linux Desktop. This quickly gets you into
dependency hell if you try to compile the program/library on a different
platform.

An example I was recently confronted with was libmdb, a library that reads
Microsoft Access databases. For some reason it depends on glib2, which in turn
depends on a few other libraries. In the end I needed to compile 5 different
libraries because libmdb uses hash tables and arrays from glib2.

~~~
FooBarWidget
The alternative would be for libmdb to implement that stuff themselves. That
would increase development time, increase the amount of bugs, increase the
size and decrease developer happiness.

~~~
repsilat
Or they could link statically. They're both under the LGPL, and it seems like
the sensible thing to do if they're only using the library for hash tables...

~~~
darklajid
Didn't downvote you, but .. How?

The project authors certainly don't care about people with 'special'
requirements. For them it just saves time. Now the packagers _could_ do what
you suggest, but especially for such a central library it doesn't make sense.
You want to have only one version of that thing for a gazillion reasons.

The original request for this thread? Well, it seems that person wanted to
port a library to a completely different system _and created the binary for
that system_. Right, he can statically link it. What does he gain? He still
needs to gather all dependencies before and his complaint (as a
developer/distributor) of having to meddle with glib would be the same. He
didn't complain about distributing another couple .so files as far as I
understand the issue.

~~~
randallsquared
_The project authors certainly don't care about people with 'special'
requirements._

The source of all these problems in a nutshell. No one has a reason to polish
the UX for a case that never happens to them.

------
dman
You can disable network manager and use /etc/network/interfaces to manage your
connections directly - this has the nice side effect of having internet
connectivity even before you login. I dont understand the thrust of this
article - most people running servers are running linux without a GUI and are
doing so without any loss of productivity.

------
lambda
This looks like it's taken almost directly from 1990sLinuxUser:
<https://twitter.com/#!/1990slinuxuser>.

------
loftsy
tl;dr - Author tries to patch together his/her own distribution; and fails.

To provide a good user experience you need to know if the network is up or
down; and when it changes. UNIX does not provide this. This is why
NetworkManger is now part of the "Linux Platform".

The biggest myth in open source: "Linux is about choice".

~~~
fsniper
if I could downvote.

Linux is always about choice. If you have enough information and time you can
choose what ever software stack you want with it. You can even change any
configuration software that comes with your distribution with any tool you
want.

Also author does not rant about building a self owned distribution. The rant
can even be considered good if you do think Linux is only about graphical
desktop applications. Linux software can be configured or used without these
but it's getting real hard to disregard their influence over other software.

~~~
Danieru
OP is referring to this: [https://www.redhat.com/archives/rhl-devel-
list/2008-January/...](https://www.redhat.com/archives/rhl-devel-
list/2008-January/msg00861.html)

~~~
loftsy
Yes I was but I couldn't find it. Thanks for the reference :)

~~~
sciurus
<http://www.islinuxaboutchoice.com/>

------
wisty
tl;dr

Linux is getting to be a mess, with all kinds of dependencies.

I guess it really comes down to your distro (since Linux is just the kernel,
it's the distro which adds in all the bits). He's complaining about using RHEL
and Ubuntu on a router. I think those are meant to be run on big servers. I'd
guess Slackware and Gentoo are better bets for running a small server. There
are also distros _designed_ to be used on routers, if that's what you're
after.

Big distros are big. They sometimes have a few bits which are over-engineered,
because over-engineering makes sense to the people who join GUIs together.

~~~
nodata
Fedora is constantly working to reduce dependencies. They seem to be doing
quite a good job.

~~~
JonAtkinson
Can you provide any links or sources which support this? I'm genuinely
interested in how the Fedora people are tackling such a problem.

------
darklajid
I really would like to understand/get feedback (if the author is reading here
as well or someone agrees with the rant)

\- what 'services' on a server really depend on NetworkManager

I cannot imagine that a server would actually need it (although, on my
_desktop_ I most certainly want it and love it).

From my vps (granted, not LTS. But did they actually _remove_ a dependency
here? I highly doubt that):

    
    
      darklajid@neuland:~$ apt-cache policy network-manager
      network-manager:
        Installed: (none)
        Candidate: 0.9.1.90-0ubuntu5.1
        Version table:
           0.9.1.90-0ubuntu5.1 0
              500 http://de.archive.ubuntu.com/ubuntu/ oneiric-updates/main amd64 Packages
           0.9.1.90-0ubuntu3 0
              500 http://de.archive.ubuntu.com/ubuntu/ oneiric/main amd64 Packages
    
      darklajid@neuland:~$ cat /etc/lsb-release
      DISTRIB_ID=Ubuntu
      DISTRIB_RELEASE=11.10
      DISTRIB_CODENAME=oneiric
      DISTRIB_DESCRIPTION="Ubuntu 11.10"
    

In fact, the Debian package description (couldn't find something for Ubuntu or
RH, but the former is probably using the very same thing) says this:
"NetworkManager attempts to keep an active network connection available at all
times. It is intended only for the desktop use-case, and is not intended for
usage on servers." [1]

\- why you'd have a hard time configuring it

If you install it anyway it comes with some tools [2] called nm-tool and
nmcli. The latter [3] is, while the man page admits that it isn't meant to
replace the applet, described as "The main nmcli's usage is on servers,
headless machines or just for power users who prefer the command line."

At this point we have the following: The author of this blog posts writes up
some evolutionary history of the linux desktop technologies (arguably
unrelated? Is he really missing Corba or Orbit?) and then ends with a giant
rant about network-manager (which I should've proved as being unnecessary and
which, contrary to what he says, _comes_ with a tool to configure it) while
punching dbus every now and then.

The title is link-bait and - well - weird. The article has no real point. I'm
confident it took me a lot more time to write this comment and provide the
relevant links than the whole 'problem' of setting up a network connection on
a more or less recent Linux system can possible take.

If it takes so long - don't blame the tools.

1: <http://packages.debian.org/squeeze/network-manager>

2: [http://packages.debian.org/squeeze/amd64/network-
manager/fil...](http://packages.debian.org/squeeze/amd64/network-
manager/filelist)

3:
[http://manpages.ubuntu.com/manpages/oneiric/man1/nmcli.1.htm...](http://manpages.ubuntu.com/manpages/oneiric/man1/nmcli.1.html)

~~~
jay-pinkman
honestly i didn't get the NetworkManager thing either. since my Arch Linux
days i remember that it's manageable from cli. although i never used that cli.

but the thing that touched me is that there are standards like POSIX for the
cli world and there are standards like DBus for the gui world and lack of any
sane standards for both of them. POSIX-based software and DBus-based software
took quite different paths in their evolution. so different that they look now
like creatures from two different universes. it's always nice to see how devs
from GNOME and KDE develop standards that help interoperability. i wish
someone would look into interoperability between the gui world and the cli
world too. i originally moved to Arch from Ubuntu because the latter looked
quite noisy to me - too many desktop components that i never used, to many
system resources waisted on activities that i consider useless or harmful.
i've created a very minimalistic environment built around some cli tools and a
few very simple gui components that didn't depend on a whole desktop. and it
worked quite well until it started to fall apart - every program that didn't
belong to the cli world tended to either crash or work with some limitations.
mostly because of the problems with DBus. most of these problems were caused
by differences between the actual DBus interfaces provided and what those
programs were expecting to see. and of course there were some missing
components that depended on a ton of other components from either GNOME or
KDE. so now i'm back to square one - i'm back on Ubuntu and i feel like an
alien. most things indeed work out of the box but it's not a linux that i
understand, can easily learn, fix and customize myself.

~~~
darklajid
Wait a moment. DBus is not a 'gui thing'. It is a protocol for inter-process
communication. I'm not in bed with it in any way, but it seems to do a good
job. You can use it from ~every~ language of your choice. Its adoption cannot
(just?) be blamed on politics, it's just dead easy to use for a programmer.

Lately (and that seems to be something the author of the blog post resents) it
pushed further into the system layer, for example with dbus activated services
(systemd, but I'm pretty sure upstart had that as well). For as long as I can
remember your distribution always started a system-level dbus instance and
(only here we're talking gui/desktop environment heavy) one per
session/login/user.

If you have problems with dependencies between a couple of programs that talk
different protocol levels:

\- Someone messed up packaging. Or you installed something in a ~weird~ way

\- The same could easily happen with any other 'let's make these processes
from totally unrelated projects and running using different underlying
technology communicate' solution. Dbus cannot protect you from changing
interfaces.

\- .. except, maybe it _wouldn't_ easily happen, because without an easy way
to do what dbus offers I guess you'd have fewer software and less integration
points. Which you might label a Good Thing and I'd disagree.

Ubuntu still is easily manageable from the command line. It might be different
from your LFS/Gentoo/Arch etc. solutions, but it's closer than FreeBSD and
others. I've no love for Ubuntu, but claiming that you cannot easily (okay -
define that) learn its ways and how to fix or customize it yourself? I think
you should reconsider that part..

~~~
bergie
Yep, we've used DBus also on the server end:
[http://bergie.iki.fi/blog/interprocess_communications_in_mid...](http://bergie.iki.fi/blog/interprocess_communications_in_midgard-
d-bus_comes_to_the_web/)

------
wazoox
The main conclusion of this article: Network Manager is utterly broken. I
concur. It's quite good for laptops and basic desktop, and absolutely unusable
for any development desktop or server.

The main and gravest sin of Network Manager is that is absolutely ignores
what's in /etc/network/interfaces (or similar configuration files for other
distros AFAIK), and makes most usual stuff (bonding, bridging, vpns, etc) nigh
to impossible. It may be relatively easy to fix, dunno.

Fortunately from my experience, you can simply remove it altogether without
any problem, at least under "reasonable" distros such as debian.

------
HerrMonnezza
I agree with the general trend that the author points out, _but_ he speaks as
if this was happening to all Linux distributions alike (he almost always uses
the word "Linux" with no qualifications). This is not the case: distributions
that have a strong command-line and server-oriented community (think of Debian
and Arch Linux) still do support "no DBus" operation.

------
bazzargh
He blames /dev/initctl not working on systemd - but wasn't that a change in
sysvinit? They moved it to /run/initctl because /dev/initctl wasn't portable.
Quite recently, too.

<http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=638019>

------
xxiao
i must say something for this topic. i fully agree with the author, that linux
is becoming a mess these days when you need customize it, e.g for embedded
systems or headless servers. and the first thing I _always_ do is to remove
network-manager, that's an ass-hole app!

------
SaltwaterC
tl;dr Lennart is an ass.

