How Often Do I Need to Update (or Upgrade) an Ubuntu Computer?

ZDNet recently reported that Microsoft “may” soon allow Windows 10 Home users to “hit pause on Windows Updates for up to seven days,” which if true “partially addresses a key gripe users have with that edition.” (Users of the Windows 10 Pro and enterprise editions can presently delay updates for up to 35 days.) As one ZDNet commentator noted, Microsoft’s current forced-update policy places an unfair burden on home users, a group that “is probably least equipped to troubleshoot technical problems and least likely to have professional IT help at hand.”

In contrast to Windows, Linux-based operating systems do not typically force users to update. Now, many distributions enable updates by default. In Ubuntu MATE, for example, the system is set to check for software updates each day. It will then download and install anything designated as a “security update” by Canonical, Ubuntu’s publisher. For all other updates, the system will prompt the user once a week and ask if they wish to install them.

All of these default settings can be changed through a Software & Updates dialog box. Below I’ve displayed the current settings for my laptop:

In fact, you can instruct the system to never check, download, or install updates at all unless you initiate a request. Is this a good idea? No. Updates may seem inconvenient, but they are necessary to keeping any computer running properly. Linux distributions also make every effort to minimize any disruption to users. For instance, unlike the normal behavior of Windows, an Ubuntu-based system will not forcibly restart a computer without the user’s prior approval. And as the above settings window illustrates, you can customize the interval between system prompts to look for updates. I tend to be obsessive about this sort of thing, so I update everything daily, but for most users, I’d recommend keeping automatic security updates on and checking for all other updates on at least a weekly basis. 

Long-Term Support vs. Interim Releases

There’s also a critical distinction in Ubuntu between regular software updates and upgrades to the base operating system itself. Canonical typically publishes a new version of Ubuntu every six months. These versions are numbered according to the year and month of the release, e.g., Ubuntu 18.10 was released in October 2018. 

There are actually two distinct types of releases. The first is what are called long-term support (LTS) releases. The April release in every even-numbered year is a LTS release. This means the most recent LTS release was Ubuntu 18.04–and the next scheduled one will be Ubuntu 20.04. In between each LTS there are three interim releases. This includes both releases in the odd-numbered years (e.g., Ubuntu 17.04 and 17.10), and the second release in every even-numbered year.

The main difference between the LTS and interim releases is the length of support–that is to say, the time period during which Canonical makes security and other updates available for the software. Interim releases are only supported for 9 months. So the most recent interim release, Ubuntu 18.10, will not receive any further updates after July 2019.

Now the LTS releases, as the name implies, receive updates for a much longer period. How much longer? Well, the stock answer is 5 years from the date of the original release. So for Ubuntu 18.04, first released in April 2018, users can expect free software updates until April 2023. (Canonical also sells “extended security maintenance” to enterprise-level customers, which provide security updates for an additional 3 years.)

But there’s a caveat here. The 5-year support window only applies to part of the Ubuntu distribution. As I discussed in last week’s post, every Linux-based operating system has its own set of repositories that provide software to the user. You’ll note that “repositories” is plural. There are actually different repositories that serve separate functions, even though when the user receives updates they might appear to come from a single source.

Ubuntu divides its available software into four main repositories: main, universe, multiverse, and restricted. The main and restricted repositories form the base system that receives 5 years of updates. But packages in the universe and multiverse repositories do not.

Without delving too much into the legal and technical issues–that’s for a future post–the universe and multiverserepositories contain software that is not directly maintained by Canonical. Instead, it is considered “community” software. And this includes a lot of common user applications, such as the MATE desktop itself. These packages typically receive just 3 years of support from the community.

Looking at my own laptop, only about 70 percent of the programs installed fall within the 5-year support window. The rest are supported for 3 years–or even less in some cases. It’s also important to note that if you install software from outside the repository system, it is not subject to any of these support periods.

Plan to Upgrade Every 2 Years

