The advent of Linux app support on Chromebooks has fundamentally altered the perception of these devices, transforming them from primarily web-browsing machines into versatile computing platforms capable of handling a much broader spectrum of tasks. This evolution opens up a world of possibilities for users who previously found Chromebooks restrictive for anything beyond basic online activities. Whether you’re a developer seeking a lightweight environment for coding, a creative professional looking for powerful desktop applications, or simply an enthusiast eager to explore the vast Linux software repository, this guide will walk you through the process of enabling and utilizing Linux apps on your Chromebook.

Understanding the Linux Environment on ChromeOS
ChromeOS has integrated a Linux development environment, codenamed “Crostini,” which allows users to run Linux applications directly on their Chromebooks. This is not a full dual-boot or a virtual machine in the traditional sense. Instead, Crostini utilizes containerization technology, specifically Linux containers, to run a Debian-based Linux distribution within a virtual machine. This approach offers several key advantages:
- Security: The Linux environment is sandboxed, meaning it’s isolated from the main ChromeOS system. This ensures that even if a Linux application were to malfunction or contain malware, it would not compromise the security or stability of your Chromebook.
- Performance: While it runs in a virtualized environment, Crostini is optimized for Chromebook hardware. Most common Linux applications perform remarkably well, with minimal performance degradation for everyday tasks.
- Seamless Integration: Linux applications appear as native apps within your ChromeOS launcher. You can pin them to your shelf, resize their windows, and interact with them just like any other ChromeOS app. Files can be easily shared between the Linux environment and your ChromeOS files.
Before diving into the installation process, it’s important to confirm your Chromebook’s compatibility. While most modern Chromebooks released in the last few years support Linux app installation, older or lower-spec models might not. Generally, devices running ChromeOS 69 or later are likely to support this feature. You can check your ChromeOS version by navigating to Settings > About ChromeOS.
Enabling the Linux Development Environment
The process to enable the Linux environment is straightforward and can be done directly through your Chromebook’s settings.
Step 1: Access ChromeOS Settings
Click on the time in the bottom-right corner of your screen to open the Quick Settings panel. Then, click on the gear icon (Settings).
Step 2: Locate the Linux Option
In the Settings menu, scroll down the left-hand sidebar until you find the “Advanced” section. Click on it to expand. Within the Advanced options, you should see an item labeled “Developers.” Click on “Developers.”
Step 3: Turn On Linux
You will see an option for “Linux development environment.” Click the “Turn on” button next to it. A setup wizard will appear.
Step 4: Follow the Setup Wizard
The wizard will guide you through the initial setup. You’ll be prompted to choose a username for your Linux environment and a disk size for your Linux files. For most users, the default username and disk size (typically 10 GB) are sufficient. However, if you plan to install many large applications or work with significant data within the Linux environment, you may want to allocate more disk space. The setup process involves downloading and installing the necessary components, which can take a few minutes.
Once the setup is complete, a Linux terminal window will automatically open. This signifies that your Linux development environment is ready to use.
Installing Linux Applications
With the Linux development environment enabled, you can now install a vast array of Linux applications using the command line. The default Linux distribution is Debian, which uses the Advanced Package Tool (APT) as its package manager.
Using the Terminal to Install Software
The terminal is your primary interface for managing Linux applications. You’ll use commands to update your package lists, install new software, and remove unwanted applications.
Updating Package Lists and Upgrading Existing Packages
Before installing any new software, it’s a good practice to update your package lists and upgrade any existing packages. This ensures you have the latest versions and that your system is up-to-date.
- Open the Terminal: If it’s not already open, you can find the “Terminal” app in your Chromebook’s app launcher.
- Update Package Lists: Type the following command and press Enter:
bash
sudo apt update
This command fetches the latest information about available packages from the software repositories. - Upgrade Installed Packages: After updating the lists, it’s recommended to upgrade all installed packages to their latest versions:
bash
sudo apt upgrade
This process might take some time, depending on how many packages need upgrading and your internet connection speed. You may be prompted to confirm the upgrade by typing ‘Y’ and pressing Enter.
Installing New Applications
Once your system is updated, you can install new applications. You’ll need to know the package name of the software you want to install.
-
Install a Specific Application: For example, to install the popular text editor
nano, you would type:sudo apt install nanoTo install an application like
gimp(an image editor), you would use:sudo apt install gimpIf the package name isn’t immediately obvious, you can often find it through online searches for “install [application name] debian” or by using the
apt searchcommand to look for it. -
Using
apt search: If you’re unsure of the exact package name, you can search for it:
bash
apt search <keyword>
For instance,apt search image editorwould list packages related to image editing.
Managing Installed Applications
Keeping your system clean and organized is as important as installing new software.
- Removing Applications: To uninstall an application, use the
removecommand. For example, to removenano:
bash
sudo apt remove nano
- Removing Applications and Configuration Files: If you want to remove an application and its configuration files, use the
purgecommand:
bash
sudo apt purge nano
- Autoremove Unused Packages: Over time, installing and removing software can leave behind dependencies that are no longer needed. The
autoremovecommand cleans these up:
bash
sudo apt autoremove
Installing Applications with Graphical Interfaces
Many Linux applications have graphical user interfaces (GUIs) that integrate seamlessly into your ChromeOS desktop. After installation via the terminal, these applications will appear in your app launcher, just like any other ChromeOS app. You can launch them by searching for their name in the launcher or by clicking their icon.
Commonly installed graphical Linux applications include:
- Text Editors: VS Code, Sublime Text (requires adding a repository), Geany.
- Programming Tools: Python, Node.js, Git, Docker.
- Image Editors: GIMP, Inkscape.
- Media Players: VLC.
- Productivity Tools: LibreOffice.

