ubuntu 14, the best linux release ever

Yesterday I updated to Ubuntu 14.04 LTS, or simply Ubuntu 14. For the first time in all the years of my experience with Ubuntu, I’m moving to a long term support (LTS) release with every intention of staying there. Whether I’ll stay with 14.04 for the full five years that Canonical guarantees security updates, or update to 16.04, depends on how much progress is made at the next LTS release two years from now in 2016. But as for installing the latest every six months, I think I’ve moved well past that point. And that’s actually a good thing. I’ve been a long time user of (and at times, battler with) Ubuntu going back to 2007 and Ubuntu 7.04. I started trying Ubuntu with the first alpha release of 7.04, and ended my first attempts at using Ubuntu with 7.10. That was the year I also wrote “It isn’t worth the trouble anymore” due to my experiences upgrading to Ubuntu 7.10 and openSUSE 10.3 on two home systems. I’d had all I could stand upgrading and then fighting introduced hardware support regressions. I was also using Windows XP at the time, and in spite of the fact Vista had been released nearly a year prior, I wasn’t going to dive into that “bag of hurt” while running away from the Linux bags of hurt. Nope, no way. But time heals all wounds, and even Linux can show improvements. In the case of Ubuntu the improvements are substantial and world class. Where I have, in past critiques, been quite brutal in my assessments, I have to say now that Ubuntu is one of the best, if not the best, Linux distributions you can get get. Period. In fact, I’ll make the following statement for the record;

Ubuntu is one of the best, if not the best, operating systems (including Windows 8.1 and Mac OS X Mavericks) you can install on any personal computer. Period.

If you’re considering an upgrade from Windows XP and don’t want Windows 7 or later, and further assuming you’re not beholden to some very specific software application that must run on Windows XP, then you should consider Ubuntu 14.04 LTS. It really does have what it takes to challenge Windows, especially anything older than Windows 8.

I upgraded my Samsung R580 notebook that had been running 13.10 to 14.04 without any incident. When it finished it came up with all my settings intact and everything functioned exactly as it did before the upgrade. I was quite impressed, since I haven’t had any major Linux upgrade that successful, and I’ve been a user of Linux since the very early days of S.u.S.E., when it was sold and shipped from Germany.

I’ve installed and upgraded it on both hardware and virtual machines, and it’s only on virtual machines that Ubuntu stumbles, and not because of Ubuntu. Ubuntu, as well as Fedora 19 and 20, and any distribution that uses a Linux kernel 3.13 or later, will not allow VMware Tools (from VMware 6.0.1) to install cleanly. Specifically the filesystem sharing driver, allowing a VM client to share a Window’s folder, fails to build due to arbitrary changes in how certain group and user permission data types are represented in the kernel vs how they’re represented around the rest of userspace. Normally, with my other VMs, I share common data via that shared folder, which makes development and testing across a heterogeneous environment rather easy. Failure to share and work well together is not a Good Thing. The only saving grace (or graces) are these: I can drag and drop bidirectionally between 14.10 and Windows 8.1. It’s slower, and I have duplication of files which I have to remove when I’m done, but it’s what I have to do for the time being. And because it works so well and looks so good I’m willing to put up with it until VMware pushes out an update adding support for this latest kernel.

