on master help sign in
short
60a44f5Galen Wolfe-Pauly
docs/setup/getting-started.md+18−124
@@ -6,144 +6,38 @@ title: Getting started
6
6
7# Getting started
7# Getting started
8
8
9−Once urbit is installed, if you have an invitation, it's a planet
9+On disk your Urbit is an append-only log and a checkpoint. Or, in simpler terms, a directory where we keep all of your Urbit’s state. We call this a ‘pier’.
10−like `~fintud-macrep` and a ticket like
11−`~fortyv-tombyt-tabsen-sonres`. Run
12
10
13− bin/urbit -w fintud-macrep -t fortyv-tombyt-tabsen-sonres
11+## Initialize
14−
15−(You can leave the `~` on, but it annoys some Unix shells.)
16−
17−If you don't have an invitation, pick a nickname for your comet,
18−like `mycomet`. Urbit will randomly generate a 128-bit plot:
19−
20− bin/urbit -c mycomet
21−
22−Either way, creating your urbit will take some time. Some of
23−this time involves generating keys; some of it involves
24−downloading code over Urbit itself.
25−
26−If you turn off your pier at any time (either "nicely" with `^D`
27−from talk or the dojo or by power-failure, oom-killer, or other
28−calamity), then you can start it up again with the path to your
29−pier directory (your planet name if you have an invitation,
30−otherwise the name you chose after `-c`):
31−
32− bin/urbit fintud-macrep
33−
34−or
35−
36− bin/urbit mycomet
37−
38−## Basic operation
39−
40−Out of the box, your urbit is running two default appliances,
41−`:dojo` (a shell or REPL) and `:talk`. Switch between them with
42−`^X`. Note that all apps share an output log, but `^X` switches
43−the prompt.
44−
45−`^D` from either default appliance exits the urbit process.
46
12
47−If your plot is `~fintud-macrep`, the dojo prompt is
13+When you first start an Urbit we create this pier directory and write to it.
48
14
49− ~fintud-macrep:dojo>
15+To start with a planet (`~fintud-macrep`) and ticket (`~fortyv-tombyt-tabsen-sonres`):
50
16
51−Type any Hoon expression at the command line and see the result:
17+ bin/urbit -w fintud-macrep -t fortyv-tombyt-tabsen-sonres
52−
53− ~fintud-macrep:dojo> (add 2 2)
54−
55−You'll see:
56−
57− > (add 2 2)
58− 4
59− ~fintud-macrep:dojo>
60−
61−While there are some tools for interacting with urbit's
62−filesystem direclty, often it's useful to edit urbit files from
63−Unix. Use `|mount` to set up a Dropbox-style sync directory in
64−your pier directory:
65−
66− ~fintud-macrep:dojo> |mount %
67− >=
68− ~fintud-macrep:dojo> |unmount %
69− >=
70−
71−Look inside your pier directory to find your files, and edit them
72−with your favorite Unix text editor.
73−
74−Sometimes you want to get files from another urbit. There's two
75−main commands to do this.
76−
77− ~fintud-macrep:dojo> |merge %examples ~wactex-ribmex %examples
78− >=
79− ; ~wactex-ribmex is your neighbor
80− ; ~wactex-ribmex is your neighbor
81− [time passes...]
82− merged with strategy %init
83−
84−This pulls a bunch of examples from `~wactex-ribmex`'s `%examples`
85−desk and puts them in our `%examples` desk. A desk is a
86−branch (in the git branch sense) of our filesystem. If you want to
87−inspect these files in Unix you'll need to mount the `%examples`
88−desk:
89−
90− ~fintud-macrep:dojo> |mount /=examples= %examples
91
18
92−This should result in a `/examples` folder inside your pier.
19+This will create a directory `fintud-macrep/` and begin the initialization process for that planet. Be patient, it can take a few minutes.
93
20
94−You can, of course, merge the examples into your `%home`
21+Without a planet anyone can create a comet:
95−(default) desk if you wish. Merging into a new desk creates it,
96−while merging into an existing desk does an intelligent git-style
97−merge, with conflict resolution and stuff.
98
22
99− ~fintud-macrep:dojo> |sync %examples ~wactex-ribmex %examples
23+ bin/urbit -c comet
100− >=
101− activated sync from %examples on ~wactex-ribmex to %examples
102− sync succeeded from %examples on ~wactex-ribmex to %examples
103− ~fintud-macrep:dojo> |unsync %examples ~wactex-ribmex %examples
104− ended autosync from %examples on ~wactex-ribmex to %examples
105
24
106−`|sync` does an initial `|merge`, then listens for changes on the
25+This will create a directory `any-name/` and start up a random 64-bit comet.
107−foreign desk and runs `|merge` automatically whenever it changes.
108−By default your `%home` desk is synced to your parent's `%kids`
109−desk, so the entire network is upgraded at once. You may, of
110−course, unsync it, but this voids your warranty.
111
26
112−You can change which desk is your current working directory with:
27+## Orientation
113
28
114− ~fintud-macrep:dojo> =dir /=examples=
29+When your Urbit is finished booting you should see a `dojo>` prompt.
115
30
116−> `dir` is a special dojo variable, but you can also create your
31+## Shutdown
117−> own variables with the same syntax. `=my-var (add 2 3)` allows
118−> you to use `my-var` for `5` anywhere later on.
119
32
120−When you change your desk all commands will use the files from
33+You can turn your Urbit off with `^D` from the `dojo>` prompt.
121−that desk. Unfortunately, changing your working directory to
122−anywhere but the top directory is currently
123−[broken](http://github.com/urbit/urbit/issues/565). If this is
124−fixed when you're reading this, please submit a pull request for
125−this document explaining how to do it!
126
34
127−The last command we'll discuss in this quickstart is `+moon`,
35+## Restart
128−which only works on planets.
129
36
130− ~fintud-macrep:dojo> +moon
37+To restart your Urbit simply pass the name of your pier:
131− "moon: ~ramnec-rossug-fintud-macrep; ticket: ~holtyl-mognyl-dostyp-moslud"
132
38
133−This generates a random moon and ticket. A moon is a subidentity
39+ bin/urbit some-planet
134−of your planet, so it's a separate urbit that's associated with
135−your planet. If your planet is off, then your moon won't
136−function very well over the network (it'll work just fine
137−locally, of coures).
138
40
139−You can start up your moon with `bin/urbit -w moon-name -t
41+or
140−ticket`. We recommend doing this for development because there
141−are still some instabilities that have the potential to explode
142−your planet if you develop on it. If this happens, then your
143−planet will be unusable until the next continuity breach. If you
144−tell us how you exploded your planet, we may give you a
145−replacement, but it's still a hassle for you.
146
42
147−Don't worry too much about exploding your moons -- you have four
43+ bin/urbit comet
148−billion of them, and they get replenished after every continuity
149−breach. Still do file a bug, though.
docs/setup/install.md+30−59
@@ -4,34 +4,17 @@ sort: 1
4title: Install
4title: Install
5---
5---
6
6
7−# Installation guide
7+# Install
8
8
9−Urbit can be installed on most Unix systems. There is no Windows
9+Urbit is designed to run on any Unix box with an internet connection. Debian, OS X, FreeBSD and Fedora all work well.
10−port. Windows is a wonderful OS, we just haven't gotten to it yet.
11−Use a VM.
12
10
13−## Install as a package
11+Urbit is alpha software. It’s not yet completely stable, its crypto hasn’t been audited and there are plenty of rough edges. Just so you know what you're getting into.
14−
15−### OS X - Homebrew
16−
17− brew install --HEAD homebrew/head-only/urbit
18−
19−### Ubuntu or Debian
20−
21−Third-party packages are available, at:
22−
23− https://github.com/yebyen/urbit-deb
24−
25−Urbit is only supported on Jessie onward (but outbound HTTPS
26−requests only work on Stretch; I wish we knew why; help us!)
27
12
28## Build from source
13## Build from source
29
14
30−First, install all external dependencies. Then, download and make.
31−
32### Dependencies
15### Dependencies
33
16
34−urbit depends on:
17+Urbit depends on:
35
18
36 gcc (or clang)
19 gcc (or clang)
37 gmp
20 gmp
@@ -46,59 +29,47 @@ urbit depends on:
46 libssl-dev (Linux only)
29 libssl-dev (Linux only)
47 ncurses (Linux only)
30 ncurses (Linux only)
48
31
49−#### Ubuntu or Debian
32+Which can usually be installed with the following one-liners:
50−
51− sudo apt-get install libgmp3-dev libsigsegv-dev openssl libssl-dev libncurses5-dev git make exuberant-ctags automake autoconf libtool g++ ragel cmake re2c
52−
53−#### Fedora
54−
55− sudo dnf install gcc gcc-c++ git gmp-devel openssl-devel openssl ncurses-devel libsigsegv-devel ctags automake autoconf libtool ragel cmake re2c
56−
57−#### FreeBSD
58−
59− pkg install git gmake gmp libsigsegv openssl automake autoconf ragel cmake re2c libtool
60−
61−#### AWS
62−
63− sudo yum --enablerepo epel install gcc gcc-c++ git gmp-devel openssl-devel ncurses-devel libsigsegv-devel ctags automake autoconf libtool cmake re2c
64−
65−#### OS X - Homebrew
66
33
34+ # Mac OS X [Homebrew]
67 brew install git gmp libsigsegv openssl libtool autoconf automake cmake
35 brew install git gmp libsigsegv openssl libtool autoconf automake cmake
68
36
69−#### OS X - Macports
37+ # Mac OS X [Macports]
70−
71 sudo port install git gmp libsigsegv openssl autoconf automake cmake
38 sudo port install git gmp libsigsegv openssl autoconf automake cmake
72
39
73−Although `automake`/`autoconf`/`libtool` are generally installed by
40+ # Ubuntu or Debian
74−default, some have reported needing to uninstall and reinstall those three packages, at least with Homebrew. Your mileage may vary.
41+ sudo apt-get install libgmp3-dev libsigsegv-dev openssl libssl-dev libncurses5-dev git make exuberant-ctags automake autoconf libtool g++ ragel cmake re2c
75−
76−### Download and make
77−
78−Clone the repo:
79−
80− git clone https://github.com/urbit/urbit
81−
82−`cd` to the directory you just created:
83−
84− cd urbit
85
42
86−Run `make`:
43+ # Fedora
44+ sudo dnf install gcc gcc-c++ git gmp-devel openssl-devel openssl ncurses-devel libsigsegv-devel ctags automake autoconf libtool ragel cmake re2c
87
45
88− make
46+ # FreeBSD
47+ pkg install git gmake gmp libsigsegv openssl automake autoconf ragel cmake re2c libtool
89
48
90−(On FreeBSD, use `gmake` instead.)
49+ # AWS
50+ sudo yum —enablerepo epel install gcc gcc-c++ git gmp-devel openssl-devel ncurses-devel libsigsegv-devel ctags automake autoconf libtool cmake re2c
91
51
92−## Setting up swap
52+### Setting up swap
93
53
94−Urbit wants to map 2GB of memory when it boots up. We won't
54+Urbit wants to map 2GB of memory when it boots up. We won’t
95necessarily use all this memory, we just want to see it. On a
55necessarily use all this memory, we just want to see it. On a
96normal modern PC or Mac, this is not an issue. On some small
56normal modern PC or Mac, this is not an issue. On some small
97cloud virtual machines (Amazon or Digital Ocean), the default
57cloud virtual machines (Amazon or Digital Ocean), the default
98memory configuration is smaller than this, and you need to
58memory configuration is smaller than this, and you need to
99manually configure a swapfile.
59manually configure a swapfile.
100
60
101−Digital Ocean has a post on adding swap [here](https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04). For Amazon there's a StackOverflow thread [here](http://stackoverflow.com/questions/17173972/how-do-you-add-swap-to-an-ec2-instance).
61+Digital Ocean has a post on adding swap [here](https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04). For Amazon there’s a StackOverflow thread [here](http://stackoverflow.com/questions/17173972/how-do-you-add-swap-to-an-ec2-instance).
102
62
103−Don't spend a lot of time tweaking these settings; the simplest
63+Don’t spend a lot of time tweaking these settings; the simplest
104thing is fine.
64thing is fine.
65+
66+### Clone and make
67+
68+Once your dependencies are installed the rest is easy:
69+
70+ git clone https://github.com/urbit/urbit
71+ cd urbit
72+ make
73+ curl -o urbit.pill https://bootstrap.urbit.org/latest.pill
74+
75+After running `make` your Urbit executable lives at `bin/urbit`. The `.pill` file is a compiled binary of Arvo that Urbit uses to bootstrap itself.