So if you’re moving to Ubuntu, is it better to stick with the LTS release cycle or upgrade to each new interim release as it comes out? Personally, I choose the LTS cycle. The six-month interim releases are really for the benefit of the software developers, who require a more up-to-date base system in order to do their work. But for non-technical professional work, such as freelance writing, there’s no demonstrable benefit to the shorter release cycle.

For similar reasons, I’d also advise upgrading with each LTS release. So if you’re starting out with Ubuntu 18.04, prepare to upgrade to Ubuntu 20.04 next year–do not wait out the full, 5-year window on the current LTS. Once again, the 5-year cycle is not really intended for everyday users. The target audiences here are large enterprises, who don’t want to pay thousands of dollars to update applications that depend on an older Ubuntu release, and people who run servers (such as machines that run websites), which only run a handful of applications and typically do not require a graphical user interface.

3 Key Differences Between Managing Files in Linux and Windows

At first glance, a Linux-based operating system like Ubuntu MATE does not look all that different from Windows, especially if you are currently using older versions like Windows 7 (or even Windows XP). But as you start to work with Linux, you’ll notice some subtle variations in how the system deals with files and disk drives. 

Here are three things to keep an eye out for:

1. There Is No C:\ Drive.

Since time immemorial, as Tony Soprano used to say, each disk drive on a Windows system has its own special letter assigned to it. The main hard drive is always the C:\ drive. My Windows 10 PC assigns D:\ to the recovery partition and F:\ to the first USB drive I plug in. And of course, back in the halcyon days of floppy disks, those drives were usually assigned A:\ or B:\

But Linux doesn’t assign drive letters. In fact, Linux doesn’t recognize disk drives as separate entities. In Linux, everything is connected to what is called the root filesystem, which is simply designated as /. (Also note that Linux uses a forward slash, as opposed to the backward slash in Windows.) No matter how many separate disk drives you attach to a given computer, they are all organized as directories and sub-directories under root.

Pretty much every Linux-based operating system–at least the ones I’ve used–rely on some variation of the Filesystem Hierarchy Standard (FHS) to organize the directories under root. For instance, here is what the root directory looks like on my Lenovo ThinkPad running Ubuntu MATE:

It’s not important to know what most of the directories contain. (I don’t.) The critical directory for our purposes is /home, which as the name suggests serves as the user’s home folder. In this sense, /home is the equivalent of C:\Users on Windows 10. Each user on a system has a separate sub-directory within /home, such as /home/smoliva in my case. By default many Linux systems, including Ubuntu MATE, also create a number of sub-directories in each user’s home folder, including DocumentsDownloadsMusicPicturesTemplates, and Videos

Now, with respect to disk drives, an FHS-compliant filesystem classifies these as device files, which are located in the /dev directory under root. Individual hard drives are typically designated as /dev/sdax, with x representing a drive number as opposed to a letter. For example, I currently have two solid state drives attached to my ThinkPad. The first drive is /dev/sda1, and the second is /dev/sda2. And if I plug in a USB drive, it will usually show up as /dev/sdb1.

If that sounds too confusing, don’t worry. To simplify things for the user, Ubuntu-based systems usually mount (attach) any additional disk drives to another directory called /media. The drive can then be accessed at /media/username/drivename. But it’s not even necessary to remember this path, because the MATE desktop automatically displays an icon shortcut to any attached drive directly on the user’s desktop. 

For example, let’s say a user with the username msimpson has a second hard disk named “Backup” and a USB thumb drive called “SolusLiveBudgie” attached to her laptop. The MATE desktop would display the following icons: 

2. There Are No .exe Files.

In recent years, Windows has tried to move users towards a centralized store-based model for installing new programs, similar to how iPhone and Android phones work. Linux actually pioneered this approach with its repository system. Each Linux distribution, such as Ubuntu, maintains repositories containing software that has been tested and verified to work with the rest of the operating system. 

But there are times when users need–or want–to install software that is not available through a repository. In Windows, you can famously download and run any file with an .exeextension. So what is the Linux equivalent of this?

The answer is somewhat complicated. There are multiple ways to install software on a Linux system outside of the official repositories. I will go into more detail about this in a future post. But for now, I’ll highlight the one method that is closest to “download-and-install an exe file.” 

