Skip to content

Instantly share code, notes, and snippets.

@rachelmyers
Last active October 25, 2023 10:00
Show Gist options
  • Star 61 You must be signed in to star a gist
  • Fork 10 You must be signed in to fork a gist
  • Save rachelmyers/d7023ef34e58fe925f9c to your computer and use it in GitHub Desktop.
Save rachelmyers/d7023ef34e58fe925f9c to your computer and use it in GitHub Desktop.
How I set up my Chromebooks' dev environment

Chromebook Setup Options

Option 1: Stay in Chrome OS

If you're writing bare-bones javascript for the browser, creating Chrome Apps and Extensions, or using remote coding apps like cloud9, Koding, or Nitrous, you may not need to install Ubuntu. Some tutorials can be done entirely within the browser. The tradeoff is that you won't have a full-featured command line, and you may hit a point where you can't install something that you need.

To start coding within Chrome OS, install Text or Caret as a text editor. (Text stores files in Google Docs and Caret stores the files locally on your machine, which may help you choose.) After that, you're good to go, since Chromebooks come with a browser installed.

Option 2: Install Ubuntu and run a traditional development environment

Enable Developer Mode:

  • Hold down Esc + Refresh + Power to prompt a restart
  • Press Control-D during restart to enter developer mode
  • Press Enter to confirm developer mode and wait to hear a beep; it takes about a minute to reboot from here
  • Complete the setup steps like entering the wifi info and google account
  • If something goes wrong https://github.com/dnschneid/crouton#usage has some troubleshooting help

