* crew: Set dynamic linker path in linker Signed-off-by: SupeChicken666 <me@supechicken666.dev> Fix constant order Signed-off-by: SupeChicken666 <me@supechicken666.dev> Suggested changes Signed-off-by: SupeChicken666 <me@supechicken666.dev> Merge CREW_LDFLAGS and CREW_LINKER_FLAGS Signed-off-by: SupeChicken666 <me@supechicken666.dev> Adjust argument order Signed-off-by: SupeChicken666 <me@supechicken666.dev> Fix CREW_GLIBC_PREFIX, add LIBRARY_PATH for gcc Signed-off-by: SupeChicken666 <me@supechicken666.dev> Add some patches from Chromium OS Signed-off-by: SupeChicken666 <me@supechicken666.dev> Bump version Signed-off-by: SupeChicken666 <me@supechicken666.dev> Add install-locales line Signed-off-by: SupeChicken666 <me@supechicken666.dev> Add comments Signed-off-by: SupeChicken666 <me@supechicken666.dev> Remove LD_LIBRARY_PATH from CREW_ENV_OPTIONS Signed-off-by: SupeChicken666 <me@supechicken666.dev> Add `CREW_GLIBC_PREFIX` to linker search path Signed-off-by: SupeChicken666 <me@supechicken666.dev> Set minimum kernel version to 3.2 for all architectures Signed-off-by: SupeChicken666 <me@supechicken666.dev> Pass CERW_PREFIX with macro Signed-off-by: SupeChicken666 <me@supechicken666.dev> Fix asprintf usage Signed-off-by: SupeChicken666 <me@supechicken666.dev> Fix macro usage Signed-off-by: SupeChicken666 <me@supechicken666.dev> Move all patches into a separate repo Signed-off-by: SupeChicken666 <me@supechicken666.dev> * Add finishing touches :) Signed-off-by: SupeChicken666 <me@supechicken666.dev> Set compiler search path also Signed-off-by: SupeChicken666 <me@supechicken666.dev> Fix installation path Signed-off-by: SupeChicken666 <me@supechicken666.dev> Rebuilt binaries with same version Signed-off-by: SupeChicken666 <me@supechicken666.dev> * lint Signed-off-by: Satadru Pramanik <satadru@gmail.com> * bump version Signed-off-by: Satadru Pramanik <satadru@gmail.com> * Fix already initialized constant error. Signed-off-by: Satadru Pramanik <satadru@gmail.com> * Merge changes from #11828 Signed-off-by: SupeChicken666 <me@supechicken666.dev> * crew: Run `upx -d` and `patchelf` on existing/to-be-installed packages Signed-off-by: SupeChicken666 <me@supechicken666.dev> * Fix syntax Signed-off-by: SupeChicken666 <me@supechicken666.dev> Silence output Signed-off-by: SupeChicken666 <me@supechicken666.dev> * Suggested changes Signed-off-by: SupeChicken666 <me@supechicken666.dev> Re-add `2> /dev/null` to upx commands Signed-off-by: SupeChicken666 <me@supechicken666.dev> Fix `patchelf` usage Signed-off-by: SupeChicken666 <me@supechicken666.dev> Correct function name Signed-off-by: SupeChicken666 <me@supechicken666.dev> Fix CI build test Signed-off-by: SupeChicken666 <me@supechicken666.dev> Make rubocop happy Signed-off-by: SupeChicken666 <me@supechicken666.dev> * Update search cache for on postinstall Signed-off-by: SupeChicken666 <me@supechicken666.dev> * Add a config file for ld.so Signed-off-by: SupeChicken666 <me@supechicken666.dev> * Suggested changes Signed-off-by: SupeChicken666 <me@supechicken666.dev> * Add built packages for linux/386 to set_dynamic_linker * Add built packages for linux/amd64 to set_dynamic_linker * Add built packages for linux/arm/v7 to set_dynamic_linker * Update install.sh Signed-off-by: SupeChicken666 <me@supechicken666.dev> * Fix rubocop Signed-off-by: SupeChicken666 <me@supechicken666.dev> --------- Signed-off-by: SupeChicken666 <me@supechicken666.dev> Signed-off-by: Satadru Pramanik <satadru@gmail.com> Co-authored-by: Satadru Pramanik <satadru@gmail.com> Co-authored-by: supechicken <supechicken@users.noreply.github.com>
Chat With Us
Note
Discord is not currently syncing messages with Slack
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.
Warning
On ChromeOS M117+, the Chromebrew installer will not work in
croshanymore 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:
bash <(curl -L git.io/vddgY) && . ~/.bashrc
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, compatible, incompatible, essential, installed 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) |
| upload | upload binaries for all or specific package(s) |
| upstream | check if an upstream version is available for 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-2025 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.