Many commercial programs sold for Linux come in the form of a single file with a .sh extension. This stands for “SHell script,” and it refers to Bash, which is a basic programming language recognized by most Linux-based operating systems. A Bash script can be run in much the same way as a Windows .exe file.

However, if you simply download a .sh file and double-click it on your Linux desktop, it’s likely nothing will happen. The reason for this is that you need to first designate the file as “executable” by the system. In the MATE desktop, you can do this by right-clicking on the filename, selecting Propertiesfrom the menu that appears, and checking a box that says, appropriately enough, “Allow executing file as program.” Below is an illustration from my system, using the installer for the popular game Stardew Valley that I purchased from GOG.com.

3. You Need to Enter Your Password to Make Changes to the System.

So after you double-click your newly-executable shell script, another dialog box may appear asking you to enter your password to continue. If you’re used to the Windows approach to installing software–where you’re asked to click a box but not enter a password–this might seem like an unnecessary step. After all, if you’re already logged in to your computer, why would you need to enter your password a second time?

This is actually a critical component of how Linux secures a computer. Linux was modeled after other multi-user computer systems from back in the day when mainframes were all the rage. And even today, when most PCs only have one user, there is still a sharp distinction between the user of a system and the administrator.

This goes back to the root filesystem discussed above. There is, in fact, a separate root user as well, which has its own home folder located at /root. Ubuntu-based desktop Linux systems do not allow users to access the root user by default. But in order to make changes to the system–i.e., installing or removing programs–the user still needs to have access to root-level administrative privileges.

This is where handy little program called sudo comes in. Sudo enables the user to “borrow” the root user’s ability to make changes to the system for a short time. So when the dialog box asks you to re-enter your user password, it is actually seeking authorization to runsudo , i.e. carry out a command as if you were the root user.

One caveat to the sudo rule is worth pointing out here: If you install a program to your home folder, sudo is not necessary provided you don’t make changes at the root level. So if I double-clicked the Stardew Valley installation program, for instance, and set the game to install at /home/smoliva/stardew-valley, I would not need to re-enter my password. But if I wanted to install the game in /bin, which is where many of the system-level programs are stored, then I would need to enter a password to gain sudo-level permissions.

What Type of Computer Do I Need to Run Linux in a Home Office?

I’ve run Linux-based operating systems on a number of different computers over the years. Linux is widely praised for its flexibility with respect to hardware. It can run on everything from small, single-board computers to massive, enterprise-level servers. And even within the narrower subset of desktop Linux distributions, you can generally find something that will run on an older computer that has outlived its usefulness in the Windows or macOS world.

That said, if you are looking to incorporate Linux into your home office or small business, you should not assume that you can just throw Ubuntu onto some 15-year-old machine that still has a Windows XP sticker on it. Or as Dr. Ian Malcolm might say, “Just because you can run Linux on a machine doesn’t mean you should.”

New vs. Refurbished Hardware

So what type of machine is ideal for running Linux as a freelance worker? There’s obviously no one-size-fits-all answer. In my case, I work as a writer who deals almost exclusively in text. This means I don’t require enormous processing power or storage space to deal with images or video files. But I also require enough power to keep several different applications (and browser tabs) open at the same time without experiencing any noticeable slowdown in overall performance.

As I mentioned in the introductory post to cvilleFOSS, I run Ubuntu MATE as my Linux distribution of choice. Ubuntu MATE is often described as a “lightweight” distribution suitable for older machines based on its stated minimum hardware requirements, which are as follows:

  • Pentium M 1.0 GHz processor
  • 1.0 GB memory
  • 9.0 GB available hard disk space

Now, a Pentium M processor refers to a line of Intel-produced CPUs manufactured between roughly 2003 and 2005. I’m not even sure where you would find working computers with such processors these days outside of the odd eBay or Craigslist ad. And again, just because it is technically possible to use Ubuntu MATE on a 15-year-old computer does not make it a savvy business move.