Advanced Installation Methods
For some applications, especially those not readily available in the default Debian repositories, you might need to use alternative installation methods.
Installing .deb Files
Occasionally, you may download a .deb package file directly from a software vendor’s website. You can install these files from the terminal.
- Download the
.debfile: Save it to a location accessible from your Linux environment (e.g., theDownloadsfolder within your Linux files). - Navigate to the directory: Open the terminal and use the
cdcommand to navigate to the folder where you saved the file. For example:
bash
cd ~/Downloads
- Install the
.debfile: Use thedpkgcommand with the-iflag, followed by the filename:
bash
sudo dpkg -i <your_package_name>.deb
If you encounter dependency errors, you can often fix them by running:
bash
sudo apt --fix-broken install
This command will attempt to resolve any missing dependencies and complete the installation.
Adding Third-Party Repositories
Some software, particularly proprietary or frequently updated applications, is not included in the standard Debian repositories. In such cases, you might need to add a third-party repository to your system’s software sources. This is common for applications like Google Chrome (the Linux version, for example), or specific development tools.
- Add the repository: This usually involves adding a line to your
sources.listfile or creating a new file in/etc/apt/sources.list.d/. The specific commands vary depending on the software provider. For instance, to add a repository for a hypothetical application “example-app”:
bash
# Add the GPG key
wget -qO - https://example.com/repository/gpg-key.pub | sudo apt-key add -
# Add the repository to sources.list
echo "deb https://example.com/repository/debian stable main" | sudo tee /etc/apt/sources.list.d/example-app.list
- Update package lists: After adding the repository, you must update your package lists to include the new sources:
bash
sudo apt update
- Install the application: Now you can install the application as usual:
bash
sudo apt install example-app
Caution: Be judicious when adding third-party repositories. Only add sources from trusted providers, as they can potentially introduce security risks or system instability if compromised.
Integrating Linux Apps with ChromeOS
One of the most compelling aspects of running Linux apps on Chromebooks is how seamlessly they integrate with the ChromeOS environment.
File Sharing
Accessing files between ChromeOS and your Linux environment is straightforward.
- From Linux to ChromeOS: Within your Linux terminal, your ChromeOS files are typically mounted under
/mnt/chromeos/. For example, your “My files” directory can often be accessed at/mnt/chromeos/GoogleDrive/MyDriveor similar paths, depending on how your ChromeOS is configured. - From ChromeOS to Linux: When you open a file from your ChromeOS “My files” or Google Drive, you can often choose to “Open with…” and select a Linux application. For example, if you have GIMP installed, you could open a JPG file from your Downloads folder, right-click, select “Open with…”, and choose GIMP. This automatically copies the file into your Linux environment for editing. You can also grant specific folders from your ChromeOS “My files” to be accessible within the Linux file manager.
To manage file sharing more explicitly:
- Open your Linux Files app: This app is separate from your ChromeOS “Files” app.
- Navigate to “Linux files”: This is the dedicated storage for your Linux applications and data.
- Access shared ChromeOS folders: You should see icons for “Google Drive,” “My files,” and potentially other cloud storage services. You can drag and drop files between these and the “Linux files” directory.
- Grant folder permissions: For more advanced sharing, you can right-click on a folder within your Linux file manager and look for options to grant or revoke access to specific ChromeOS folders.
App Launcher and Shelf Integration
Linux applications, once installed, appear in your Chromebook’s app launcher alongside your ChromeOS and Android apps. You can search for them by name and launch them with a single click.
Furthermore, you can “pin” your frequently used Linux applications to the Chromebook’s shelf (the taskbar at the bottom of the screen) for quick access. Right-click on the app icon in the app launcher or on the shelf itself to see pinning options.
Running Multiple Linux Apps
Your Chromebook can run multiple Linux applications simultaneously. You can resize their windows, minimize them, and switch between them using the standard ChromeOS window management tools. The performance will depend on your Chromebook’s hardware specifications (CPU, RAM) and the demands of the applications you are running.
Troubleshooting Common Issues
While the Linux integration is robust, you might occasionally encounter issues.
“Unable to start container” or “Linux is not ready”
This can happen if the Linux container failed to start correctly or if an update interrupted the process.
- Restart your Chromebook: This is often the simplest and most effective first step.
- Turn off and on Linux: Go to Settings > Advanced > Developers and toggle the “Linux development environment” off, then back on. This will often reset the container.
- Reinstall Linux: As a last resort, you can uninstall and then re-enable the Linux development environment. Be aware that this will erase all data within your Linux environment, so back up any important files first.
Slow Performance
If your Linux apps are running slowly, consider the following:
- Close unnecessary Linux apps: Just like on any computer, running too many demanding applications can slow things down.
- Close unnecessary Chrome tabs: ChromeOS itself requires resources. Too many open tabs can impact the performance of the Linux environment.
- Check your Chromebook’s hardware: Older or lower-spec Chromebooks will naturally struggle with resource-intensive applications.
- Free up disk space: Ensure your Linux container has sufficient free space. If it’s nearly full, performance can degrade.
Application Not Launching or Crashing
- Ensure the application is fully installed: Sometimes, an installation might be interrupted. Try reinstalling the application.
- Check for updates: Ensure both your Linux system (
sudo apt update && sudo apt upgrade) and the specific application are up-to-date. - Search for known issues: Look online for specific error messages or known bugs related to the application on Debian or ChromeOS.

Network Connectivity Issues within Linux
While rare, sometimes network access within the Linux container can be problematic.
- Ensure ChromeOS Wi-Fi is connected: The Linux environment relies on the host ChromeOS network connection.
- Restart Linux: As mentioned before, toggling Linux off and on can resolve temporary network hiccups.
By following these steps and understanding the capabilities of the Linux development environment on your Chromebook, you can unlock a new level of productivity and flexibility, allowing you to leverage powerful desktop applications directly from your portable device.