The system does look really good. It’s a handsome looking environment. Ubuntu 14.04 shows even more subtle visual refinements over 13.10, and I was (and still am) very happy with Ubuntu 13.10. In spite of running into the folder sharing issue, installing a bog-standard new Ubuntu 14.04 virtual machine took all of ten minutes from start to finish. Yes, I dinked around with the background, but really, if you want something that you can load and go with RIGHT NOW, you can’t beat Ubuntu at this point in time. I have come to enjoy working with Unity. I’ve had my mixed reactions to Unity along with everybody else, but after 12.04 was released all those issues were addressed and I never looked back. What has made Unity the #1 desktop choice for me is the final tweak of allowing me to put the application menus back on each application, instead of leaving them at the top left corner of the desktop control bar, à la Mac OS X. The solution of having application window menus in-line with the window top is a reasonable and clean compromise. Windows 7 and 8 have tried to tackle the waste of screen real estate with the ribbon task bar (see Windows file explorer, for example), to the complaints of many. I actually liked that idea, but then I liked the original Metro look and I like Unity, so I guess there’s no accounting for taste. This last screen shot is my farewell to Ubuntu 13.10. It’s running Java 8 update 5 and  the JavaFX demo Ensemble. It’s interesting in that IMHO the JavaFX demos run better on Ubuntu 13.10 and 14.04 than they currently do on Windows 8.1 update 1. This leads me to my final prediction: my next notebook, the one I buy after my Samsung Series 7 Chronus running Windows 8.1 update 1, will be a notebook running Ubuntu 14.04 LTS. Yes, Ubuntu’s that good. Update Some folks have asked about Ubuntu vs Arch Linux for Arm. They’re wondering if Ubuntu can be installed on the Raspberry Pi instead of Arch Linux Arm. The answer was “NO.” The last version that was installed on the R-Pi was Ubuntu 9.06 cross-compiled to run on the ARM V6 architecture of the R-Pi. After that release (starting with 10.04) Ubuntu was optimized to run on more advanced ARM architectures. The 14.04 release is optimized to support 64-bit ARM V8, such as the ARM Cortex A57 used in AMD’s Opteron A1100 processor. I’ve modified my declaratory statement above with one world; personal. Personal is primarily my notebooks and desktop systems running with Intel processors. That may change to include tablets running more capable ARM processors, but only if you want a complete end-to-end solution. For R-Pi work I still recommend and support Arch Linux Arm. The Arch ARM distribution is highly granular, more easily granular, and works quite well on the Raspberry Pi as they’re currently shipping. Even if there was a Raspberry Pi that was released with a 64-bit processor, I’d still stick with Arch Linux ARM if for no other reason than the body of experience and good will I’ve built up with this distribution on the Raspberry Pi. I’d be a fool to abandon that.

Update 13 May 2015

I have upgraded to Ubuntu 14.10 (see October) and now Ubuntu 15.04. Still feel the same way about Ubuntu. The fact that a five year old Samsung notebook is running the current Ubuntu release without issues is amazing. This notebook originally came installed with Vista, then was upgraded to Windows 7. It reached a point where Windows 7 was very unstable, which is why I switched to Linux, Ubuntu 13.10 specifically, December 2013 (read here).

Trust me. It’s all still very, very good. In spite of its noisy and noisome critics.

loosing and regaining sudo on ubuntu 13.10

For reasons which I’m not even going to try to explain (even if I could give you a rational explanation), I managed, all on my own, to loose sudo capability on my Ubuntu notebook. How? In a fit of paranoia I started to lock down my notebook, removing any unneeded software and capabilities, operating under the principle of least privilege. I do that for software as well as my system accounts, stepping up to a higher privilege only when absolutely necessary. Unfortunately, on every consumer OS I’ve used, just about everything non-trivial you really need to do to the system requires administrator/root privileges.

In trying to do the “right thing”, I changed my Account Type on the User Account GUI (see above) from Administrator to Standard (going to the lesser privilege) and in the process lost sudo privileges.

I found out what I’d done to myself when I went to start working on my Raspberry Pi and needed to flash one of my SDHC cards with one of my Arch Linux images. You need sudo to run dd in order to copy the image to the card. Except, this time, when I tried to use sudo, I got the ominous error message that I wasn’t in the sudoers file.

And, of course, I only have one account on my Ubuntu notebook. At that time, not even root.

Shit.

This is where having a copy of the ISO you initially set up your Ubuntu system within easy reach is so vital. Mine is on a 2GB thumb drive. I plugged the thumb drive back in and booted into the live Ubuntu image on the thumb drive. Fortunately for me, Ubuntu Live can be used to rescue (or break into, depending) an existing system. The problem wasn’t in the sudoers file, it was in the group file.

/etc/group is an ASCII file which defines the groups to which users belong, one group per line in the file. Each line is formatted as

group_name:passwd:GID:user_list

where group_name is, in this instance, sudo, and the user_list should have the account you operate. For example, on my system, I operate from the ubuntu account. The /etc/group entry should look like

sudo:x:27:ubuntu

Instead, when I opened it up on repair mode, it looked like

sudo:x:27:

Uh-huh. I put the account name back in the group file, rebooted into Ubuntu, and had sudo privileges back. The last thing I did was to enable root on Ubuntu. You do this with ‘sudo passwd root’, enter a root password, and then have a root account. You can’t login as root from the graphical page (you can from the console command line), but you can still log in as a regular account and ‘su -‘ to root. There are all sorts of warnings about enabling root, but when you can just blow your sudo rights at the drop of a hat, you really do need a backup account to restore yourself besides booting into rescue mode. I still work from least privilege whenever possible, but I need this alternative as a developer, properly locked down until needed.