On the other hand, you do not need to go out and buy a brand new computer from Amazon or Best Buy just to run Linux. In fact, I would advise against such a purchase. In the past, I have bought cheap laptops at retail and installed Linux on them. These machines worked fine for awhile but didn’t have much staying power for a couple of reasons.

First, when you get a newer machine, there is always a risk the Linux kernel–the core of the operating system that contains the hardware drivers–will not have adequate support for graphics and wi-fi. I’ve run into problems with both when using retail laptops. Usually this is only a temporary problem, as newer versions of the kernel eventually catch up with the hardware, but it can still detract from the overall user experience in the interim.

(As an aside, I would personally avoid any PC with a Nvidia graphics card unless it is somehow necessary for your situation. In the past, I’ve seen kernel and distribution updates temporarily render a laptop unable to boot with Nvidia graphics. So to play it safe, I’d stick to computers with either integrated graphics processors from Intel, or AMD Radeon graphics chips.)

Second, most retail laptops are designed to prevent the user from upgrading any of the components. For example, I purchased a sub-$400 Samsung laptop from a retailer some years ago. It performed adequately on Linux but there was no way to upgrade the memory or hard drive without completely disassembling the unit.

My Current Linux/Lenovo Setup

My current approach to Linux hardware is to purchase refurbished systems originally designed for office use, such as Dell’s Optiplex or Lenovo’s ThinkPad lines. These machines are inexpensive and it is easy for the user to add memory or a new hard drive without the use of special tools or advanced technical knowledge.

The machine I use for work everyday is a Lenovo ThinkPad T420, which was first produced in 2011. The machine itself may be nearly eight years old, but I’ve swapped out the hard drive and memory for newer, better-performing components. And while the T420 is designed as a 14-inch laptop, I converted it into a desktop PC for my home office by attaching an external monitor, keyboard, and mouse.

Altogether, I spent less than $550 on my total setup, including paying just $230 for the refurbished T420 itself from a reputable refurbished laptop dealer on eBay. Here is a brief rundown of the components:

  • The CPU is an Intel i5 with 4 cores. When it comes to CPUs, I find the speed matters less than the number of cores. The Samsung laptop I mentioned earlier only had 2 cores, and it performed significantly slower than the older Lenovo running similar versions of Ubuntu. When you’re shopping for PCs, you’ll see a lot of different types of i3, i5, and i7 Intel processors listed. Frankly, as long as you get one with four cores I don’t think the specific line matters in most Linux use cases.
  • There’s 10 GB of memory in my T420. The laptop came with 4GB of memory in the form of two 2GB sticks. I swapped out one of the sticks for an 8GB unit. This is definitely more memory than I need for everyday work. But I would advise getting a machine with at least 8GB of RAM–and in no case less than 4GB. Now, you’ll note the minimum specifications for Ubuntu MATE listed above say the operating system can run on just 1GB of RAM. And that’s true. When I boot into Ubuntu MATE, the system only uses about 585 MB of memory. But once you start running applications–especially web browsers–things escalate quickly. Right now as I’m typing this post, my system is using 3.3GB of RAM.
  • Perhaps the most important upgrade I made to the T420 was replacing the existing hard drive with a solid-state drive (SSD). The SSD is significantly faster, to the point where there is virtually no delay when I open a program. I actually have 2 identical SSDs installed in the T420; the second SSD replaced the DVD drive and serves as one of my backup drives.
  • The external components–the monitor, mouse, and keyboard–are all off-the-shelf parts you can get from any major retailer. Linux is not finicky when it comes to this stuff.

Will My Computer Work Well with Linux?

If you have any questions about whether a particular make and model of a computer will work well with Linux, Canonical, the parent company of the Ubuntu distribution, maintains a regularly updated list of certified hardware. This includes all Dell, Lenovo, and other machines that support Ubuntu “out of the box.”

Is FOSS Right for Your Freelance Business? 3 Questions to Ask as Part of an Internal Software Audit

