on master help sign in
Merge pull request #240 from eglaysher/draft-meson
44e96f3Keaton Dunsford
docs/using/install.md+135−33
@@ -12,11 +12,11 @@ Installing Urbit is easy. It just takes a few minutes to get an
12instance up and running on the network.
12instance up and running on the network.
13
13
14Urbit is designed to run on any Unix box with an internet connection.
14Urbit is designed to run on any Unix box with an internet connection.
15−Debian (jessie), Mac OS X, FreeBSD and Fedora all work well.
15+macOS, Ubuntu/Debian, FreeBSD, and Fedora all work well.
16
16
17If you run into trouble installing Urbit, please let us know via
17If you run into trouble installing Urbit, please let us know via
18email, [questions@urbit.org](mailto:questions@urbit.org), or on the
18email, [questions@urbit.org](mailto:questions@urbit.org), or on the
19−forum: [urbit.org/fora](https://urbit.org/fora). You can also chat
19+forum: [fora.urbit.org](https://fora.urbit.org). You can also chat
20with us at [urbit.org/stream](https://urbit.org/stream).
20with us at [urbit.org/stream](https://urbit.org/stream).
21
21
22> Urbit is alpha software. It’s not yet completely stable, its crypto
22> Urbit is alpha software. It’s not yet completely stable, its crypto
@@ -41,56 +41,157 @@ gmp
41libcurl
41libcurl
42libsigsegv
42libsigsegv
43libtool
43libtool
44+libuv
45+meson
46+ninja
44openssl
47openssl
45python2
48python2
46ragel
49ragel
47re2c
50re2c
48```
51```
49
52
50−Which can usually be installed with the following one-liners:
53+### Instructions
54+
55+First, 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.
56+
57+For 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:
58+
59+> For those new to the command line, see:
60+>
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)
63+
64+#### macOS
65+
66+##### Homebrew
67+
68+> [Homebrew installation guide](https://treehouse.github.io/installation-guides/mac/homebrew)
51
69
52```
70```
53−# macOS (Homebrew) https://treehouse.github.io/installation-guides/mac/homebrew
71+# Bash
54−# Linuxbrew http://linuxbrew.sh/
72+
73+brew update
55−$ brew install autoconf automake cmake gcc git gmp libsigsegv libtool python2 openssl
74+brew install autoconf automake cmake gcc git gmp libsigsegv libtool meson ninja pkg-config python2 openssl re2c
75+git clone https://github.com/urbit/urbit
76+cd urbit
77+./scripts/bootstrap
78+./scripts/build
79+sudo install -m 0755 ./build/urbit /usr/local/bin
80+urbit
81+```
56
82
57−# macOS (Macports)
83+##### Macports
58−$ sudo port install autoconf automake cmake gmp libsigsegv openssl
59
84
60−# Ubuntu or Debian
85+```
86+# Bash
87+
88+sudo port selfupdate
61−$ sudo apt-get install autoconf automake cmake exuberant-ctags g++ git libcurl4-gnutls-dev libgmp3-dev libncurses5-dev libsigsegv-dev libssl-dev libtool make openssl python ragel re2c zlib1g-dev
89+sudo port install autoconf automake cmake gmp libsigsegv meson openssl
90+git clone https://github.com/urbit/urbit
91+cd urbit
92+./scripts/bootstrap
93+./scripts/build
94+sudo install -m 0755 ./build/urbit /usr/local/bin
95+urbit
96+```
62
97
63−# Fedora
98+#### Linux
64−$ sudo dnf install autoconf automake cmake ctags gcc gcc-c++ git gmp-devel libcurl-devel libsigsegv-devel libtool ncurses-devel openssl openssl-devel python2 ragel re2c
65
99
66−# FreeBSD
100+##### Linuxbrew
67−$ pkg install autoconf automake cmake curl gcc git gmake gmp libsigsegv libtool python ragel re2c
68
101
69−# Arch
102+> [Linuxbrew](http://linuxbrew.sh/)
70−$ pacman -S autoconf automake cmake curl gcc git gmp libsigsegv libtool ncurses openssl python ragel re2c
71
103
72−# AWS
104+```
105+# Bash
106+
107+brew update
73−$ sudo yum install --enablerepo epel autoconf automake cmake ctags gcc gcc-c++ git gmp-devel libcurl-devel libsigsegv-devel libtool ncurses-devel openssl-devel python re2c
108+brew install autoconf automake cmake gcc git gmp libsigsegv libtool meson ninja pkg-config python2 openssl re2c
109+git clone https://github.com/urbit/urbit
110+cd urbit
111+./scripts/bootstrap
112+./scripts/build
113+sudo install -m 0755 ./build/urbit /usr/local/bin
114+urbit
74```
115```
75
116
76−### Clone and make
117+##### Ubuntu or Debian
77
118
78−Once your dependencies are installed the rest is easy:
119+```
120+# Bash
121+
122+sudo apt-get update
123+sudo 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
124+git clone https://github.com/urbit/urbit
125+cd urbit
126+./scripts/bootstrap
127+./scripts/build
128+sudo install -m 0755 ./build/urbit /usr/local/bin
129+urbit
130+```
131+
132+##### Fedora
133+
134+```
135+# Bash
136+
137+sudo dnf upgrade
138+sudo 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
139+git clone https://github.com/urbit/urbit
140+cd urbit
141+./scripts/bootstrap
142+./scripts/build
143+sudo install -m 0755 ./build/urbit /usr/local/bin
144+urbit
145+```
146+
147+##### FreeBSD
79
148
80```
149```
150+# Bash
151+
152+pkg upgrade
153+pkg install autoconf automake cmake curl gcc git gmake gmp libsigsegv libtool meson python ragel re2c
81−$ git clone https://github.com/urbit/urbit
154+git clone https://github.com/urbit/urbit
82−$ cd urbit
155+cd urbit
83−$ make # gmake on FreeBSD
156+./scripts/bootstrap
157+./scripts/build
158+sudo install -m 0755 ./build/urbit /usr/local/bin
159+urbit
84```
160```
85
161
86−After running `make`, your Urbit executable is in `bin/urbit`. Install
162+##### Arch
87−it wherever you'd like.
88
163
89```
164```
165+# Bash
166+
167+pacman -Syu
168+pacman -S autoconf automake cmake curl gcc git gmp libsigsegv libtool meson ncurses openssl python ragel re2c
169+git clone https://github.com/urbit/urbit
170+cd urbit
171+./scripts/bootstrap
172+./scripts/build
90−$ sudo install -m 0755 bin/urbit /usr/local/bin
173+sudo install -m 0755 ./build/urbit /usr/local/bin
174+urbit
91```
175```
92
176
93−Test that it works:
177+##### AWS
178+
179+```
180+# Bash
181+
182+sudo yum update
183+sudo 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
184+git clone https://github.com/urbit/urbit
185+cd urbit
186+./scripts/bootstrap
187+./scripts/build
188+sudo install -m 0755 ./build/urbit /usr/local/bin
189+urbit
190+```
191+
192+### Test for successful installation
193+
194+After running your installed `urbit` command, check to see if the following output was printed:
94
195
95```
196```
96$ urbit
197$ urbit
@@ -144,14 +245,15 @@ Simple Usage:
144 urbit <myplanet or mycomet> to restart an existing urbit
245 urbit <myplanet or mycomet> to restart an existing urbit
145```
246```
146
247
248+If 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.
249+
147### Boot your urbit
250### Boot your urbit
148
251
149−And you're done! If you're running Urbit on a normal modern PC or Mac, or
252+You've now installed the Urbit binary. If you're running Urbit on a normal modern PC or Mac, or
150−on a large cloud instance, move onto the next [setup](../setup/) section to
253+on a large cloud instance, move onto the next [setup](../setup/) section.
151−boot your urbit.
152
254
153−If you're running Urbit in the cloud on a small instance, however, read
255+If you're running Urbit in the cloud on a small instance, read
154−the below section, as you may need to additionally configure swap space.
256+the below section, as you may need to additionally configure swap space, then continue.
155
257
156### (Set up swap)
258### (Set up swap)
157
259
@@ -163,7 +265,7 @@ configuration is smaller than this, and you need to manually configure a
163swapfile.
265swapfile.
164
266
165Digital Ocean has a post on adding swap
267Digital Ocean has a post on adding swap
166−[here](https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04).
268+[here](https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-16-04).
167For Amazon there’s a StackOverflow thread
269For Amazon there’s a StackOverflow thread
168[here](http://stackoverflow.com/questions/17173972/how-do-you-add-swap-to-an-ec2-instance).
270[here](http://stackoverflow.com/questions/17173972/how-do-you-add-swap-to-an-ec2-instance).
169
271