on a3d2d13 help sign in
urbit.org/getting-started/installing-urbit.md
209 lines 6.4 kB history raw
1+++
2title = "Installing Urbit"
3weight = 2
4template = "doc.html"
5+++
6Arvo runs nicely on a Unix-like operating system -- Ubuntu, Fedora, macOS, and FreeBSD, for example. If you're using Windows, you'll need to get one of the aforementioned systems. Don't worry: most of them are free. Let's get it onto your machine.
8But first, some terminology:
9- `vere` or `urbit`: the interpreter that runs when you run a command like `urbit` or `/bin/urbit` in your command line
10- `arvo`: the deterministic OS that lives in a directory whose name matches your Azimuth point, ie `~famreb-todmec` lives in `/famreb-todmec`
12We have different installation instructions for different platforms. To install and run Arvo, run the commands that are listed for your operating system.
14On any platform, you can check your Arvo installation by running the `urbit` command. Installation was successful if you get a block of output that begins with the line below:
16```
17Urbit: a personal server operating function
18```
20## Instructions
22### MacOS
24We recommend using the Homebrew package manager to run Arvo on MacOS.
26```
27# Bash
29brew update
30brew install -v gcc git gmp libsigsegv libtool meson ninja pkg-config openssl
31git clone https://github.com/urbit/urbit
32cd urbit
33./scripts/bootstrap
34./scripts/build
35sudo ninja -C ./build/ meson-install
36urbit
37```
39### Ubuntu or Debian
41```
42# Bash
44sudo apt-get update
45sudo apt-get install g++ git libcurl4-gnutls-dev libgmp3-dev libncurses5-dev libsigsegv-dev libssl-dev make openssl pkg-config python python3 python3-pip python3-setuptools zlib1g-dev ninja-build
46sudo -H pip3 install --upgrade pip
47sudo -H pip3 install meson
49git clone https://github.com/urbit/urbit
50cd urbit
51./scripts/bootstrap
52./scripts/build
53sudo ninja -C ./build/ install
54urbit
55```
57To access your Urbit via HTTP on port 80, you may need to run the following:
59```
60sudo apt-get install libcap2-bin
61sudo setcap 'cap_net_bind_service=+ep' $(which urbit)
62```
64### Fedora 23 or earlier
66```
67# Bash
69sudo yum upgrade
70sudo yum install autoconf automake cmake ctags gcc gcc-c++ git gmp-devel libcurl-devel libsigsegv-devel libtool ncurses-devel ninja-build openssl openssl-devel pkgconfig python3 re2c wget
72# meson requires python 3.5; RHEL supplies wrong version
73pushd /usr/src
74 sudo wget https://www.python.org/ftp/python/3.5.5/Python-3.5.5.tgz
75 sudo tar xzf Python-3.5.5.tgz
76 cd Python-3.5.5
77 sudo ./configure --enable--optimizations
78 sudo make altinstall
79 which python3.5
80 cd /usr/local/bin
81 sudo ln -s python3.5 python3
82 hash python3
83popd
85curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
86sudo /usr/local/bin/python3 get-pip.py
87# downgrade meson to avoid dependencies that redhat can't meet
88sudo -H /usr/local/bin/pip3 install meson
91git clone git://github.com/ninja-build/ninja.git && cd ninja
92git checkout release
93./configure.py --bootstrap
94sudo cp ./ninja /usr/local/bin
96git clone https://github.com/urbit/urbit
97cd urbit
98./scripts/bootstrap
99./scripts/build
100sudo /usr/local/bin/ninja -C ./build/ install
101urbit
102```
104### Fedora 24 or later
106```
107# Bash
109sudo dnf upgrade
110sudo dnf install autoconf automake cmake ctags gcc gcc-c++ git gmp-devel libcurl-devel libsigsegv-devel libtool ncurses-devel meson ninja-build openssl openssl-devel pkgconfig python3 re2c wget
112git clone https://github.com/urbit/urbit
113cd urbit
114./scripts/bootstrap
115./scripts/build
116sudo ninja -C ./build/ install
117urbit
118```
120### Arch Linux
122```
123# Bash
125sudo pacman -Syyu
126sudo pacman -S --needed curl gcc git gmp libsigsegv ncurses ninja openssl python python-pip meson
127git clone https://github.com/urbit/urbit
128cd urbit
129./scripts/bootstrap
130./scripts/build
131cd build
132ninja
133sudo ninja meson-install
134urbit
135```
137### FreeBSD
139```
140# Bash or Sh
142pkg upgrade
143sudo pkg install curl gcc git gmake gmp libsigsegv python python3 ncurses openssl gmp
144curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
145sudo python3 get-pip.py
146sudo -H pip install --upgrade pip
147sudo -H pip install meson
148sudo pkg install ninja
149git clone https://github.com/urbit/urbit
150cd urbit
151sh ./scripts/bootstrap
152sh ./scripts/build
153sudo ninja -C ./build/ meson-install
154urbit
155```
157### Amazon Web Services
159```
160# Bash
162sudo yum update
163sudo yum install gcc gcc-c++ git gmp-devel libcurl-devel libsigsegv-devel ncurses-devel openssl openssl-devel pkgconfig python3 python3-pip wget git
164sudo env "PATH=$PATH" pip3 install --upgrade pip
165sudo env "PATH=$PATH" pip3 install meson
168# we need libsigsegv
171wget https://dl.fedoraproject.org/pub/fedora/linux/releases/30/Everything/x86_64/os/Packages/l/libsigsegv-2.11-7.fc30.x86_64.rpm
172wget https://dl.fedoraproject.org/pub/fedora/linux/releases/30/Everything/x86_64/os/Packages/l/libsigsegv-devel-2.11-7.fc30.x86_64.rpm
173sudo yum localinstall libsigsegv-2.11-7.fc30.x86_64.rpm
174sudo yum localinstall libsigsegv-devel-2.11-7.fc30.x86_64.rpm
176git clone git://github.com/ninja-build/ninja.git
177pushd ninja
178 git checkout release
179 ./configure.py --bootstrap
180 sudo cp ./ninja /usr/local/bin
181popd
184git clone https://github.com/urbit/urbit
185cd urbit
186./scripts/bootstrap
187./scripts/build
188sudo env "PATH=$PATH" ninja -C ./build/ install
190urbit
191```
193## Booting a Ship
195One you've completed your installation, you can continue on to the instructions for [booting your ship](./docs/getting-started/booting-a-ship.md) to get on the Arvo network.
197Or, if you want to try testing and writing code, check out the guide to [getting an unnetworked development ship](/docs/using/creating-a-development-ship).
201## Set Up Swap
203If you're running Urbit in the cloud on a small instance, you may need to additionally configure swap space. If you're not, you can safely ignore this section.
205Urbit wants to map 2GB of memory when it boots up. We won’t necessarily use all this memory, we just want to see it. On a normal modern PC or Mac, or on a large cloud virtual machine, this is not an issue. On some small cloud virtual machines (Amazon or Digital Ocean), the default memory configuration is smaller than this, and you need to manually configure a swapfile.
207Digital Ocean has a post on adding swap [here](https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-16-04). For Amazon there’s a StackOverflow thread [here](https://stackoverflow.com/questions/17173972/how-do-you-add-swap-to-an-ec2-instance).
209Don’t spend a lot of time tweaking these settings; the simplest thing is fine.