Linux

NetworkManager, the Fifth Horseman of the Apocalinux

In pursuit of MS Windows parity, many in the Linux community are undermining what makes it better than its biggest competitor

I love a wildly overstated article title. Don't you?

The technical genius of Linux

The Linux kernel was essentially created on a mailing list. In the early 1990s, Finnish programmer Linus Torvalds announced his toy OS kernel to the world. People thought it was great fun, and started hacking on it. By the mid-1990s, it was something of an Internet phenomenon, with complete operating systems built around it. The three oldest-living Linux distributions are Slackware, Debian, and SuSE, in that order. Others have come and gone, and the number of available distributions has increased at a surprising rate -- an alarming rate, to some. See the GNU/Linux distro timeline for details.

This proliferation is part of the genius of the Linux development model. The Linux community, on the whole, does not fear the fork (even if specific individuals often do) and it has reaped great rewards as a result. Being the second major operating system family (after the BSD Unix line) to use open source licenses for the whole system also factors into the somewhat accidental brilliance of Linux development.

Its design closely mirrors the Unix philosophy. There are areas where it diverges, of course, such as anything the GNU project touches, but at its core the Linux way of putting together an operating system still substantially serves to bring that philosophy into the lives of many people who might never have encountered it otherwise.

Studies have shown that, relative to major commercial software systems (let's not name any names), the quality of code in the Linux project is remarkably high as well. It tends toward a bug rate about an order of magnitude lower than in those comparable closed source systems.

The Worrisome Trend

I do not believe Ubuntu is at fault for this trend. I saw it picking up speed for a while before most of us had even heard the name Ubuntu uttered, and I have no doubt that its roots go back to the late '90s at least. Some might argue it goes back to the development of the X Window System, years before Linus started work on his kernel, but that seems a bit extreme.

Ubuntu really looks like the turning point, though. It went from a relative nobody, also-ran Debian derivative to the single most popular Linux distribution (in terms of public awareness, at least) in the world apparently overnight. A recent announcement by Lady Gaga to the effect that she loves Ubuntu has only served to accelerate a runaway train to popularity that left the station several years before that.

The trend is simply this: Abandon the Unix philosophy. Tie everything together in large blobs of interconnected guts and exploding kidneys (to misquote Nat Torkington's commentary on Perl internals -- a subject for another day). Make it as much like MS Windows as possible, in the hopes it will lure a few MS Windows users to the OS, even if it means throwing out some of the characteristics of Linux-based systems that make them worth using instead of MS Windows.

The Four Horsemen

Watching the progression of the Ubuntu project as an idle armchair spectator while using FreeBSD for pretty much everything over the last few years, I have seen plenty of signs of the odious direction Canonical leads the Linux community. Things like universal sudo access as an su replacement, intertangled and thoroughly unnecessary dependencies in the software management system, and such monomaniacal focus on a single desktop environment (GNOME, now ironically replaced by Unity on Ubuntu's "friends list") that it actively hinders attempts to customize a lean-running system all bother me.

Unfortunately for me, recent events have pushed me back into the Linux world more fully than I have been since I made the switch to FreeBSD as my OS of choice about half a dozen years ago. I chose Debian as my distribution, which had been my favorite distribution before 2005, and installed it on a new ThinkPad. This is where the troubles began.

The design of Linux-based distributions has become so dependent on the assumption that if you want a GUI you will have GNOME -- and maybe KDE as well -- installed that all the new tools designed to make the system easy to set up are now tied to those desktop environments. The tools we used to use to configure things from the command line on the way to having a GUI system running, when we did not want to use GNOME and KDE tools, have been neglected, deprecated, or just destroyed along the way. After a while of fighting with the software to try to get things to work simply, cleanly, and with minimal software installed, I finally gave up and started installing legions of garbage (for my purposes) software from the GNOME desktop environment.

It turns out that dependencies in Debian have started following the Ubuntu model; it is now impossible for me to uninstall a lot of software I will never use without breaking the whole system. If I use APT to remove Evolution, it uninstalls the core of GNOME. If the core of GNOME goes away, the reason I installed it goes away too -- namely, the bloated GUI replacements for the simple, easy software I used to be able to use from the command line or via scripts to get things done quickly.

Let's revisit this:

I have to keep Evolution installed, despite the fact I do not use it, in order to keep GNOME installed, despite the fact I loathe it and run a tiling window manager called i3 on this laptop instead.

It seems to me that the Four Horsemen of the Apocalinux are:

  1. The GNU Project: the poster boy for "embrace, extend, extinguish" in the open source world.
  2. Sudo Everywhere: the poster boy for security configuration that imitates Microsoft and Apple security philosophies.
  3. Ubuntu Package Management: the poster boy for tightly interconnected dependencies for software across the system.
  4. GNOME For Everything: the poster boy for the assumption that everybody wants the most bloated, featureful GUI all the time.

The Fifth Horseman

A Fifth Horseman has reared its equine head, and its name is NetworkManager. This piece of software is The Standard Way To Configure Networks these days. Don't worry; it will probably be replaced in a couple years, by something even worse.

NetworkManager is the poster boy for a broader and deeper problem, as are the rest of those Horsemen. The real problem is that overly complex, do-it-for-me tools are created, integrated with the system, and required by lots of software designed for Linux-based systems (and their cousins). These things make earlier, cleaner, more stable tools "obsolete", so those tools get abandoned in favor of the new, which then proceeds to prove its design flaws in practical use, including examples like Linux HAL and ALSA. Eventually, the fundamental brokenness of these systems -- only once everybody has bought into the hype surrounding them -- becomes obvious, and someone decides to replace it, creating a churn of incompatible changes in the assumption of how the underlying system works every few years.

There are alternatives to NetworkManager that you can use, of course. The most common, and a both simpler and cleaner choice, is called Wicd.

On this Debian system, I tried using none of the above, and just using the ifconfig and iwconfig tools, the /etc/init.d/networking service, and the /etc/network/interfaces configuration file like I did in the good ol' days. I could write a simple script that automated network management, with these tools doing the heavy lifting behind the scenes, so that executing a single command could tell my laptop how to connect to what. Simple and easy.

Unfortunately, there are things that this Debian install simply would not allow me to do this way. Some of the tools I used to use to augment those already mentioned, such as wpa_supplicant and dhclient, were mangled or missing.

After fighting with that for a while, I tried Wicd, just to use something simpler than NetworkManager, and to avoid having the NetworkManager service with its beastly control interfaces in my way when trying to change network connections. Unfortunately, Wicd failed to work with any available DHCP clients (see: mangled dhclient above).

Ultimately, I gave in and tried using NetworkManager. Well, it worked -- sorta. I could connect to my WPA encrypted network at home, no problem. Getting it to connect to open wireless networks with no encryption anywhere else, however, was another story. I fought with it, and fought with it, and finally came to the conclusion that the only way to get it to do what I needed was to manually kill NetworkManager and everything associated with it, then start it all up in "the right order", manually specifying all the configuration options at that time to ensure that it did not try to do something for me in its endless quest to second guess what I'm trying to accomplish. I had a real bear of a time trying to get everything specified properly until I discovered a command line interface for NetworkManager in the APT archives called cnetworkmanager.

At that point, to ease network configuration management, I wrote a script to automate everything I needed to do when switching network configurations so I would not have to spend five minutes screwing around entering commands in "the right order", since there was no reasonable way to just write up a configuration and have NetworkManager actually use it properly rather than decide I must want something other than what I told it to do in this case -- following the MS Windows philosophy of nondeterministically applying heuristic[1] decision making processes to solve the problem of how to almost do what the user wants, but not quite.

In summary, the Linux community appears to have decided to fix the problem of having to write a simple script to manage my network configuration by reorganizing the OS around the assumption that if I install the X Window System, I must want to have a gigantic nanny application making decisions for me, even if they're wrong, which only becomes usable by way of installing yet more software to give me an interface that can be scripted, because in the end I have to write a script to manage my network configuration.

The Good Ol' Days

Jack Wallen offered his somewhat whimsical take on what Linux-based systems have lost over the years, in 10 things I miss about old school Linux. His list of things to miss is significantly different from mine.

I suppose I can sum up what I miss in one sentence: I miss when my Linux-based systems worked without blood sacrifices. Sure, it's still better than MS Windows -- even marginally better than MacOS X -- but I'm getting pretty antsy to get back to FreeBSD. Maybe I should send some money to the guy working on the graphics driver I need.


  1. heuristic (adjective): based on wild guesswork, and prone to error

About

Chad Perrin is an IT consultant, developer, and freelance professional writer. He holds both Microsoft and CompTIA certifications and is a graduate of two IT industry trade schools.

57 comments
victoria2403
victoria2403

Your post made me look at the subject from a completely different angle. vet in Dallas dermatologists in Raleigh antiques Long Beach builders Tucson personal trainer in Phoenix

jfreedle2
jfreedle2

And this proves why Microsoft Windows is better.

Tidux
Tidux

Starting with a "normal" install and ripping out dependencies ALWAYS leads to headaches. I start from Debian netinstall media, and install what I want. Right now, I've got a Window Maker setup I really like. I have a dockapp that monitors wifi signal strength (and really, that's the only network info you *really* need superglued to your desktop), and do the actual management with wicd-curses in a terminal or wicd-gtk launched from the menu. As to your dhclient woes, I'm stumped. I've been using Debian Testing since it was Lenny, and have never run into that problem with or without NetworkManager installed. I do wish iwconfig supported WPA(2) networks - that's the only missing from being able to run your networking with basic shell commands.

oldbaritone
oldbaritone

of legend are traditionally practitioners of the "Black Arts", and common folk should always give careful consideration before engaging one. Frequently, their services will result in unwanted and sometimes horrendous consequences to the novitiate, up to and including the loss of their very soul. buwahahahahahahaha! Sound familiar? ;-)

r_widell
r_widell

I'm late to this party and I agree with Chad's overall premise, but I'm not convinced that Ubuntu is necessarily the guilty party here. I decided to reacquaint myself with Linux a few years back (initial limited experimentation in 1994 & 1995) by installing Debian 3 (Sarge). I quickly learned that I couldn't get the Kmail app or any PIM application without also installing a full bluetooth stack. Similarly, I bought a new HP printer for my mother's Mandriva 2008.1(Spring) computer a few years back. Since the printer was too new to be supported by a binary package from Mandriva, I had to install HPLIP from source. I couldn't believe my eyes when a dialogue appeared asking which MTA I wanted to install. That's right. One of the libraries or other build dependencies for HPLIP had a full MTA (Postfix/Exim4/sendmail) as a sub-dependency! Shame on me- I never started fresh and loaded each package individually to determine exactly where the bogus dependency came from and report it as a bug. Nevertheless, some lazy package maintainer had simply queried all packages installed on a system and made them all dependencies for that package.

crcgraphix
crcgraphix

I don't use Ubuntu, especially since it has gone so far away from the Debian Core and X Windows files registry/depository. I wish that soon they will come out with some more stable & non-stable revisions of the old gnu-src-shells for the sake of raw GNOME and GIMP production. This type of dev was a phenominal way for people to connect to OpenSUSE, YellowShell, CentOS, and Redhat Beta, all in a snap. Yeah , I know that some of these combinations are dangerous and they lead to tons of un-identified and potential worm-threats. But at the same time a lot of these things are still do-able anyways and it is up to us to release a better candidate for full-blown use. The Unity version is cool and all, like a large scalable resource-fork to Ubuntu, just as Fedora has done, but it is still very limited as far as foundation elements and core frameworks go. Hopefully, the Sabiyan Community will open the red doors once again for us white and red hats out there.

Dr_Zinj
Dr_Zinj

Responsiveness to environmental changes. The entire Linux concept is about instant adaptability. Mac and Windows users are basically stuck with whatever Apple or Microsoft offer, whenever they get around to offering it, however they choose to implement it. However, like Chad says, there are forces within the Linux world who would like to drive several distributions into the same Mac/Windows mode. That's not necessarily a bad thing. It provides a good transition from Mac/Windows environment to a different, but somewhat familiar environment of Linux. But that's what it should be, a transitional environment, not the mainstream one.

pgit
pgit

When you tried wicd are you sure everything to do with networkmanager was not running? I've gone so far as to uninstall networkmanager in order to get wicd running on not a few systems. I agree with your positions put forth in the article. I've watched a few of my favorite little tools gather dust and finally fall off the table. Ubuntu's direction is an abomination. I saw in another thread somewhere the opinion that ubuntu is trying to gain the favor of hardware manufacturers by quietly phasing out compatibility with older hardware. The unity/compositing thing is good evidence of that mindset. It's not too hard to remove the gunk after your typical Linux install, I would suggest looking at Mandriva after a good weeding. With a minimal X install you can run the draktools, which is very much 'old school' in look-n-feel. I haven't found anything broken on the cli either, eg wpa_supplicant. Works as always.

frank.domnick
frank.domnick

My understanding of the old GUI vs. non-GUI discussion is simply this: There are people who just want to drive a car (GUI) and there are others who want to understand how a car is working and possibly apply some changes according to their taste (non-GUI). From time to time there are drivers who get curious about the "how-to" and mechanics who just want to drive. So, let's have as much shades of gray as possible between black and white to make them all happy ;-)

Jaqui
Jaqui

[ well not really ;) ] Mandriva has network profiles you can use. set up your default connection [ home for example ] then copy the profile in the jquery ui perl script control center, and activate the copy, make the settings changes for connection to a public access system, no connection encryption used. at BOOT time it tosses a network profile choice option up, default if at home, so no need to touch anything. select the other profile [ if more than 2, the one for where you are ] when applicable at boot and up and running, no changing anything needed.

