Skip to content

chromebrew/chromebrew

Repository files navigation

Chromebrew icon

Chromebrew

The Missing Package Manager For Chrome OS

Chat With Us

Note

Discord is not currently syncing messages with Slack

Slack Invite Discord Invite

Overview

Chromebooks with ChromeOS run a Linux kernel. The only missing pieces to use them as full-featured Linux distro were gcc and make with their dependencies. Well, these pieces aren't missing anymore. Say hello to Chromebrew!

Prerequisites

You will need a Chromebook with developer mode enabled. To do so, select your device on the ChromiumOS Wiki and follow the instructions listed there.

Warning

Please be aware of the fact that developer mode is insecure if not properly configured.

Tip

Setting a password as instructed in the VT-2 login screen is recommended. It is also recommended to enable signed boot:

sudo chromeos-setdevpasswd
sudo crossystem dev_boot_signed_only=1

Supported Systems

Architecture Supported?
x86_64 Yes
i686 Yes*
armv7l Yes
aarch64 Yes

* We can only provide limited support for i686 since Google has discontinued support. Although we can no longer support GUI apps, we will try to continue to support CLI programs.

Installation

Important

The beta, dev, and Canary channels are not supported and should not be used with Chromebrew. Failure to take notice of this warning will cause major issues with your Chromebrew installation.

See issue #2890 and the FAQ for more details.

Warning

On ChromeOS M117+, the Chromebrew installer will not work in crosh anymore due to the security changes introduced in ChromeOS M117.

Open a VT-2 terminal session with Ctrl+Alt+-> and login with the chronos user and password if set above. (if you are unable to do this, please have a second look at the prerequisites and make sure your Chromebook is in developer mode)

Then run the installation script below:

exec bash --init-file <(curl -Ls git.io/vddgY)

Help

Please check out the wiki to find out more information about Chromebrew including helpful tips, resource links and frequently asked questions.

Also please check existing issues before submitting a new one.

Usage

crew <command> <package1> [<package2> ...]

Where available commands are:

Command Description
build build package(s) from source and store the archive and checksum in the current working directory
check check packages(s)
const display constant(s)
deps display dependencies of package(s)
download download package(s) to CREW_BREW_DIR (/usr/local/tmp/crew by default), but don't install
files display installed files of package(s)
help get information about command usage
install install package(s) along with dependencies after prompting for confirmation
list available, installed, compatible or incompatible packages
postinstall display postinstall messages of package(s)
prop display all package boolean properties
reinstall remove and install package(s)
remove remove package(s)
search look for package(s)
sysinfo show system information in markdown style
test test crew command(s)
update update crew itself
upgrade update all or specific package(s)
upload upload binaries for all or specific package(s)
whatprovides regex search for package(s) that contains file(s)

Available packages are listed in the packages directory.

Chromebrew will wipe its BREW_DIR (/usr/local/tmp/crew by default) after installation unless you pass -k or --keep when running crew install.

crew install --keep [...]

License

Copyright 2013-2024 Michal Siwek and all the awesome contributors.

This project including all of its source files is released under the terms of GNU General Public License (version 3 or later). This project embeds docopt.rb at lib/docopt.rb. We retain its MIT license.

GNU General Public License MIT License