/chromebrew

Package manager for Chrome OS

Primary LanguageRubyGNU General Public License v3.0GPL-3.0

Chromebrew icon

Chromebrew

The Missing Package Manager For Chrome OS

Chat With Us

Discord is not currently syncing messages with Slack

Slack Invite Discord Invite

Overview

Chromebooks with Chrome OS 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. Please be aware of the fact that developer mode is insecure if not properly configured.

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

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.

Open the terminal with Ctrl+Alt+T and type shell. If this command returns ERROR: unknown command: shell, please have a second look at the prerequisites and make sure your Chromebook is in developer mode.

Then download and 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
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
update update crew itself
upgrade update 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-2023 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