Skip to content

Instantly share code, notes, and snippets.

@rachelmyers
Last active October 19, 2024 04:52
Show Gist options
  • 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
@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