seanferd
seanferd

are the ones which bother me as well. The dependency hell is very easy to detect when starting with a minimal install, then adding applications. In order to install and run x, I need mostly unrelated crap y, z, a, b, c. A couple of libraries? I get that, but they should be modular, and follow the UNIX Philosophy. For some tools which should be simple and small, it can be easier to just install apps ported over from BSD. But that only covers so much. Ubuntu, specifically - blech. For something like that, I'd rather use a derivative form like Mint, still with the stupid sudo and no easily configurable root account and access. (In which case the Mint rolling Debian distro might be better.) And since I do like a GUI, but don't care much for full-blown Gnome/KDE, it's annoying to have to install them anyway to have some functionality or apps otherwise lacking. And it still burns my ass to not be able to install the latest XFCE on *BSD because of the sad nature of the GNU's Linux-centric/only thinking.

Neon Samurai
Neon Samurai

yeah.. I can relate to your grief. I thought networkmanager was using the regular cli stuff in the background and that the cli stuff was actually being maintained. Not sure I've tried to attach to an unprotected wireless though. Regular users are not going to script. I love that scripting is an option but there needs to also be GUI "average user" options. Neither should replace the other though; either way should be usable even when both are installed and Network Manager type things really should be GUI front ends using the same back end software as the cli and scripting methods. I'm also sticking with KDE4 which seems to have less arbitrary dependency links. aptitude install networkmanager-kde and off I go with the few grievences mentioned previously. I guess if you require Evolution, gnome means installing less rather than doing KDE plus Evolution plus what it drags in from GNOME. For me, Evolution remains a no-go until mapi for modern Exchange servers is supported. Until then it's the browser interface or a Windows vm for Outlook. I like that Canonical is working closer with Debian now. I just really hope Debian resists the poor dependency choices Canonical likes to make along with many other Canonical config choices. I came from Mandriva to Debian because of it's more granular dependencies and more sane config file layout. Debian dev's, please don't push me towards Arch.

