on master help sign in
Merge pull request #1 from urbit/master

merge

commitb274b49d84be821436d644150e72ec2490a71d9e authorrmariani <robert@tlon.io> dateFri 13 Apr 2018, 13:19 (9 years ago) parent7ba63af4a30047
6 files changed+164−46
docs/about/glossary.md+7−5 docs/arvo/basic.md+1−1 docs/arvo/network.md+3−3 docs/arvo/subject.md+3−3 docs/using/admin.md+15−1 docs/using/install.md+135−33
docs/about/glossary.md+7−5
@@ -36,7 +36,9 @@ Any ship can be called an "urbit."
3636An Urbit identity is a string like `~firbyr-napbes`. It means nothing,
3737but it's easy to remember and say out loud. `~firbyr-napbes` is actually
3838just a 32-bit number (`3.237.967.392`, to be exact), like an IP address,
39−that we turn into a human-memorable string.
39+that we turn into a human-memorable string. The full name of this string
40+can be viewed by typing `our` in the Dojo, Urbit's shell. This is useful
41+when running a ship with a longer name, such as a *moon* or a *comet*.
4042
4143Technically, an urbit is a secure digital identity that you own and
4244control with a cryptographic key, like a Bitcoin wallet. As in Bitcoin,
@@ -182,7 +184,7 @@ The payload of a gate has a shape of `[sample context]`.
182184- <h6 id="-gate-context">context:</h6> the subject in which the gate was defined
183185
184186*See [basic types](../../hoon/basic/#-core-p-type-q-map-term-type),
185−[`%-` ("cenhep")](../../hoon/rune/cen-call/hep-call/) (the
187+[`%-` ("cenhep")](../../hoon/rune/cen/hep/) (the
186188[rune](#-rune) for calling a `gate`).*
187189
188190#### <h4 id="-a-hoon">hoon</h4>
@@ -284,7 +286,7 @@ Here's some common mold terminology:
284286 sample
285287- <h6 id="-mold-icon">icon:</h6> the type of the mold's range
286288
287−*See [mold hoons](../../hoon/rune/buc-mold/).*
289+*See [mold hoons](../../hoon/rune/buc/).*
288290
289291#### nest
290292
@@ -302,10 +304,10 @@ error. This is one of the most commons errors in Hoon programming.
302304A Hoon _rune_ is a pair of ASCII symbols used to begin a
303305[Hoon expression](#-a-hoon).
304306
305−For example, the rune [`?:`](../../hoon/rune/wut-test/col-if/) is
307+For example, the rune [`?:`](../../hoon/rune/wut/col/) is
306308Hoon's most common conditional, a branch on a boolean test. The first
307309symbol in a rune represents a family of related runes. For example, the
308−[`?` family](../../hoon/rune/wut-test/) are all conditionals.
310+[`?` family](../../hoon/rune/wut/) are all conditionals.
309311
310312The result of parsing a Hoon source expression&mdash;the rune, followed
311313by its respective children&mdash;into an AST node is simply called
docs/arvo/basic.md+1−1
@@ -75,7 +75,7 @@ Your `%clay` filesystem should acknowledge the newly added files.
7575
7676Run an example to ensure it worked:
7777
78− ~fintud-macrep:dojo> +project-euler/p1
78+ ~fintud-macrep:dojo/examples> +project-euler-p1
7979 233.168
8080
8181Euler 1
docs/arvo/network.md+3−3
@@ -39,12 +39,12 @@ a value, it prints that value out. To try this out, you have to start
3939the app, then you can poke it from the command line with the following
4040commands:
4141
42− ~fintud-macrep:dojo> |start %echo
42+ ~fintud-macrep:dojo> |start %examples %echo
4343 >=
4444 ~fintud-macrep:dojo> :echo 5
4545 [%echo %noun 5]
4646 >=
47− ~fintud-macrep:dojo> :examples-echo [1 2]
47+ ~fintud-macrep:dojo> :echo [1 2]
4848 [%echo %noun [1 2]]
4949 >=
5050
@@ -61,7 +61,7 @@ from the command line, which we we did with `:echo 5`
6161(`:[app-name] [argument(s)]`).
6262
6363In this case, `++poke-noun` takes an argument (*sample*) `arg` and
64−prints it to dojo with `~&` ([sigpam](../../hoon/twig/sig-hint/pam-dump/)).
64+prints it to dojo with `~&` ([sigpam](../../hoon/rune/sig/pam/)).
6565This is an unusual rune that formally "does nothing", but the interpreter
6666detects it and printfs the first child, before executing the second as if the
6767first didn't exist. This is a slightly hacky way of printing to the console,
docs/arvo/subject.md+3−3
@@ -15,7 +15,7 @@ Now we're going to cover the boiler plate that we skimmed over earlier.
1515 =< (sum [1.000 2.000])
1616
1717The first rune, `:-` (colhep, aka
18−[:cons](../../hoon/twig/col-cell/hep-cons/)), constructs the 2-element cell
18+[:cons](../../hoon/rune/col/hep/)), constructs the 2-element cell
1919that will be our program. The first element, `%say`, tells the
2020interpreter what to produce--in this case a value.
2121
@@ -28,7 +28,7 @@ Similarly, the rest of the program (which we construct with another
2828producing a value of type `noun`, and the code that we run to actually
2929produce our value of the type `noun`.
3030
31−`=<` ([tisgal](../../hoon/twig/tis-flow/gal-rap/)) is a rune that takes two
31+`=<` ([tisgal](../../hoon/rune/tis/gal/)) is a rune that takes two
3232children. The second child is the context against which we run the first
3333child. So in this case, we are running the expression
3434`(sum [1.000 2.000])` against everything contained within the `|%`. In
@@ -93,7 +93,7 @@ Cheatsheet:
9393
9494- To pass arguments from the command line to a program, you replace
9595 the `*` in the first line of the boiler plate to
96− `{^ {{arg/TYPE $~} $~}}` where `TYPE` is replaced with the type of
96+ `[^ [[arg=TYPE ~] ~]]` where `TYPE` is replaced with the type of
9797 argument you're expecting. Then `+euler1 a` from the dojo sets `arg`
9898 to `a`.
9999- The empty list is `~`
docs/using/admin.md+15−1
@@ -49,7 +49,21 @@ option in `tar`. With a pier `your-urbit/` something like this (from
4949inside `urbit/`) should work:
5050
5151```
52−tar -Scvzf your-urbit.tar.gz ./your-urbit/
52+tar -Scvzf ~/your-urbit.tar.gz ~/your-urbit/
53+scp your-old-server:~/your-urbit.tar.gz your-new-server:~
54+```
55+
56+Then to unzip it, on your other Unix server, run:
57+
58+```
59+tar xfvz your-urbit.tar.gz
60+```
61+
62+Delete the tar file, and, after installing Urbit on your new server,
63+start your urbit back up with:
64+
65+```
66+urbit your-urbit
5367```
5468
5569## Console
docs/using/install.md+135−33
@@ -12,11 +12,11 @@ Installing Urbit is easy. It just takes a few minutes to get an
1212instance up and running on the network.
1313
1414Urbit 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.
1616
1717If you run into trouble installing Urbit, please let us know via
1818email, [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
2020with us at [urbit.org/stream](https://urbit.org/stream).
2121
2222> Urbit is alpha software. It’s not yet completely stable, its crypto
@@ -41,56 +41,157 @@ gmp
4141libcurl
4242libsigsegv
4343libtool
44+libuv
45+meson
46+ninja
4447openssl
4548python2
4649ragel
4750re2c
4851```
4952
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)
5169
5270```
53−# macOS (Homebrew) https://treehouse.github.io/installation-guides/mac/homebrew
54−# Linuxbrew http://linuxbrew.sh/
55−$ brew install autoconf automake cmake gcc git gmp libsigsegv libtool python2 openssl
71+# Bash
72+
73+brew update
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+```
5682
57−# macOS (Macports)
58−$ sudo port install autoconf automake cmake gmp libsigsegv openssl
83+##### Macports
5984
60−# Ubuntu or Debian
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
85+```
86+# Bash
87+
88+sudo port selfupdate
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+```
6297
63−# Fedora
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
98+#### Linux
6599
66−# FreeBSD
67−$ pkg install autoconf automake cmake curl gcc git gmake gmp libsigsegv libtool python ragel re2c
100+##### Linuxbrew
68101
69−# Arch
70−$ pacman -S autoconf automake cmake curl gcc git gmp libsigsegv libtool ncurses openssl python ragel re2c
102+> [Linuxbrew](http://linuxbrew.sh/)
71103
72−# AWS
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
104+```
105+# Bash
106+
107+brew update
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
74115```
75116
76−### Clone and make
117+##### Ubuntu or Debian
77118
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
79148
80149```
81−$ git clone https://github.com/urbit/urbit
82−$ cd urbit
83−$ make # gmake on FreeBSD
150+# Bash
151+
152+pkg upgrade
153+pkg install autoconf automake cmake curl gcc git gmake gmp libsigsegv libtool meson python ragel re2c
154+git clone https://github.com/urbit/urbit
155+cd urbit
156+./scripts/bootstrap
157+./scripts/build
158+sudo install -m 0755 ./build/urbit /usr/local/bin
159+urbit
84160```
85161
86−After running `make`, your Urbit executable is in `bin/urbit`. Install
87−it wherever you'd like.
162+##### Arch
88163
89164```
90−$ sudo install -m 0755 bin/urbit /usr/local/bin
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
173+sudo install -m 0755 ./build/urbit /usr/local/bin
174+urbit
91175```
92176
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:
94195
95196```
96197$ urbit
@@ -144,14 +245,15 @@ Simple Usage:
144245 urbit <myplanet or mycomet> to restart an existing urbit
145246```
146247
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+
147250### Boot your urbit
148251
149−And you're done! 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
151−boot your urbit.
252+You've now installed the Urbit binary. If you're running Urbit on a normal modern PC or Mac, or
253+on a large cloud instance, move onto the next [setup](../setup/) section.
152254
153−If you're running Urbit in the cloud on a small instance, however, read
154−the below section, as you may need to additionally configure swap space.
255+If you're running Urbit in the cloud on a small instance, read
256+the below section, as you may need to additionally configure swap space, then continue.
155257
156258### (Set up swap)
157259
@@ -163,7 +265,7 @@ configuration is smaller than this, and you need to manually configure a
163265swapfile.
164266
165267Digital 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).
167269For Amazon there’s a StackOverflow thread
168270[here](http://stackoverflow.com/questions/17173972/how-do-you-add-swap-to-an-ec2-instance).
169271