Before you consider switching to Linux from another operating system, it is critical to stop and think about the programs you actually use on a day-to-day basis. Many popular Windows and macOS business applications, such as Office 365 and Adobe’s Creative Cloud, are not available natively on Linux. (It is technically possible to use these programs on Linux with the aide of special software, but this is not something I would recommend in most cases.) That said, there are usually FOSS applications that perform many–if not most–of the same functions as their proprietary counterparts.

But even before you take a look at replacing your existing software library with FOSS, it is a good idea to conduct what I’ll call an internal software audit. Basically, ask yourself the following questions with respect to your current software usage and ongoing needs:

1. Do You Have More Software Than You Need?

I started my career as a paralegal, which largely revolved around Microsoft Office. When I later got into Linux and FOSS, I moved fairly seamlessly to the LibreOffice suite. But as my overall business transitioned from paralegal work to blog ghostwriting services, I found an all-in-one office suite was unnecessary. After all, you don’t need a full-service word processor to write blog posts.

Around this time, I learned about Markdown, a tool developed by John Gruber that allows you to write human-readable documents in plain text and easily export them into HTML. Today, I do all of my blog writing in Markdown using a simple FOSS application called Ghostwriter. Ghostwriter (pictured below) is a text editor that offers a number of features that are helpful to my work, including a running word count at the bottom of the screen, dark themes (i.e., white text on a black background), and auto-saving documents as I write them.

2019-01-01-ghoswriter-screenshot

2. Is Your Data Easily Accessible?

Using Markdown also led me to recognize the importance of keeping my documents in formats that do not depend on one specific program to read. For example, I use hledger, a plain-text accounting tool, to do my bookkeeping. Hledger literally stores the entire accounting journal, and any reports I create, in a human-readable text file. So I don’t even need hledger installed on a given computer to review and update my finances, just a text editor.

Similarly, I use a FOSS application called Zim to manage my actual writing business. Zim is a tool to create wiki pages on your local computer. (It is similar in function to Evernote and other note-taking programs.) Like Markdown, all data in Zim is stored in plain-text files that contain special markup to indicate things like bold text or numbered lists. This means I can open and quickly glance at my writing schedule with any text editor, even on my phone. No special software is required to read or edit the file.

Obviously, plain-text files are not going to work for every situation. If you have more complex accounting needs, for instance, you probably require a program that can read QIF files, which are commonly used by banks to provide account information. Fortunately, there are FOSS applications that can read such formats. That is why it is important to review not just the software you use, but also the file formats your data relies upon.

3. How Do You Interact with Other Users?

When I worked as a contract paralegal, a key part of my job was editing Microsoft Word documents. And while LibreOffice actually does a good job of opening and reading Word documents, there were always a few glitches when I returned a file to an attorney. Oftentimes, subtle formatting such as headers or footers would not appear the same in Word as in LibreOffice. It was not an insurmountable problem, but it was a reminder that the transition from FOSS to proprietary software is not always seamless. 

On the other hand, in my current freelance writing work I typically send finished blog posts to clients in a Google Docs file. Since Google Docs is a web-based application, it doesn’t matter what writing application I used to draft the post, or which operating system is installed on my PC. But if your own line of work requires you to frequently collaborate with others who rely on a specific piece of proprietary offline software–in particular, collaborating via Microsoft Office–switching to a FOSS alternative might be impractical at the present time.

No Linux Required

One thing to keep in mind is that Linux is a type of operating system, not a programming language. In other words, many FOSS applications that are commonly associated with Linux are actually platform agnostic and work just fine on other operating systems. In fact, the developers of all of the FOSS programs mentioned in this post–Ghostwriter, hledger, Zim, and LibreOffice–make Windows-ready installations available. (It should be possible to install these programs on macOS as well, although you may need to do some extra work.) So even if you are not prepared to consider a Linux-based operating system, you can still incorporate a wide variety of FOSS applications into your business workflow.

Welcome to cvilleFOSS: A Blog About Using Linux as a Self-Employed Professional

Six years ago, I started using Linux as my full-time computer operating system. Unlike many Linux newcomers, I actually came from the world of Apple’s OS X (now macOS) as opposed to Windows. And at first, I was not planning to make a drastic change. I was simply curious about Linux, which I first encountered in the late 1990s when you could still buy physical boxes containing distributions like Red Hat or Mandrake in bookstores. (And yes, this was also when we still had physical bookstores.)

In any case, the more I worked with Linux, the more I liked it. More to the point, I found I was more productive while using Linux than with macOS, which I often found too restrictive, or even Windows, which I used while working in office environments and saw as cluttered. Linux-based operating systems tend to strike a good balance between flexible and uncluttered, and as you gain more experience with the system, it becomes easier to tailor the computer to meet your exact needs.

cvilleFOSS is a blog designed to help introduce other freelancers and self-employed professionals learn about not just Linux, but free and open-source software (FOSS) in general. In fact, unlike many other Linux-focused blogs, podcasts, and YouTube channels, I won’t be spending much time comparing and contrasting Linux distributions and desktop environments. Instead, this blog’s primary focus will be on application software and “getting things done” in a daily working environment.

What Is a Linux “Distribution” and How Many Are There?

If you are new to Linux, the first thing you should probably learn is that “Linux” is not really an operating system. Instead, it is what’s known as a kernel, which is basically a group of core programs that allow applications to interface with the computer’s hardware. So when people, including myself, use Linux in everyday conversation, what we are really talking about is a “Linux-based operating system.”

And there are, in fact, hundreds of Linux-based operating systems. These are referred to as distributions. Since the Linux kernel is a type of FOSS, it can be adapted and redistributed by anyone who has the technical skill and resources. As of this writing, there are 276 known distributions listed on Distrowatch, a website that has tracked the growth and development of Linux-based and other FOSS operating systems since 2001.

Many of these distributions cater to a specific niche, such as running servers or providing support for users who speak and read a particular language. For purposes of cvilleFOSS, however, we’ll mostly be sticking to the Ubuntu family of Linux-based operating systems. Ubuntu is a Linux distribution published by Canonical Ltd., a privately held company based in the United Kingdom. Canonical, together with U.S.-based Red Hat and Germany-based SUSE, are effectively the “Big Three” companies whose business models revolve around supporting Linux and related FOSS projects.

Ubuntu itself has many derivatives, i.e. distributions that are based on Ubuntu but not necessarily produced by Canonical itself. In my daily work, I use Ubuntu MATE, which is classified as an official flavour of Ubuntu. This means that the Ubuntu MATE team receives some degree of infrastructure and support from Canonical–and the project’s lead developer, Martin Wimpress is himself a Canonical employee–but it is otherwise an independent, community-driven distribution.

What This Blog Will Not Do

Finally, I want to make three things clear at the inception of cvilleFOSS. First, the fact that I choose to discuss certain Linux distributions and FOSS applications should not be interpreted as a criticism or attack on any other software project. This message is admittedly directed primarily at existing Linux users. Some users develop a tribal loyalty to a particular project–especially desktop environments–and this spawns countless flame-wars on Reddit threads, YouTube comment sections, and so forth. As I said in the previous section, I happen to use Ubuntu MATE. But this doesn’t mean that the other Ubuntu official flavours and derivatives are bad or inferior. It’s simply a matter of personal preference.

Second, my intentions in writing about Linux and FOSS are not to “convert” anyone away from using Windows or macOS. Heck, I continue to use a Windows PC in addition to multiple Linux machines. My goal is to provide useful information that other self-employed and work-from-home professionals can use to evaluate whether Linux and FOSS applications are right for their needs.

Third, although Linux is often perceived as an operating system geared towards software developers, systems administrators, and other “technical” professionals, I am not any of those things. I’m a freelance writer who provides blog ghostwriting services to law firms and small businesses. (I am based in Charlottesville, Virginia, hence the “cville” in the blog name.) Indeed, the main reason I started this blog was to reach out to other non-technical professionals who might benefit from using Linux and FOSS applications.

With those caveats, I look forward to writing this blog and, hopefully, communicating with those of you who choose to read it. I will not be maintaining a comments section for cvilleFOSS, but please feel free to email me at smo@skipoliva.com with any questions or concerns.