on b67d65f help sign in
urbit.org/docs/using/install.md
275 lines 7.8 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
48pkg-config
49python2
50ragel
51re2c
52```
54### Instructions
56First, 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.
58For 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:
60> For those new to the command line, see:
62> - Mac: [Introduction to the Mac OS X Command Line](http://blog.teamtreehouse.com/introduction-to-the-mac-os-x-command-line)
63> - Linux: [An Introduction to the Linux Terminal](https://www.digitalocean.com/community/tutorials/an-introduction-to-the-linux-terminal)
65#### macOS
67##### Homebrew
69> [Homebrew installation guide](https://treehouse.github.io/installation-guides/mac/homebrew)
71```
72# Bash
74brew update
75brew install autoconf automake cmake gcc git gmp libsigsegv libtool meson ninja pkg-config python2 openssl re2c
76git clone https://github.com/urbit/urbit
77cd urbit
78./scripts/bootstrap
79./scripts/build
80sudo ninja -C ./build/ meson-install
81urbit
82```
84##### Macports
86```
87# Bash
89sudo port selfupdate
90sudo port install autoconf automake cmake gmp libsigsegv meson openssl
91git clone https://github.com/urbit/urbit
92cd urbit
93./scripts/bootstrap
94./scripts/build
95sudo ninja -C ./build/ meson-install
96urbit
97```
99#### Linux
101##### Linuxbrew
103> [Linuxbrew](http://linuxbrew.sh/)
105```
106# Bash
108brew update
109brew install autoconf automake cmake gcc git gmp libsigsegv libtool meson ninja pkg-config python2 openssl re2c
110git clone https://github.com/urbit/urbit
111cd urbit
112./scripts/bootstrap
113./scripts/build
114sudo env "PATH=$PATH" ninja -C ./build/ meson-install
115urbit
116```
118##### Ubuntu or Debian
120```
121# Bash
123sudo apt-get update
124sudo 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 pkg-config python ragel re2c zlib1g-dev
125git clone https://github.com/urbit/urbit
126cd urbit
127./scripts/bootstrap
128./scripts/build
129sudo ninja -C ./build/ install
130urbit
131```
133##### Fedora
135```
136# Bash
138sudo dnf upgrade
139sudo dnf install autoconf automake cmake ctags gcc gcc-c++ git gmp-devel libcurl-devel libsigsegv-devel libtool meson ncurses-devel openssl openssl-devel pkgconfig python2 ragel re2c
140git clone https://github.com/urbit/urbit
141cd urbit
142./scripts/bootstrap
143./scripts/build
144sudo ninja -C ./build/ meson-install
145urbit
146```
148##### FreeBSD
150```
151# Bash
153pkg upgrade
154pkg install autoconf automake cmake curl gcc git gmake gmp libsigsegv libtool meson python ragel re2c
155git clone https://github.com/urbit/urbit
156cd urbit
157./scripts/bootstrap
158./scripts/build
159sudo ninja -C ./build/ meson-install
160urbit
161```
163##### Arch
165```
166# Bash
168pacman -Syu
169pacman -S autoconf automake cmake curl gcc git gmp libsigsegv libtool meson ncurses openssl python ragel re2c
170git clone https://github.com/urbit/urbit
171cd urbit
172./scripts/bootstrap
173./scripts/build
174sudo ninja -C ./build/ meson-install
175urbit
176```
178##### AWS
180```
181# Bash
183sudo yum update
184sudo yum install --enablerepo epel autoconf automake cmake ctags gcc gcc-c++ git gmp-devel libcurl-devel libsigsegv-devel libtool meson ncurses-devel openssl-devel pkgconfig python re2c
185git clone https://github.com/urbit/urbit
186cd urbit
187./scripts/bootstrap
188./scripts/build
189sudo ninja -C ./build/ meson-install
190urbit
191```
193### Test for successful installation
195After running your installed `urbit` command, check to see if the following output was printed:
197```
198$ urbit
199Urbit: a personal server operating function
200https://urbit.org
201Version 0.5.1
203Usage: urbit [options...] ship_name
204where ship_name is a @p phonetic representation of an urbit address
205without the leading '~', and options is some subset of the following:
207-A dir Use dir for initial galaxy sync
208-b Batch create
209-B pill Bootstrap from this pill
210-c pier Create a new urbit in pier/
211-d Daemon mode
212-D Recompute from events
213-F Fake keys; also disables networking
214-f Fuzz testing
215-g Set GC flag
216-H domain Set ames bootstrap domain (default urbit.org)
217-I galaxy Start as ~galaxy
218-k stage Start at Hoon kernel version stage
219-l port Initial peer port
220-M Memory madness
221-n host Set unix hostname
222-N Enable networking in fake mode (-F)
223-p ames_port Set the HTTP port to bind to
224-P Profiling
225-q Quiet
226-r host Initial peer address
227-R Report urbit build info
228-s Pill URL from arvo git hash
229-t ticket Use ~ticket automatically
230-u url URL from which to download pill
231-v Verbose
232-w name Immediately upgrade to ~name
233-x Exit immediately
234-Xwtf Skip last event
236Development Usage:
237 To create a development ship, use a fakezod:
238 urbit -FI zod -A /path/to/arvo/folder -B /path/to/pill -c zod
240 For more information about developing on urbit, see:
241 https://github.com/urbit/urbit/blob/master/CONTRIBUTING.md
243Simple Usage:
244 urbit -c <mycomet> to create a comet (anonymous urbit)
245 urbit -w <myplanet> -t <myticket> if you have a ticket
246 urbit <myplanet or mycomet> to restart an existing urbit
247```
249If 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.
251### Boot your urbit
253You've now installed the Urbit binary. If you're running Urbit on a normal modern PC or Mac, or
254on a large cloud instance, move onto the next [setup](../setup/) section.
256If you're running Urbit in the cloud on a small instance, read
257the below section, as you may need to additionally configure swap space, then continue.
259### (Set up swap)
261Urbit wants to map 2GB of memory when it boots up. We won’t necessarily
262use all this memory, we just want to see it. On a normal modern PC or Mac,
263or on a large cloud virtual machine, this is not an issue. On some small
264cloud virtual machines (Amazon or Digital Ocean), the default memory
265configuration is smaller than this, and you need to manually configure a
266swapfile.
268Digital Ocean has a post on adding swap
269[here](https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-16-04).
270For Amazon there’s a StackOverflow thread
271[here](http://stackoverflow.com/questions/17173972/how-do-you-add-swap-to-an-ec2-instance).
273Don’t spend a lot of time tweaking these settings; the simplest
274thing is fine.