Neon Samurai
Neon Samurai

no really.. I do.. Before the networkmanager-kde and networkmanager-gnome packages one had to deal with wpasupplicant by hand or use one of various flaky GUI interfaces. Network manager has been a lot less hit-and-miss than anything I've used in the past. Wired is a "whatever". It just works thanks to hardware standards, dhcp and easily manipulated values. Want a different ip? "ipconfig eth0 192.168.0.2" and now your IP is .2 so wired we can ignore for now. Wireless though. One has to scan for wireless networks, authenticate using wpasupplicant and finally toss out a dhcp request or set static IP values. If I'm not going to startx then I'm doing this by hand or with scripts that store credentials in clear text on the drive. This means connecting to a static SSID isn't so bad the second time outside of the clear text issue but connecting to new SSIDs always sucks; can I find it in the network scan, what encryption do I need, why won't wpasupplicant work this time, have I edited/created all the relevant config files and scripts? ... SSSSucks.. At least networkmanager gives this somewhat of a standard process across systems and wireless networks. It manages the wpa encryption, scans for wireless networks, manages dhcp issued or static IP, manages per connection prefered DNS servers. Now, it's not perfect either. - it has issue when a wireless networks disapear and reapear; reconnecting can be a pain leading to networkmanager crashing itself (a router reboot or wireless radio reset is enough to cause it) - manually adding new wireless networks can be a pig of a task and more than once when scanning for the new wireless network and saving it's profile, I find out that Network Manager simply over-wrote an existing unrelated profile instead of adding a new one. - it does not provide a way to specify binding order. Sadly, Windows does a better job of this; I can simply open advanced settings and say "if you have a wired connection, use that instead of wireless".. with network manager, I have to disable wireless and force the system to use wired or I have to live with wired (Gbit) running at the speed of wireless (54MB'ish) and neither option is acceptable. Binding order is not complicated enough to justify this kind of grief from Network Manger or the kernel NIC management. I'd personally like to see more improvement in Network Manager unless someone can deliver a management utility which actually improves on it's functionality and stability. (now, gotta go back and give the article more than a quick skim over..)

