blob: 878aada9e36e0392484111e15859b3a323f950ea [file] [log] [blame] [view]
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001# Introduction
Ihor Dvoretskyidf806fa2016-03-03 15:26:44 -08002This tutorial will show you how to install/build/run go on chrome OS. I have tested this using a Chromebook Pixel, however I do not have any other types of Chromebooks. However, this should work as long as you install the corresponding Linux package for your processor.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11003
4# Requirements
Filippo Valsorda2c0e5822017-10-31 16:05:50 -04005Your Chromebook must be in developer mode for this to work. Also please note this has only been tested on a 64gb LTE Pixel, however it should work on other Chromebooks. Note that enabling developer mode reduces the security guarantees offered by Chrome OS.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11006
7# Install Go
nathany5a0e5902014-12-10 20:28:47 -08008First download the latest version of Go for Linux-amd64 from the [Go Downloads page](http://golang.org/dl/) after that open a shell by hitting (Crtl+alt+t) and typing in "shell" then hit enter. Then extract it using the following command.
Dave Day0d6986a2014-12-10 15:02:18 +11009
10```
11sudo tar -C /usr/local -xzf ~/Downloads/FILENAMEHERE
12```
13
14Go should now be installed you can test this by typing "/usr/local/go/bin/go" if it installed you should see the go help prompt. Congrats Go is now installed however you will not be able to run anything because chrome mounts partitions with noexec. The following will guide you through remounting your home folder, and setting up paths that are persistent across reboots, and shell sessions.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +110015
16# Create a Workspace
17To keep this simple just create a folder called "gocode" in your downloads folder. Also create a folder called "src" inside.
18
19# Set Paths & Exec
20Either type the following into your shell each session or if you want it to be persistent between sessions add it to your "~/.bashrc" file. The last line remounts your user folder so that you can run your go code other wise you would get permission errors.
21```
Andrew Gerrand5bc444d2014-12-10 11:35:11 +110022export PATH=$PATH:/usr/local/go/bin
Ihor Dvoretskyiaf014e22018-02-23 07:46:13 -080023export GOPATH=~/Downloads/go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +110024export PATH=$PATH:$GOPATH/bin
25sudo mount -i -o remount,exec /home/chronos/user/
26```
27This will allow you to run your go object files in your shell.
28
29# Test If It Worked
30First add a "hello" folder inside of your "gocode/src" folder. After that create a file in your "gocode/src/hello" folder called "hello.go" with the following in it. Then run "go install hello" then "hello" and you should see "Hello, chrome os" in the console.
Dave Day0d6986a2014-12-10 15:02:18 +110031```go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +110032package main
33
34import "fmt"
35
36func main() {
Dave Day0d6986a2014-12-10 15:02:18 +110037 fmt.Printf("Hello, chrome os\n")
38}
39```