Chrome OS, itself based on the Linux kernel, can now run Linux apps — the circle is complete. If you’ve got the latest version of Chrome OS, and a fairly new Chromebook, you can now install some of the best applications Linux has to offer. Here’s how to go about it, and why you might do it in the first place.
The feature is officially called Crostini inside Google, a way of running Linux programs in secure containers so the overall security of Chrome OS—one of the key selling points of Chromebooks—isn’t compromised in any way (the default Linux container that Crostini installs is Debian). It’s the same way that Android apps work on Chromebooks.
And Crostini is following the same path as support for Android apps did: slow, steady steps forward, with a lot of bugs and inconsistencies along the way. Now though, Crostini has arrived in the stable channel of Chrome OS as an optional feature, and based on the testing we’ve done, it’s almost ready for prime time.
As this excellent XDA Developers article points out, your Linux apps are essentially running inside a container inside a virtual machine. There’s a lot of hard work going on behind the scenes from Google engineers (see here for some deep technical dives), but as far as end users are concerned, it already works pretty well, and is getting better very quickly.
Some of the thrill of getting Linux apps up and running on a Chromebook is tempered by the fact that many of these devices can now run Android apps too. That’s gone a long way to improving the Chromebook as a gaming device, as a productivity device, and as a device that’s actually useful offline.
Nevertheless there’s still something undeniably cool (and useful) about firing up GIMP or Firefox or LibreOffice on your Chromebook, and it opens up a whole host of extra possibilities for these lightweight laptops (not least for coders). On the best Chromebooks you can now run web apps, Android apps, and desktop Linux apps, which isn’t bad for a lightweight OS.
Why you would want to do this
Chrome OS has no doubt improved a lot since its debut in 2011, and part of that improvement relates to the speed and capabilities of the apps we’ve now got on the web—including offline support. As we’ve said, the addition of Android app support means you can do more than ever before with your Chromebook.
That said, web apps still lag behind their desktop counterparts when it comes to power, complexity, and how much you can do with them without an internet connection. Programs like GIMP or LibreOffice don’t really care if you’ve got a Wi-Fi signal or not, and that can be crucial to productivity on the go.
If you’ve got a Chromebook with a decent amount of local storage—like, say, a Pixelbook—Linux also gives you better control over your local video and music files than you get with an online app or a Chrome tab. You can finally take your library with you and enjoy it with or without web access.
Linux support is available in the latest stable version of Chrome OS, which at the time of writing is version 69 (nice). If it hasn’t already arrived on your Chromebook, it should do soon, but the functionality is also limited by Chromebook model. Google doesn’t seem to have published a definitive list, but here’s one from XDA Developers.
The simplest way to check whether your Chromebook meets the criteria is to open the Chrome menu (three dots, top right), choose Help and About Chrome OS, then make sure you’re on version 69 or later. Then, choose Settings from the Chrome menu, and see if there’s an option labelled Linux (Beta).
If there is, you’re ready to go. Note that beta label though—it’s still early days for Linux support on Chrome OS, so you might run into a few hiccups and problems along the way (audio support and accelerated graphics are among the missing features at the moment). If you’re prepared to put up with that, go ahead and click Turn on under Linux (beta). Click Install on the next screen to download the necessary components. It took me about five minutes to get up and running.
If you’re completely new to Linux and Debian, the APT command line interface that you get dumped into straight from the off might be a little daunting, but you’ll soon start to find your way around. Your first command should be “sudo apt-get update” to make sure you’re running the latest software. As you start to get more apps installed, it’s also handy to run “sudo apt-get upgrade”, which installs any available updates for the programs you’ve installed.
You can install programs with a “sudo apt-get install” command followed by the name of the application you want to grab. Then, type the app name to launch it. So, “sudo apt-get install gimp” would install the GIMP image editor, and “sudo apt-get install vlc” would install the VLC media player on your Chromebook.
And yes you can install Firefox on your Chromebook: “sudo apt-get install firefox-esr” should do it. Just in case you haven’t memorized all the package names for Debian you can find a full list here.
Not every app is going to run smoothly, at least not yet, though most of the ones I fired up ran properly. Android Police has an excellent list of programs that are currently working, including LibreOffice and the Geary email client, and of course GIMP—instantly solving all of your Chrome OS image editingneeds.
Android Police (again) suggests getting the Gnome Software Center up and running to make it easier to install Linux applications, but for whatever reason this didn’t work for us—the interface appeared but no apps showed up. It’s these sort of teething troubles that you’re likely to come across as you dive into Crostini.
If you want to try and get Gnome get up, the “sudo apt-get install gnome-software gnome-packagekit” command should get you going. If you can’t get it working successfully, you’ll need to stick to the Terminal command line for the time being (you can always find it in the Chrome OS app launcher).
Any programs you add through the Terminal will show up in the standard Chrome OS launcher, so you don’t have to go back to the command line each time. What’s more, they now work as persistent apps, so they will remember previous activity inside the app.
Remember this is still very early days: This is the period of time in software development where stuff starts happening and stops happening for no apparent reason, and where you might end up rebooting more than you normally would. Linux apps can start and stop working with each successive Chrome OS update (that’s why it’s called a beta), so don’t panic too much when you hit a problem.