Chromebrew: A Package Manager That Turns Chrome OS Into a Usable Linux Distro
Package manager for Chrome OS. The only missing pieces to use them as full-featured Linux distro were gcc and make with their dependencies.
At a glance
- What is it?
- Chromebrew brings a package manager to Chrome OS, filling the gap left by missing gcc and make. It supports multiple architectures but has specific constraints around developer mode and Chrome OS channels.
- Who is it for?
- Chromebrew is for Chromebook owners who want a fuller Linux experience on their device, especially those comfortable with developer mode and the command line. It is not for users on beta, dev, or Canary channels, nor for those who want a graphical package manager or who need official support for i686 or aarch64.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly Ruby, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 14, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
The Problem Chromebrew Solves
Chrome OS runs a Linux kernel, but it lacks the traditional userland tools that make a Linux distribution usable for development. The README states that the only missing pieces were gcc and make with their dependencies. Chromebrew addresses this by providing a package manager that installs these tools and many others. It is for users who want to compile software, run scripts, or use command-line utilities on their Chromebook without relying on web apps or virtual machines. The project targets a specific audience: those willing to enable developer mode and accept the associated risks.
How Chromebrew Works: Architecture and Data Flow
Chromebrew is a Ruby-based package manager that runs on Chrome OS. It uses a command-line interface called crew. The core mechanism is similar to other package managers: it downloads packages, resolves dependencies, and installs them into a designated directory. The README mentions that Chromebrew wipes its BREW_DIR, which is /usr/local/tmp/crew by default, after installation unless you pass -k or --keep. This suggests that the tool manages a temporary build area and cleans it to save space. The package definitions are stored in a packages directory in the repository. The tool also supports building from source, as indicated by the build command, which produces an archive and checksum. The data flow starts with a command like crew install, which prompts for confirmation, then resolves and installs dependencies.
Getting Started: Installation and Prerequisites
The prerequisites are strict. You need a Chromebook with developer mode enabled. The README warns that developer mode is insecure if not properly configured, and it recommends setting a password and enabling signed boot. The installation command is a one-liner: bash <(curl -L git.io/vddgY) && . ~/.bashrc. This must be run from a VT-2 terminal session, accessed with Ctrl+Alt+Right arrow, logged in as the chronos user. A significant limitation is that on Chrome OS M117+, the installer will not work in crosh due to security changes. Also, the beta, dev, and Canary channels are not supported and will cause major issues. So the installation path is narrow: stable channel, developer mode, VT-2, and a specific command.
The crew Command: A Full Suite of Package Management Tools
The crew command offers a wide range of subcommands, more than many package managers. You have standard operations like install, remove, upgrade, and search. But there are also specialized ones: deps shows dependencies, whatdepends shows reverse dependencies, whatprovides searches for packages that contain a given file, and diskstat shows disk space usage. The build command compiles from source and stores the archive and checksum in the current directory, which is useful for creating custom packages. The upload command uploads binaries, indicating a mechanism for sharing prebuilt packages. The list command can show available, compatible, incompatible, essential, and installed packages. This breadth suggests a mature tool, but it also means a learning curve. The README does not provide examples for each command, so users must rely on the wiki or help command.
Supported Architectures and Their Caveats
The README lists four architectures: x86_64, i686, armv7l, and aarch64. However, support is not equal. For i686, Google has discontinued support, so Chromebrew provides limited support: CLI programs may work, but GUI apps are no longer supported. For aarch64, the project only provides armv7l packages, even if the Chromebook has an aarch64 userspace. This means aarch64 users get 32-bit ARM packages, which may affect performance or compatibility. The README references issue #8044 for details. This is a genuine limitation: if you have a modern ARM Chromebook, you might not get native 64-bit packages. The x86_64 support appears full, but the documentation does not guarantee that every package is available for every architecture. Users should check the packages directory and the compatibility list before assuming a package will install.
Maintenance and Upgrade Considerations
The repository's last push was January 13, 2017, and the latest release is 0.4.1 from the same date. This is a red flag for a project that interacts with a fast-moving operating system like Chrome OS. The README includes warnings about Chrome OS M117 changes, which suggests the project has had to adapt to security updates, but the last push predates M117 by several years. The project is not archived, so it may still receive updates, but the release history shows long gaps: v0.4 was in 2017, v0.3.1 in 2015. This means the tools may lag behind Chrome OS updates. The upgrade command updates crew itself, and update_package_file updates binary hashes, so there is a mechanism for maintenance. However, the age of the last push means you should verify that the current version works with your Chrome OS version before relying on it. The license is GPL-3.0-or-later, which has implications if you modify and distribute the tool, but it is permissive for personal use.
A Real Alternative: The Approach of Linux Containers
The main alternative to Chromebrew is running a Linux container or virtual machine, such as Crostini on Chrome OS. Crostini provides a full Linux environment with a Debian-based distribution, complete with its own package manager like apt. The difference in approach is fundamental: Chromebrew installs packages directly into the Chrome OS filesystem, while Crostini isolates the Linux environment in a container. This means Chromebrew can potentially access hardware more directly, but it also risks breaking the system if packages conflict with Chrome OS components. Crostini is more secure because it runs in a sandbox, and it is officially supported by Google, so it receives regular updates. However, Crostini may have performance overhead and does not provide the same level of direct system access. If you need a full Linux distribution with a mature package ecosystem, Crostini is a safer choice. Chromebrew is for those who want a lightweight, direct approach without the overhead of a container.
Editorial conclusion
Chromebrew is for Chromebook owners who want a fuller Linux experience on their device, especially those comfortable with developer mode and the command line. It is not for users on beta, dev, or Canary channels, nor for those who want a graphical package manager or who need official support for i686 or aarch64. Before adopting, verify your Chrome OS channel is stable and that your device's architecture is supported, and be prepared to handle the security implications of developer mode. The project's last push was in 2017, so check the repository's current state and issue tracker for recent activity and compatibility with your Chrome OS version.
Community notes