Download Crouton and your editor:

  • Download Crouton: https://goo.gl/fd3zc (or via https://github.com/dnscheid/crouton), to use Ubuntu on a Chromebook
  • Pro Tip: Download things you'll want to run in Ubuntu before booting into it; the ~/Downloads file is shared, and it's nice to minimize use of the default Ubuntu browser
  • For example, download your editor now; you can get Atom (atom-amd64.deb) from the Atom releases page, though it needs some love to not crash on some ARM Chromebooks. (If you really need to clone down and compile Vim, you'll have to wait until after you have git.)

Install Crouton to start running Ubuntu:

  • Open a chrosh shell: In Chrome, use the shortcut Ctrl + Alt + t, type shell, and hit enter
  • Run sudo sh ~/Downloads/crouton -t xfce to install Ubuntu (assuming it's sitting in your Downloads folder)
  • Start Ubuntu with the command sudo enter-chroot startxfce4 or sudo startxfce4
  • From Ubuntu, you can go back to Chrome OS, by clicking "log out" from the top, left menu

Install apt-get:

  • Open the command prompt
  • Run sudo apt-get update
  • Be more forceful (sudo apt-get -f install) if the update fails

Install Git:

  • sudo apt-get install git, and type Y when it asks to continue
  • sudo apt-get install libnss3-dev, and type Y when it asks to continue

Minimal Git configuration:

  • git config --global user.name "Your Actual Name"
  • git config --global user.email "Your Actual Email"
  • If you want to use a remote, like GitHub, set up SSH keys

Install an editor:

  • If not downloaded, download an editor (atom-amd64.deb from the atom releases page, for example)
  • Run sudo dpkg --install ~/Downloads/atom-amd64.deb to install it
  • To use another editor, repeat those steps (download it and install it) for the editor of your choice

Install Ruby:

  • sudo apt-get install curl
  • command curl -sSl https://rvm.io/mpapis.asc | gpg --import- (because RVM needs to match signatures)
  • curl -L get.rvm.io | bash -s stable to install ruby
  • Close and reopen terminal
  • Confirm rvm is there by running rvm -v and getting good feedback, like ruby 2.2.2, rather than an error
  • Use /bin/bash --login if RVM won't let you set a version.
  • Install and set a default ruby version; this uses 2.2.2 as the example, but change it to fit what you need:
    • rvm install 2.2.2
    • rvm use 2.2.2
    • rvm -- default use 2.2.2

Getting started

  • Install Chrome. (I know, it's weird to reinstall Chrome on a Chromebook. Operating Systems ¯\_(ツ)_/¯)
  • If you're cloning an existing project git clone <whatever you want to clone>
  • If you're starting a new project, then gem install bundler is a good starting point for ruby projects, for example
@irom77
Copy link

irom77 commented Apr 15, 2017

Will all this work on Chromebook Plus ? What about vscode ?

@benjaminadk
Copy link

re-install chrome? i was about to try this but that line made me wonder if I am about to lose 2years of stuff on my chromebook....? is that what would happen or do we re-install for some other reason?

@Altiano
Copy link

Altiano commented Jun 21, 2017

@benjaminadk I think because it already use Ubuntu that chrome is no longer exist

@watersb
Copy link

watersb commented Aug 26, 2017

I have explored the Crouton method and I did actually get VS Code running.
Thanks to https://code.headmelted.com/

However, my tiny Acer CB3 is not up to the task. Very laggy, out of RAM. So much overhead, not at all an approach for which this Chromebook was designed.

I also briefly played with GalliumOS, a native Linux optimized for Chromebooks. But in general, I prefer the Chrome OS system design, so I'm forcing myself to figure it out.

@sambfreund
Copy link

Thanks for the post. I currently use Gallium for coding purposes. But switch to ChromeOS for all other basic tasks. Running with an Acer Chromebook 14. Crouton wouldn't set up Linux properly for me so I opted for GalliumOS route, and all has been working well so far.

@gapradel
Copy link

gapradel commented Nov 7, 2017

Thanks for the info Rachel, just got an acer chromebook 14 and your instructions helped me turn it in to a basic coding machine.

@jannaee
Copy link

jannaee commented Jan 17, 2018

Thanks so much for this wonderfully organized and well written document. I have an Acer Chromebook 14 as well and everything went smoothly. Well... actually I'm still installing the most recent version of Ruby and so far everything is going well. You did not mention node.js and npm however. Any thoughts? That's what I will be installing next using the info in the link below.

https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions

@justingolden21
Copy link

justingolden21 commented Dec 14, 2018

WARNING TO ANYONE ABOUT TO TRY THIS:

I held Esc + Refresh + Power and my chromebook said the OS couldn't be loaded, I turned it off and on and it worked fine except I LOST ALL OF THE DATA I WAS WORKING ON. I don't mean unsaved data. I mean saved data, all my files were saved. I lost everything and there's no way to get it back the data is just garbage. Hopefully nobody else ever has to go through what I did.

@12944qwerty
Copy link

is there a way to do this on school chromebooks?

@Taiger
Copy link

Taiger commented Mar 26, 2019

You can install Linux apps directly on your Chromebook now.
You don't need developer mode.
There is a limitation that Linux apps don't have access any other local storage (including SD cards), but that should be fixed soon.
https://support.google.com/chromebook/answer/9145439?hl=en

@nelsonaj
Copy link

I don't recommend installing Linux, I have done it many times, trough all the above option and through the new option provided by google. It just slows down your Chromebook tremendously. I have look into solving the issue but I couldn't find anything.

@cantis
Copy link

cantis commented Jun 28, 2022

3rd Option, stay in ChromeOS and code in a GITHUB Code Space in the browser...https://github.com/codespaces

@alexbodn
Copy link

alexbodn commented Oct 25, 2023

i began with caret too. loved it very much, but unfortunately chrome apps were discontinued. on chromeos!
for local and remote files editing, i'd recommend trying vscode.dev.
it's a pwa with many vscode features, yet not a full blown memory hungry vscode.
visit https://vscode.dev/, and you'll have in the address bar an option to open in app.
to test your work on a simple website, i recommend https://chrome.google.com/webstore/detail/web-server-for-chrome/ofhbbkphhbklhfoeikjpcbhemlocgigb .
i share the source directory with linux, to allow running git and other powerful tools.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment