summaryrefslogtreecommitdiff
path: root/published/debian8review.html
blob: 400b996e9b9b3d14990f12b3f360f724e5d0e79f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<p>Last week the Debian project released Debian 8, the first major update to the stable branch of the venerable Linux distro in two years.</p>
<p>Debian Linux consists of three major development branches: Stable, Testing and Unstable. Work on new versions progresses through each, starting life in Unstable and eventually ending up in Stable.</p>
<p>Debian 8, nicknamed &quot;Jessie&quot; after the cowgirl character in Toy Story 2 and 3 (all Debian releases are named after Toy Story characters), has been in development in the Testing channel for quite a while. But it wasn't until the official feature freeze for this release (in November of last year) that the contents of Testing really become what you'll actually find in Debian 8 today.</p>
<p>If all that sounds complicated and slow that's because it is. And that's kind of the point.</p>
<p>Debian Stable is designed to be, well, stable, and that means long development cycles and a conservative approach to application updates.</p>
<p>As a general rule Debian Stable lags behind pretty much every other distro on the market when it comes to package updates. If you want the latest and greatest, Debian Stable is not the distro for you. Which is to say that, while Debian 8 may bring a ton of new stuff to Debian, it has almost nothing the rest of the Linux world hasn't been using for, in some cases, years. What's more, many things in Debian 8 are still not going to be the latest available versions.</p>
<p>Debian 8 has one giant except to that general rule -- systemd. More on that in a few paragraphs.</p>
<p>Why use Debian then? There are plenty of philosophical reasons -- the legendary <a href="https://www.debian.org/social_contract">Debian social contract</a>, the community and all included software in the repos is free as in freedom, which has long been a hallmark of Debian.</p>
<p>The more practical appeal of Debian is in its legendary stability. I've been running Debian servers since 2005 (Sarge) and have never had a server crash. This stability is part of the reason Debian is the base for dozens of downstream distros.</p>

[image="debian-family-tree.png" caption="The Debian Family tree (image: Wikimedia)"]

<p>Not everything downstream uses the Stable channel as its base. In fact it's worth noting that perhaps the most famous project downstream from Debian, Ubuntu, is built off the package base in the Unstable channel. Still, Debian Stable remains one of the most popular distros out there. This is particularly true for web servers where, according to stats from <a href="http://w3techs.com/technologies/details/os-linux/all/all">W3Techs.com</a> (which should be taken with a grain, if not a generous helping, of salt), Debian accounts for the largest percentage of Linux servers on the web -- 32.3 percent.</p>
<p>All of this makes Debian Stable updates a much bigger deal than faster moving distros like Ubuntu or Fedora.</p>
<p>And because Debian 8 makes the leap to systemd it just might be the biggest change in Debian since the first release back in 1993. Debian is justifiably famous for being so stable you could blindly type <code>apt-get dist-upgrade</code> upgrade on a production box and get away with it. This time though, there's systemd to contend with.</p>
<h2 id="whats-new-in-debian-8">What's New in Debian 8</h2>

[image="debian-gnome-desktop.png" caption="It might not be new, but it's new to Debian"]

<p>There is far more to Debian 8 than I can cover here. There's probably more than even John Siracusa would be willing to cover. Debian's official release notes report that 24573 software packages have been updated (that's 66 percent of the distro), but amidst that firehose of updates there's one that stands out -- systemd.</p>
<h3 id="systemd">systemd</h3>
<p>Unless you've been living under a rock you've probably heard at least something about systemd in the last year or two. Most likely what you heard was some froth-mouthed vitriol about how it's either the second coming of the Penguin or the NSA-backed devil incarnate. There are, it seems, no moderate opinions about systemd and the debate surrounding it has been anything but civil, even in the normally pretty civil Debian community.</p>
<p>To understand why you need to understand how your operating system starts up and runs all the various processes it runs. Pardon the analogy, but just as there was one ring that controlled all the rest, there is one application that controls all the rest. This is the init (short for initialization) system. The init system is the first process started when you boot and the last to shutdown. In the time between startup and shutdown the init system is the master controller of all processes and is traditionally assigned the process ID 1.</p>
<p>There are quite a few init systems out there, but most Linux distros (Slackware and Gentoo being notable exceptions) have been using SystemV. SystemV is outdated and riddled with crufty, often no longer needed code and is long overdue for a replacement. Few debate that, but start asking what should replace it and you'll soon see the knives come out.</p>
<p>Systemd is designed to replace SystemV, providing an init system that's cleaner, faster and considerably easier to use. Or at least that's the sales pitch.</p>
<p>Most of the contention about systemd arises because systemd isn't just an init system. Or rather it's an init system that wants to manage far more than processes. If your distro of choice opts to run systemd with all the bells and whistles it will be running some 69 binaries. Some call that monolithic, systemd creator Lennart Poettering <a href="http://0pointer.de/blog/projects/the-biggest-myths.html">disputes that charge</a> arguing that what people don't like is that it all ships as a single tarball and is all updated and maintained in a single codebase.</p>
<p>Indeed the very centralized nature of the project is what led Canonical founder Mark Shuttleworth to call systemd &quot;<a href="http://www.markshuttleworth.com/archives/1295">hugely invasive</a>&quot;. He went on to say that, &quot;one of the ideas in systemd that we think is really bad is to bring lots of disparate pieces of technology into a single process. So lots of formerly-independent pieces of code, which happen to be under the control of folks driving systemd, have been rolled into that codebase.&quot;</p>
<p>Shuttleworth went on to <a href="http://www.markshuttleworth.com/archives/1295#comment-403228">acknowledge</a> that &quot;it’s still possible to build independent packages of the different pieces from that code,&quot; which has long been Poettering's response to the monolithic charge, but there's no denying that systemd throws out the Unix philosophy of small things with narrowly defined functionality. That doesn't necessarily mean it's bad though.</p>
<p>Much of the debate about systemd is academic at this point because here's a truth that you'll discover in Debian 8, Ubuntu 15.04 and just about every other major distro around: systemd is here.</p>
<p>Sure, you can disable it, boot with SysV if you like, but systemd isn't going away. Your long term options are to either embrace it or cast your lot with <a href="http://debianfork.org/">Devuan</a> or make the switch to FreeBSD.</p>

[image="debian-systemd.png" caption="Systemd it's in your Debian and it's not going away."]

<p>I decided that, since systemd appears to be here to stay, and is the default starting with Jessie, it was time to roll up my sleeves and RTFM.</p>
<p>My experience with systemd had been decidedly mixed. On the desktop I hardly notice it. Indeed I doubt anyone using desktop Linux for everyday tasks like email, web browsing, office docs, photo editing and the like will either know or care that they're running systemd. I have encountered a couple problems with the systemd journal feature when running Debian 8 in a virtual machine, but on actual hardware the same problem has not come up.</p>
<p>Debian 8 on the server is a different story though. I've been slowly migrating my sites to Jessie-based servers over the past six months and have had a few hiccups here and there. For example, while systemd likes to say it's fully compatible with older init scripts, that's not completely true.</p>
<p>In my case, enough has gone wrong that I suggest you don't jump in immediately with both feet.</p>
<p>Before you even think of upgrading a server to Debian 8 be sure to read through the <a href="http://www.freedesktop.org/wiki/Software/systemd/Incompatibilities/">systemd incompatibilities</a> list. In particular note that if you use tools like /sbin/chkconfig you'll quite possibly be getting incorrect or at the very least incomplete information when systemd is in charge. Also note that systemd services are &quot;executed in completely clean contexts&quot;, which means not even $HOME is set, so if you have init scripts depending on such variables they will break.</p>
<p>Then there's the systemd's journal tool which takes some getting used to if you're more familiar with syslog. That said, you can run syslog alongside journal if you prefer not to switch up your workflow too much.</p>
<p>In fact, you can still run Jessie without systemd. All you need to do is use preseed to replace systemd with sysvinit at the end of the install. Check out the <a href="https://wiki.debian.org/systemd#Installing_without_systemd">Debian wiki</a> for details. This method works well enough on the server, but don't try it with a desktop environment installed.</p>
<p>In the end, after finding some new systemd service scripts for the handful of things I need --Nginx, Gunicorn and some other web app tools -- and figuring out how to set up the journal to actually log useful information I've managed to upgrade to Jessie. On one hand no one likes changes and I could have done without learning a new syntax for init scripts -- though systemd files are at least much easier to read and write -- and all the other headaches. But once you're over the migration hurdles I've found systemd is, well, just fine.</p>
<h2 id="debian-8-on-the-desktop">Debian 8 on the Desktop</h2>
<p>There's more to Debian 8 than systemd, particularly on the desktop where, as noted, most users will probably not even notice it.</p>
<p>The first thing you'll likely notice when installing Debian 8 on the desktop is that there are more desktop choices and picking one is much simpler than before.</p>

[image="debian-installer-tasksel.png" caption="The wide variety of Desktop options in Debian 8"]

<p>Quite a bit of work has gone into Debian's tasksel app in this release. That's the application that helps you set up Debian and install all the software you need. The installer now offers a list of desktop environments under the generic &quot;Debian Desktop Environment&quot; option. If you just leave everything at the defaults you'll end up with GNOME 3.14 for your desktop, but you can change that by selecting the options to install Xfce (briefly considered for the default option), KDE, Cinnamon, MATE or LXDE. You can of course opt to install nothing and then install the alternate desktop environment of your choice after the base installation. If you prefer something really lightweight like Openbox or Xmonad this is the way to install it.</p>
<p>In short it's tough to really say that Debian has a default desktop. To test things out I tried Debian with GNOME, Xfce and Cinnamon.</p>
<p>Again, Debian takes a conservative approach so you'll only get GNOME 3.14, though 3.16 was released a few months ago. GNOME 3.14 has a few new tricks up its sleeve, most of which I've <a href="http://arstechnica.com/information-technology/2015/01/16/fedora-21-review-linuxs-sprawliest-distro-finds-a-new-focus/">covered in past reviews</a>.</p>

[image="debian-gnome-shell2.png" caption="The default Debian desktop: GNOME 3.14"]

<p>The standout new features in 3.14 include better high resolution display support, several of the new GNOME apps like Photos and the redesigned Weather, a new geolocation framework, which the aforementioned Weather takes advantage of, and the first signs of support for Wayland. With 3.14, Mutter (GNOME's default display manager) can work as a Wayland compositor. It's not the default though, you'll have to select this option from the GNOME login screen.</p>
<p>GNOME 3.14 is a step up from previous versions, but it still feels a bit crippled next to more full featured desktops like Cinnamon or Unity. The Nautilus file manager in particular is a shell of its former self.</p>
<p>Debian's version of GNOME 3.14 is pretty close to stock, but then there aren't many ways to customize GNOME or give it a distro-specific feel.</p>
<p>If GNOME is not to your liking there's plenty of other choices, including the increasingly popular Xfce. This being Debian don't expect to see the latest version of Xfce (which is a huge update and well worth upgrading to as soon as you can by the way), instead you'll get Xfce 4.10. In fact Debian's Xfce is a bit of an outlier compared to other distros.</p>

[image="debian-xfce.png" caption="Debian with a barebone install of Xfce"]

<p>Debian treats Xfce as a very minimalist desktop and the experience might be a bit different if you're accustomed to the everything-and-the-kitchen-sink approach of, for example, Xubuntu. In Debian optional things like the Xfce extras package are not included by default. Naturally you can install the extras from the repositories, but Linux newcomers might not even realize that's an option, which makes Xubuntu's approach seem a bit friendlier.</p>
<p>The best desktop experience in my testing has undoubtedly been Cinnamon. Cinnamon atop Debian has been every bit as reliable and nice to use as Cinnamon is in Linux Mint. The only downside is that you'll only get Cinnamon version 2.2.16, while the latest version of Linux Mint shipped with version 2.4, a not insignificant update.</p>

[image="debian-cinnamon.jpg" caption="Debian with Cinnamon (not to be confused with Linux Mint Debian Edition)"]

<p>As for default desktop software, Debian ships with favorites like LibreOffice (v4.3.3) and GIMP 2.8, but you'll also find a few extra apps like GNUcash, GNUmeric and Abiword. There's also Icedove 31.6.0 (an unbranded version of Mozilla Thunderbird) and Iceweasel 31.6.0esr (an unbranded version of Mozilla Firefox). Yes, Debian opts to ship with the little-used Firefox Extended Support Release, which lags behind its faster-developing counterpart when it comes to the latest and greatest features on the web.</p>
<p>You've probably noticed a theme here, Debian is behind the curve when it comes to version numbers. Why run Debian on the desktop when similar downstream distros like Xubuntu or Ubuntu GNOME or Linux Mint offer arguably the same thing with newer packages and a more polished interface? These are after all Debian derivatives so aren't you in effect using Debian?</p>
<p>The answer I suspect lies in that legendary Debian stability. And many developers like to mimic the server in their local environment. For the average Linux user though the downstream derivatives are probably a better bet in many cases. Ubuntu and Linux Mint might not be quite as stable, but they deliver more frequent updates to the applications that most people use every day. That means more new features and arguably a better experience. If you want something similar, but for philosophical reasons feel more comfortable with Debian there's always Debian Testing.</p>
<h2 id="debian-on-the-server">Debian on the server</h2>
<p>If Debian on the desktop is perhaps a bit too far behind to entice today's user, nearly the opposite is true on the server. There's systemd to deal with, but once you get past the systemd changes there's much to love about Jessie on the server.</p>
<p>Debian's conservative approach to package updates leads to stability it also sometimes leads to terrible packages hanging around. For example Python developers have had to deal with Python 3.2 package for what seems like an eternity in Debian 7 (unless of course you use backports). Thankfully Jessie bumps Python to 3.4.</p>
<p>Perl, PHP, and most other common development tools have been similarly updated, if not to the bleeding edge then at least to the latest stable versions. Web server packages like Apache and lighttpd see similar incremental updates in Jessie.</p>
<p>Some things are thankfully missing in this release as well, notably the secure sockets layer protocol SSLv3 is gone by default, which should make for more secure HTTPS connections on the web (assuming people update).</p>
<h2 id="kernel">Kernel</h2>
<p>Jessie ships with the 3.16 series Linux kernel, which might sound a tad out of date until you consider that its predecessor, Wheezy was using the 3.2 series.</p>
<p>There's been an incredible number of changes since 3.2, far too many to cover in details, but some of the highlights include a host of graphics card improvements (particularly open source Nvidia drivers), EFI boot support, ARM 64-bit support, RAID5 multithreading, Automatic GPU switching in laptops with dual GPUs and support for nftables, the successor of iptables among many, many other new features.</p>
<p>There's also been a ton of work put into filesystem improvements with ext4 support getting a lot attention and much better <a href="http://linuxfoundation.ubicast.tv/videos/btrfs-filesystem-status-and-new-features/">support for Btrfs</a>.</p>
<h2 id="should-you-upgrade">Should You Upgrade?</h2>
<p>In a word: Yes. This is Debian, releases are infrequent and rather massive so there's more than enough in the way of new features and package updates to make the update worth it. The caveat is that you should do a lot of testing before migrating your servers to systemd. VPS instances are cheap, fire one up, install Jessie and spend a few weeks testing because while it's stable Jessie's systemd init is a big change that takes some time to wrap your head around.</p>
<p>If Debian is your desktop of choice you don't have as much to worry about with systemd. In fact you're unlikely to even notice it.</p>