CharlieSpencer
CharlieSpencer

If I fall in the mud, it doesn't prove you're a better runner; just that I need longer cleats. It also doesn't take into account the other runners in the field.

apotheon
apotheon

The core message of this article is "Linux-based systems are getting worse and worse because they're getting more and more like MS Windows."

Neon Samurai
Neon Samurai

If you use wpa_supplicant, it should connect your wpa/wpa2 layer without the need to touch iwconfig. connect with wpa_supplicant, fetch an IP with dhclient and you should be golden. (My scripts are posted above if of help though you'll need to do your own basic wpa_supplicant config files; should be about five or six lines)

apotheon
apotheon

> Starting with a "normal" install and ripping out dependencies ALWAYS leads to headaches. I start from Debian netinstall media, and install what I want. That's how I used to handle Debian installs. In this case, however, that approach was no longer very effective for new hardware. It took more than a day of tinkering for me to give up on trying to get things working; I reinstalled and had it drop four metric tons of crap on the hard drive just so I could get to work on other things. Luckily, FreeBSD still works well with the "build from minimal" approach, even if Debian does not (at least in this case). As soon as I have the driver support necessary to do so, I'll wipe Debian and install FreeBSD on this machine.

seanferd
seanferd

"Do not meddle in the affairs of wizards, for they are subtle and quick to anger" Also, they are frequently loons.

Neon Samurai
Neon Samurai

This article actually made me look closely at GNOME. The GNOME-Evolution co-dependency issue is purely due to using the GNOME desktop. Another DE wouldn't have forced Evolution. I'm still shocked that gnome-core claims to be the bare minimum needed get a gnome gui up yet lists Evolution as a dependency. By comparison, kdebase gives one the minimum needed to get a kde desktop up without imposing any PIM dependencies. On the up side, I've gone back to ifconfig/iwconfig/wpa_supplicant management of my network and it works swimmingly. Far more robust than network-manager which had a fit any time a wireless connection dropped; reboot the router - network manager crashes trying to reconnect, try to add a new connection profile - risk overwriting an existing one. And vpn may even remain connected without it; surely more stable than it was with it. Bah.. screw that flaky piece of garbage. I'll consider it again when more mature but not likely for regular personal use - why add software to do what I can already do perfectly well. That kinda blows two of the issues in the case out of the water however, the overall issue of software drifting away from the superior cli+gui possible combinations to favor bloaty and unstable gui only utilities let alone neglected or one-off changed cli programs when not outright replaced by GUI code. In your case.. what the heck is a printer driver requiring a mail transport for? I could see recommending it as a way to send system messages to users directly but it should work just fine posting to syslog or messages without an MTA.

apotheon
apotheon

I almost missed this: > Well, interesting, but ... > I don't use Ubuntu, especially since it has gone so far away from the Debian Core In case you didn't notice, I was using Debian in the case described in the article -- not Ubuntu.

Neon Samurai
Neon Samurai

Mandriva Free DVD, minimum install to get past the first boot, urpmi in only what you need and you shouldn't have any gunk to remove. Mandriva Free installs was where I cut my buildscripting teeth after Red Hat ftp installs taught me the minimal first boot step. (and boy did it suck when an ftp install lost connection and left one starting from scratch again)

apotheon
apotheon

> When you tried wicd are you sure everything to do with networkmanager was not running? I've gone so far as to uninstall networkmanager in order to get wicd running on not a few systems. I uninstalled it, too. Wicd just didn't want to work. I found several references to how to get around broken DHCP interoperation with Wicd online, and none of the proposed solutions worked out for me. I eventually gave up on it when I discovered the cnetworkmanager tool in APT. That provided me with a relatively quick solution, by giving me a command line interface I could script. I say "relatively quick" because it was still slower than scripting the networking configuration tools that used to work properly with Debian -- but it actually worked for me (in an ugly, kludgey, overkill kinda way). > I saw in another thread somewhere the opinion that ubuntu is trying to gain the favor of hardware manufacturers by quietly phasing out compatibility with older hardware. The unity/compositing thing is good evidence of that mindset. That would explain a lot -- but I'm not ready to buy into that without some evidence, yet. > It's not too hard to remove the gunk after your typical Linux install, I would suggest looking at Mandriva after a good weeding. Much of the problem revolves around the fact that these systems seem to be bent on forcing everyone into an "all or nothing" approach. If you want some simple GUI tools, you're likely to need all of GNOME, even if you're using some minimal window manager like i3 and ignoring GNOME, for instance. I was unable to get graphics working properly on this thing in under a day without installing the basic "desktop" setup, which comes with GNOME. Once that got on the system, I was unable to get networking to work without keeping NetworkManager on the system. NetworkManager wouldn't work without GNOME. Trying to uninstall Evolution made APT try to uninstall GNOME as well. Ultimately, what it boils down to is that all these intertangled dependencies and the brokenness of GUI tools when doing anything nonstandard ensures that, even if there's a way to get exactly what I want working, it has gone from a matter of maybe twenty minutes' work to get it all set up half a dozen years ago to taking more than a day now -- more than a day, because that's how long I fought with it before giving up and doing things the "all things to all people" GUI-centric way that requires installing almost everything under the sun. Now that it's there, I can't rip it back out without breaking everything. I bet you dollars to donuts that Mandriva doesn't clean up much more easily, though maybe some of the basic functionality I miss works better. My previous experience with Mandriva (admittedly a few years ago) actually showed it had worse issues in this area than Debian at the time. If Mandriva has remained static on this kind of thing, I suppose it might now be better than Debian (which has gone downhill far enough to be notably worse about this kind of thing than Mandriva was back then), but I'm skeptical. . . . and, frankly, even what Mandriva was back then was not good enough for my purposes. I'm going back to FreeBSD as soon as I can with this laptop, and if I need a Linux-based system again I'm probably going to try Arch, which I hear is great for people who like a system with Tools That Work™.

seanferd
seanferd

This is not a CLI v GUI post, its about stuff not working, or not working without unreasonable installation requirements. "Choice" doesn't mean rendering the CLI unusable, and you need it to allow your usage spectrum (perfectly appropriate idea) to exist. Anyone is free to have their GUI, but Unix apps should remain CLI-accessible, and CLI apps should not die off or become otherwise unusable.

Neon Samurai
Neon Samurai

That's the common comparison but command line can often be "just drive a car" also when the task is not really in need of a graphic layer. Some people want to just get in the car and find stearing, pedals, lights, a radio and temperature control (cli) and some people want every bell and wistle under the sun (gui). My example from last night. I can boot my computer and tell it to connect to my home network with a clean simple command or I can start up the GUI and use a conveluted graphic utility to connect to the network with bugs resulting from it's unnecessary added complexity. I can have my network connection made without a graphic layer running or I can make having Gnome/KDE or whatever running a requirnment for getting a network connection. I can check for newer software updates and have them downloaded and installed for all software on my system with a single cli command or I can start a graphic desktop, start a graphic package manager then click a few more times for what results in a far more conveluted process than the single command cli method. It's really not as simple as cli = gearheads, gui = average drivers as some tasks are far less complex to acomplish by command line than by GUI where other tasks are indeed more efficient by GUI than cli.

Neon Samurai
Neon Samurai

and silly RPM hacks in urpmi breaking package management.. booo.

apotheon
apotheon

I wanted to uninstall Evolution. The problem was that uninstalling Evolution would have uninstalled GNOME, which was part of the pile of grabage I had to install to get this thing running in under 24 hours in the first place. > I like that Canonical is working closer with Debian now. I just really hope Debian resists the poor dependency choices Canonical likes to make along with many other Canonical config choices. As the situation with Evolution should illustrate, Debian has not resisted those choices. > Debian dev's, please don't push me towards Arch. Too late for me. Next time I need to use Linux, I'm almost certainly giving Arch a try.

apotheon
apotheon

Dicking around with NetworkManager reminds me of the days I did a lot of contract work for small businesses using MS Windows desktops. Specifically, using software like NetworkManager tends to require rethinking how I use the computer, forcing me to maintain a more ephemeral relationship with my applications and general working environment, because at any time it may turn out to be easier to just reboot the damned machine than try to fix a networking hiccup. I remember many occasions where for some reason MS Windows would just "lose" the network -- wireless or otherwise -- and after screwing around with it I'd discover it would have been much easier to just reboot the machine. Changes in network configuration would, of course, cause MS Windows to "lose" the network, but so would the alignment of the stars, as far as I could tell. NetworkManager does much the same stuff. The thing is . . . while NetworkManager makes things really smooth and easy and automagical when it works correctly it does so at the expense of making things nearly impossible to fix when it doesn't work correctly. Meanwhile, writing a couple of wrapper scripts for ifconfig, /etc/network/interfaces, and wpa_supplicant may require a bit more work to get started, but once you figure out how to make stuff work that way it always works. Even if you encounter an edge-case where things break, it's pretty trivial to fix, and it works deterministically. It doesn't wipe out your configurations, throw away a working network connection just because there were a few seconds of dead air, or pick networks seemingly at random so you end up connected to the wrong damned network. All of those behaviors, as you've pointed out, belong to NetworkManager; it works in a way that seems decidedly non-deterministic, much like MS Windows configuration. I'd rather wrestle with configuration files than fight with a tool like NetworkManager that, when it fails to do what I want, offers no recourse for addressing the problem. Ultimately, rather than throwing away all the deterministic operation of the underlying mechanisms already in place and replacing it, the correct approach to giving users a "friendly" interface would be to write software that serves as a "friendly" interface to those underlying mechanisms. In short, layer a GUI over the modular operation of what's already there, in the spirit of the Unix philosophy; don't throw away what's already there in favor of a tightly coupled, closely integrated, monolithic Thing that tries to make your decisions for you and refuses to let you get under the hood, in the spirit of the Microsoft Windows philosophy.

Neon Samurai
Neon Samurai

I just need to scan through them and rip out anything specific to my networks.

apotheon
apotheon

I'm more of a sourcerer, though. . . .

crcgraphix
crcgraphix

but, the Free version of the Mandriva or should I say Red Mandriva now... is basically like a trial with very many limitations. like your thinking .> however, much is to be said about the bad ftps . . . I guess we're going to have to go back to the scratch-board and re-build a fully Self-Supporting-OSP for the sake of running ISO Linx and the few others. . . SPARC (anyone(...? ) )

apotheon
apotheon

> Anyone is free to have their GUI, but Unix apps should remain CLI-accessible, and CLI apps should not die off or become otherwise unusable. . . . especially when the GUI app is broken.

gcomputeronet
gcomputeronet

If I've been somewhere before and connected, my computer connects to that network automatically. And if I have trouble I can use cli or gui as necessary. but then I'm not using Linux and its many splintered, yet oddly tied software packages.

Jaqui
Jaqui

whole seperate issue though. :D the multiple profiles for network connection issue has so far best been addressed by Mandriva. doesn't mean there aren't other options, just Mandriva has made it the easiest to work with. and they do have a cli version of all their control center tools included, the jquery ui is for when in a gui.

seanferd
seanferd

has Immanentized the EschatOS?

Neon Samurai
Neon Samurai

KDE should have been an option since preference was less important than time unless you had another app that had to run under gnome. Thankfully, the KDE dependencies appear to be less arbitrary anyhow. Not sure if it helps but the kde packages in my build script: aptitude install \ xserver-xorg-video-intel \ xinit xorg conky-all xosview xscreensaver-data-extra xscreensaver-gl xscreensaver-screensaver-bsod \ kde-plasma-desktop kdeadmin kdesudo okular krdc \ samba \ alsamixergui \ t1-xfree86-nonfree ttf-xfree86-nonfree ttf-xfree86-nonfree-syriac \ bluedevil \ Really, xserver-xorg-video-[yourgpu], xinit, xorg, kde-plasma-desktop and kdeadmin should be enough to drag in the minimum related dependencies to get a graphic desktop up. Also, encase it helps, wpa_supplicant and dhclient have been all I've needed to do wifi connections with a basic wpa_supplicant config file. #!/bin/bash if [ $1 ]; then wpa_supplicant -i wlan0 -c /path/to/files/wpasupplicant-$1.conf $2 dhclient -v wlan0 else echo 'Use; wifiConnect [essid] [-B]' echo '-B = run in background' echo fi Arch is definitely worth a look though either way. Even if only to have an option waiting in the wings. It would alienate my nvidia machines and servers to different degrees though.

Orodreth
Orodreth

Yep, 100% : [quote]Changes in network configuration would, of course, cause MS Windows to "lose" the network, but so would the alignment of the stars, as far as I could tell. [/quote] One minute the MS network is working, the next 1 - 24 hours you're trying to figure out why it isn't. And MS is so helpful after failing to find a troubleshooting solution offers to search online for a solution. If MS could go online I wouldn't need help or those ridiculous non-helpful event messages. Linux is moving towards a ease of use interface. What you point out and the article author fails to note, is that you can still write scripts, edit a configuration file, install a package, read helpful error messages to re-establish a connection, or fix a problem.

Neon Samurai
Neon Samurai

Agreed. That's really what Network Manager should be. My dad isn't going to learn command line so a helper app is a requirnment but there is no reason the helper ap shouldn't be using the existing back end applications. Heck, give KDE Wallet a cli friendly point of connection so credentials can still be managed centrally in an encrypted database without being limited to KDE gui apps. Wallet gives the added function of complaining when a new app tries to access data (or in my case, the first time each session that an app requests access). (vpnc interactions could be improved as well) No recourse though.. that does suck. I guess I haven't been playing between cli and gui wifi management enough to have noticed. I do have to hank Backtrack for forcing me to learn cli management though finding networkmanager seemed like a well integrated update to wicd on the GUI side. In terms of Windows, the grief I'm finding results from bad drivers mostly. T60s are notorious for forgetting they have a wifi nic if I accept the driver update from Win Update or Thinkvantage. That and cell dongles who's driver developer's brain damage I can only guess wildly at. What should happen; plug dongle in, OS sees standard NIC, dongle deals with the authentication and cell network connection based on it's SIM card. What actually happens; huge flaky bloated one-off network manager utility hijacks the OS usually with a lot of breakage of existing Windows managed profiles and both providers in our area ship the same piece of sht hardware; thanks Rogers and Bell, way to deliver the most intrusive and user labour heavy solution. Outside of those two issues, WinXP wireless nic management has been solid for me and Win7 a welcome update (neither is remotely perfect but for one as an update to the other, it's an improvement). With this discussion, think I'll look back at the wifi scripts I did for Debian initially. It'd be nice to drop the extra resource weight of deamon and related task bar application. For the amount of terminal windows I keep open it's not like I don't have one an easy alt-tab away when needed. Now.. where is Dcolbert.. must be busy today. I'd expect him to be all over this topic grinning ear to ear and waving cheer leader puffs (but please.. dcol, shorts.. not the mini skirt this time :D )

apotheon
apotheon

I was going to say "Nah, I don't need 'em," but it occurred to me they might be interesting to read anyway.

Neon Samurai
Neon Samurai

But then, my Mandriva use was mostly personal and PLF repositories make the difference.

apotheon
apotheon

Nah, I'm not really sorry. I need to delay your plans for taking over the world through rogue access points so that my plan to take over the world through MS Windows exploits has time to come to fruition.

Neon Samurai
Neon Samurai

Your conflicting with my plans to take over the world through rogue access points.. and I won't stand for that! :D

apotheon
apotheon

If you do not exercise positive control over your network configuration, you are inviting security issues into your life. You should remain in conscious command of when your laptop connects to any networks, rather than just letting it connect to whatever's around willy-nilly.

Neon Samurai
Neon Samurai

My Windows, osX and Debian boxes can all do that too; remember connections and find/connect when in new locations. That's really not a CLI vs GUI feature but rather a feature of what network managers one has installed. The key point is having the option of using either cli or gui though which is a feature lacking from Windows where it's GUI for managing wifi profiles or nothing. (not sure if osX is using cli apps behind Aqua for that either though). Now, what really burns me are these "value add" attrocities that come bundled with wifi drivers for Windows these days. No.. I don't need an Intel branded network profile manager just because I'm installing Intel wifi drivers; the Windows one works fine. And why are those nifty cell network dongles presenting a standard wifi or, better yet, NIC to the OS on this side of the usb plug; they have a sim in them already so use that to authenticate with the mobile network and let the OS manage it like any other NIC. WTF is this bloated flake of a connection manager I have to install before the stupid dongle will connect? (Bell, Rogers.. looking at you and your crappity selection of cell radio addons). Honestly, that alone is enough to make me simply get the little cell to wifi router boxes (Myfi?). But that's what one has to go through just to get a cell network device which doesn't require dirtying up the computer OS it's providing connectivity for.

Neon Samurai
Neon Samurai

I prefer the config file layout of Debian but Draketools are fantastic and most of them working in both terminal and GUI. What's not to like.

apotheon
apotheon

Was that a Hammer joke? Awesome!

seanferd
seanferd

Stop. It's Unix time. I must be on the right wavelength today.

apotheon
apotheon

I've thought about it, and come to the conclusion that the EschatOS will be immanentized in 2038, or thereabouts. I'm thinking maybe 19 January 2038, early morning -- maybe something like 03:14:07 UTC.

Neon Samurai
Neon Samurai

I'll have to take a more detailed look at the repositories. if they have Nvidia's non-free Xorg video driver then Arch probably has my hardware needs covered. Beyond that, it's just having my spread of software including latest OpenVAS. Reducing the number of newer tools I bring in by svn wouldn't disapoint me either. For your network manager grief, it sounds like you've got a lot of justified issue with the Gnome package managers. KDE may not be preferable but it may have had you up and running with less grief. A side note, I noticed the network-manager package still on my notebook when working with it on the weekend. It was dormant so no biggy but it was installed leading to an aptitude purge network-manager when it should have previously been yanked back out with the removal of network-manager-kde. Guess I installed them both specifically at some time over the last half year of mucking about. I'll have to watch for that in future I guess. ifconfig/iwconfig/wpa_supplicant has been solid since though. That change back to my initial method of connection management makes it all worth while. (just remember that the Lenovo base disables the onboard NIC port in favor of the base hosted NIC port or you may spend a half hour or so swearing at your router for not providing connectivity.. hoops.. :D )

apotheon
apotheon

> I don't think it was anything malicious trying to undermine your efforts to uninstall it. I don't think there was any maliciousness at work, either -- just incompetence. I used "purge", by the way -- and used apt-get, not aptitude. I'm not a big fan of having to use command line options to change the behavior of aptitude to make it behave more like apt-get. I always feel like aptitude is what happens when Debian users decide "That YUM thing is getting a little better by emulating apt-get. Let's come up with an apt replacement that acts more like YUM so YUM won't have so far to go to catch up with us." > My first config tweak after installing or updating X; "update-rc.d -f gdm remove" ("kdm" for KDE users). Yeah, I'm not using gdm either. > If both are specified seporately at install both will need to be specified during the removal. I'm not sure if the install method would have specified them seporately. The initial install of GNOME is what installed NetworkManager in the first place, in my case. > In terms of The Windows Way (tm), it would be the end of an era to see a true parent distro like Debian go the automagical bloat route but I can't see there not being a distro for the gearheads still. From what I've heard, it sounds like Arch takes the best ideas from Debian and Gentoo, and leaves out the problems of Gentoo and has not been following Debian's apparent descent into Ubuntu-hood. FreeBSD, in my experience, has been better than Debian ever was (since I started using Debian heavily almost a decade ago) anyway, though. Given that I also prefer the BSD core utilities over the GNU core utilities, and like the BSD license more than the GPL, I'm unlikely to do anything with Linux-based systems again for a while for my own purposes; I'll go back to doing pretty much nothing but some system administration and occasional troubleshooting for others on Linux-based systems (and some development testing, of course) once that single driver issue gets sorted out for FreeBSD.

Neon Samurai
Neon Samurai

I don't think it was anything malicious trying to undermine your efforts to uninstall it. Any time I've blown it off a system it's gone clean. I also boot to text terminal with network-manager not loading until I kick off X or start it by hand. My first config tweak after installing or updating X; "update-rc.d -f gdm remove" ("kdm" for KDE users). Offhand, did you remove from gui package manager, aptitude remove or aptitude purge? Oh.. another variable. I'm selective about my packages and do it all form the command line. In the beginning I did an aptitude install network-manager-kde leaving it to drag network-manager in as a linked dependency. If both are specified seporately at install both will need to be specified during the removal. I'm not sure if the install method would have specified them seporately. "when all else fails, one of the benefits of the Unix philosophy is the ability to dig into the simple tools under the hood to fix the problem" Agreed. I figured that was already implied by the mention of preferences, issue with back end utilities being left to go stale and statements that GUI utilities should be front ends for the cli tools not replacements. Clarification is never a bad thing though. In terms of The Windows Way (tm), it would be the end of an era to see a true parent distro like Debian go the automagical bloat route but I can't see there not being a distro for the gearheads still.

apotheon
apotheon

In the process of fighting with my networking issues on Debian, I discovered that when I had at first thought I had removed NetworkManager there was still a NetworkManager daemon running, even after having restarted the entire laptop. It's a bit like RealMedia software that way, I guess -- doing its level best to undermine any efforts to remove or deactivate it. > I believe the author's complain was also more to do with the classic cli apps being left to get stale or become incompatible with GUI layer apps. Where we should have GUI front ends for cli back ends, we're seeing GUI apps that do it all themselves or rely on one-off tweaks of cli apps which breaks scripting and hampers those who prefer the cli world. That's pretty much the whole deal, except for one thing: It's not just about preference. It's also about the fact that, when all else fails, one of the benefits of the Unix philosophy is the ability to dig into the simple tools under the hood to fix the problem. That capability is essentially being tortured to death by software like NetworkManager. As I said in the article, it's still better than MS Windows that way -- but it seems to be rushing headlong toward the MS Windows way of preventing users from doing that sort of thing.

Neon Samurai
Neon Samurai

Had some fun reviewing my cli networking scripts in the process along with the happy outcome of removing the dependency of a GUI from my network connectivity. Sadly, GUI apps still refuse to tunnel through an ssh proxied port. The Foxyproxy icon just spins and pauses and spins and pauses.. no luck hard setting proxy entries either. I can send curl out through a proxied port from cli though so I'm thinking it's something in KDE4 giving me grief. Drag.. I was hoping to blame that bug on network-manager and get on with enjoying adhoc proxying (used to test server builds from remote locations and other work tasks in addition to home fun and mobile safety). I believe the author's complain was also more to do with the classic cli apps being left to get stale or become incompatible with GUI layer apps. Where we should have GUI front ends for cli back ends, we're seeing GUI apps that do it all themselves or rely on one-off tweaks of cli apps which breaks scripting and hampers those who prefer the cli world. Overall, clie, power user gui and ease of use gui are all welcome developer targets. I just don't want to see easy GUI replace the other options.

Neon Samurai
Neon Samurai

now that I think of it.. I wonder if network manager is my grief with SSH. I can forward to a dynamic port and proxy my cli network traffic.. wget returns my proxy IP when checking whatismyip but will Firefox or any GUI app recognize the SSH proxy forward? Heck no.. I've been completely cut off quick and dirty SSH network proxy connections since Debian 6. It suddenly seams very likely that the issue is Netowork Manager not handling things as it should if it's related to how the GUI apps punch through KDE to get network traffic. If my apps suddenly work after ripping out networkmanager, that's the story I'm sticking with.

Editor's Picks