on a6f0bf9 help sign in
urbit.org/docs/using/install.md
274 lines 7.9 kB history raw
1---
2navhome: /docs/
3navuptwo: true
4next: true
5sort: 1
6title: Install
7---
9# Install
11Installing Urbit is easy. It just takes a few minutes to get an
12instance up and running on the network.
14Urbit is designed to run on any Unix box with an internet connection.
15macOS, Ubuntu/Debian, FreeBSD, and Fedora all work well.
17If you run into trouble installing Urbit, please let us know via
18email, [questions@urbit.org](mailto:questions@urbit.org), or on the
19forum: [fora.urbit.org](https://fora.urbit.org). You can also chat
20with us at [urbit.org/stream](https://urbit.org/stream).
22> Urbit is alpha software. It’s not yet completely stable, its crypto
23> hasn’t been audited, and there are plenty of rough edges. Urbit is
24> lots of fun to play with, but not quite ready for your important or
25> sensitive data.
27## Build from source
29### Dependencies
31Urbit depends on:
33```
34autoconf
35automake
36C compiler (gcc or clang)
37cmake
38curses
39git
40gmp
41libcurl
42libsigsegv
43libtool
44libuv
45meson
46ninja
47openssl
48python2
49ragel
50re2c
51```
53### Instructions
55First, you'll install the required dependencies to build Urbit from source. Then, you'll clone the Urbit source code, hosted on Github. Next, you'll bootstrap the Git submodules needed for the build. Lastly, you'll run a [Meson](https://github.com/mesonbuild/meson) build on the Urbit source to create your Urbit binary for your host operating system. Then, finally, you'll be able to boot your urbit.
57For your host OS platform and relevant package installer, run the respective Bash shell commands listed below in a fresh terminal window to get Urbit installed:
59> For those new to the command line, see:
61> - Mac: [Introduction to the Mac OS X Command Line](http://blog.teamtreehouse.com/introduction-to-the-mac-os-x-command-line)
62> - Linux: [An Introduction to the Linux Terminal](https://www.digitalocean.com/community/tutorials/an-introduction-to-the-linux-terminal)
64#### macOS
66##### Homebrew
68> [Homebrew installation guide](https://treehouse.github.io/installation-guides/mac/homebrew)
70```
71# Bash
73brew update
74brew install autoconf automake cmake gcc git gmp libsigsegv libtool meson ninja pkg-config python2 openssl re2c
75git clone https://github.com/urbit/urbit
76cd urbit
77./scripts/bootstrap
78./scripts/build
79sudo install -m 0755 ./build/urbit /usr/local/bin
80urbit
81```
83##### Macports
85```
86# Bash
88sudo port selfupdate
89sudo port install autoconf automake cmake gmp libsigsegv meson openssl
90git clone https://github.com/urbit/urbit
91cd urbit
92./scripts/bootstrap
93./scripts/build
94sudo install -m 0755 ./build/urbit /usr/local/bin
95urbit
96```
98#### Linux
100##### Linuxbrew
102> [Linuxbrew](http://linuxbrew.sh/)
104```
105# Bash
107brew update
108brew install autoconf automake cmake gcc git gmp libsigsegv libtool meson ninja pkg-config python2 openssl re2c
109git clone https://github.com/urbit/urbit
110cd urbit
111./scripts/bootstrap
112./scripts/build
113sudo install -m 0755 ./build/urbit /usr/local/bin
114urbit
115```
117##### Ubuntu or Debian
119```
120# Bash
122sudo apt-get update
123sudo apt-get install autoconf automake cmake exuberant-ctags g++ git libcurl4-gnutls-dev libgmp3-dev libncurses5-dev libsigsegv-dev libssl-dev libtool make meson openssl python ragel re2c zlib1g-dev
124git clone https://github.com/urbit/urbit
125cd urbit
126./scripts/bootstrap
127./scripts/build
128sudo install -m 0755 ./build/urbit /usr/local/bin
129urbit
130```
132##### Fedora
134```
135# Bash
137sudo dnf upgrade
138sudo dnf install autoconf automake cmake ctags gcc gcc-c++ git gmp-devel libcurl-devel libsigsegv-devel libtool meson ncurses-devel openssl openssl-devel python2 ragel re2c
139git clone https://github.com/urbit/urbit
140cd urbit
141./scripts/bootstrap
142./scripts/build
143sudo install -m 0755 ./build/urbit /usr/local/bin
144urbit
145```
147##### FreeBSD
149```
150# Bash
152pkg upgrade
153pkg install autoconf automake cmake curl gcc git gmake gmp libsigsegv libtool meson python ragel re2c
154git clone https://github.com/urbit/urbit
155cd urbit
156./scripts/bootstrap
157./scripts/build
158sudo install -m 0755 ./build/urbit /usr/local/bin
159urbit
160```
162##### Arch
164```
165# Bash
167pacman -Syu
168pacman -S autoconf automake cmake curl gcc git gmp libsigsegv libtool meson ncurses openssl python ragel re2c
169git clone https://github.com/urbit/urbit
170cd urbit
171./scripts/bootstrap
172./scripts/build
173sudo install -m 0755 ./build/urbit /usr/local/bin
174urbit
175```
177##### AWS
179```
180# Bash
182sudo yum update
183sudo yum install --enablerepo epel autoconf automake cmake ctags gcc gcc-c++ git gmp-devel libcurl-devel libsigsegv-devel libtool meson ncurses-devel openssl-devel python re2c
184git clone https://github.com/urbit/urbit
185cd urbit
186./scripts/bootstrap
187./scripts/build
188sudo install -m 0755 ./build/urbit /usr/local/bin
189urbit
190```
192### Test for successful installation
194After running your installed `urbit` command, check to see if the following output was printed:
196```
197$ urbit
198Urbit: a personal server operating function
199https://urbit.org
200Version 0.5.1
202Usage: urbit [options...] ship_name
203where ship_name is a @p phonetic representation of an urbit address
204without the leading '~', and options is some subset of the following:
206-A dir Use dir for initial galaxy sync
207-b Batch create
208-B pill Bootstrap from this pill
209-c pier Create a new urbit in pier/
210-d Daemon mode
211-D Recompute from events
212-F Fake keys; also disables networking
213-f Fuzz testing
214-g Set GC flag
215-H domain Set ames bootstrap domain (default urbit.org)
216-I galaxy Start as ~galaxy
217-k stage Start at Hoon kernel version stage
218-l port Initial peer port
219-M Memory madness
220-n host Set unix hostname
221-N Enable networking in fake mode (-F)
222-p ames_port Set the HTTP port to bind to
223-P Profiling
224-q Quiet
225-r host Initial peer address
226-R Report urbit build info
227-s Pill URL from arvo git hash
228-t ticket Use ~ticket automatically
229-u url URL from which to download pill
230-v Verbose
231-w name Immediately upgrade to ~name
232-x Exit immediately
233-Xwtf Skip last event
235Development Usage:
236 To create a development ship, use a fakezod:
237 urbit -FI zod -A /path/to/arvo/folder -B /path/to/pill -c zod
239 For more information about developing on urbit, see:
240 https://github.com/urbit/urbit/blob/master/CONTRIBUTING.md
242Simple Usage:
243 urbit -c <mycomet> to create a comet (anonymous urbit)
244 urbit -w <myplanet> -t <myticket> if you have a ticket
245 urbit <myplanet or mycomet> to restart an existing urbit
246```
248If so, then you're ready to boot your urbit. If not, check that you entered each Bash command correctly for your host OS platform. If you're still experiencing issues, feel free to drop into [Urbit chat](https://urbit.org/stream) for troubleshooting help.
250### Boot your urbit
252You've now installed the Urbit binary. If you're running Urbit on a normal modern PC or Mac, or
253on a large cloud instance, move onto the next [setup](../setup/) section.
255If you're running Urbit in the cloud on a small instance, read
256the below section, as you may need to additionally configure swap space, then continue.
258### (Set up swap)
260Urbit wants to map 2GB of memory when it boots up. We won’t necessarily
261use all this memory, we just want to see it. On a normal modern PC or Mac,
262or on a large cloud virtual machine, this is not an issue. On some small
263cloud virtual machines (Amazon or Digital Ocean), the default memory
264configuration is smaller than this, and you need to manually configure a
265swapfile.
267Digital Ocean has a post on adding swap
268[here](https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-16-04).
269For Amazon there’s a StackOverflow thread
270[here](http://stackoverflow.com/questions/17173972/how-do-you-add-swap-to-an-ec2-instance).
272Don’t spend a lot of time tweaking these settings; the simplest
273thing is fine.