2015-06-17 04:27:28 +03:00
|
|
|
urbit
|
2013-09-29 00:21:18 +04:00
|
|
|
=====
|
|
|
|
|
2015-09-25 02:34:01 +03:00
|
|
|
Urbit is a new computing environment designed from scratch.
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-10-06 00:01:41 +03:00
|
|
|
At present urbit is under heavy development. It's not useful for any
|
|
|
|
external purpose. Documentation is completely inadequate. Anyone can use
|
|
|
|
the interpreter, of course, but the network is invitation-only.
|
2015-09-23 00:04:11 +03:00
|
|
|
|
2015-10-06 00:01:41 +03:00
|
|
|
If you're interested in keeping in touch or following the project you
|
|
|
|
can:
|
2015-06-17 04:27:28 +03:00
|
|
|
|
|
|
|
- Enter your email address at [urbit.org](http://urbit.org).
|
|
|
|
- Subscribe to the
|
|
|
|
[urbit-dev](https://groups.google.com/forum/#!forum/urbit-dev)
|
|
|
|
mailing list.
|
|
|
|
- Follow [@urbit_](https://twitter.com/urbit\_) on Twitter.
|
|
|
|
- Get in touch with us via email, <urbit@urbit.org>
|
2013-09-29 00:21:18 +04:00
|
|
|
|
2015-09-25 02:34:01 +03:00
|
|
|
All of the source code is distributed under the MIT license.
|
2014-12-19 22:09:07 +03:00
|
|
|
|
2015-09-23 00:04:11 +03:00
|
|
|
Packages
|
2015-07-15 22:45:59 +03:00
|
|
|
--------
|
2013-09-29 07:16:11 +04:00
|
|
|
|
2015-07-15 22:45:59 +03:00
|
|
|
#### Ubuntu or Debian
|
|
|
|
|
2015-10-06 00:01:41 +03:00
|
|
|
Third-party package files are maintained at
|
|
|
|
https://github.com/yebyen/urbit-deb. Urbit is only supported on Jessie
|
|
|
|
onward.
|
2015-07-15 22:45:59 +03:00
|
|
|
|
|
|
|
#### OS X - Homebrew
|
|
|
|
|
|
|
|
brew install --HEAD homebrew/head-only/urbit
|
|
|
|
|
|
|
|
Dependencies
|
|
|
|
------------
|
2015-10-06 00:01:41 +03:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
urbit depends on:
|
2014-06-10 01:56:56 +04:00
|
|
|
|
|
|
|
gcc
|
|
|
|
gmp
|
|
|
|
libsigsegv
|
|
|
|
openssl
|
2014-08-26 21:31:38 +04:00
|
|
|
automake
|
|
|
|
autoconf
|
2014-12-06 00:55:27 +03:00
|
|
|
ragel
|
2014-12-05 23:29:13 +03:00
|
|
|
cmake
|
2014-12-06 00:55:27 +03:00
|
|
|
re2c
|
2014-08-26 21:31:38 +04:00
|
|
|
libtool
|
2014-06-10 01:56:56 +04:00
|
|
|
libssl-dev (Linux only)
|
|
|
|
ncurses (Linux only)
|
|
|
|
|
2015-06-17 04:25:32 +03:00
|
|
|
#### Ubuntu or Debian
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2014-12-06 00:55:27 +03:00
|
|
|
sudo apt-get install libgmp3-dev libsigsegv-dev openssl libssl-dev libncurses5-dev git make exuberant-ctags automake autoconf libtool g++ ragel cmake re2c
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-10-06 00:01:41 +03:00
|
|
|
*note: http requests are not supported on debian jessie due to an ssl
|
|
|
|
issue*
|
2015-07-14 21:46:58 +03:00
|
|
|
|
|
|
|
#### Fedora
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-18 10:26:06 +03:00
|
|
|
sudo dnf install gcc gcc-c++ git gmp-devel openssl-devel openssl ncurses-devel libsigsegv-devel ctags automake autoconf libtool ragel cmake re2c
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-17 04:25:32 +03:00
|
|
|
#### AWS
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-17 21:34:25 +03:00
|
|
|
sudo yum --enablerepo epel install gcc gcc-c++ git gmp-devel openssl-devel ncurses-devel libsigsegv-devel ctags automake autoconf libtool cmake re2c
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
#### OS X - Homebrew
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-17 04:56:58 +03:00
|
|
|
brew install git gmp libsigsegv openssl libtool autoconf automake cmake
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
#### OS X - Macports
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
sudo port install git gmp libsigsegv openssl autoconf automake cmake
|
2015-07-14 21:33:24 +03:00
|
|
|
|
2015-07-05 08:04:14 +03:00
|
|
|
Although `automake`/`autoconf`/`libtool` are generally installed by
|
|
|
|
default, some have reported needing to uninstall and reinstall those
|
|
|
|
three packages, at least with Homebrew. Your mileage may vary.
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-19 06:52:38 +03:00
|
|
|
#### FreeBSD
|
|
|
|
|
2015-06-19 07:07:46 +03:00
|
|
|
pkg install git gmake gmp libsigsegv openssl automake autoconf ragel cmake re2c libtool
|
2015-06-19 06:52:38 +03:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
Build
|
|
|
|
-----
|
2014-08-26 21:31:38 +04:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
Clone the repo:
|
2014-06-10 01:56:56 +04:00
|
|
|
|
|
|
|
git clone git://github.com/urbit/urbit.git
|
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
`cd` to the directory you just created:
|
2014-06-10 01:56:56 +04:00
|
|
|
|
|
|
|
cd urbit
|
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
Just run `make`:
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
make
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-19 06:52:38 +03:00
|
|
|
(On FreeBSD, use `gmake` instead.)
|
|
|
|
|
2015-09-25 02:34:01 +03:00
|
|
|
Run (with a network invitation)
|
2015-10-06 00:01:41 +03:00
|
|
|
-------------------------------
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-09-25 02:34:01 +03:00
|
|
|
If you have a planet named `~fintud-macrep` and a ticket
|
2015-10-06 00:01:41 +03:00
|
|
|
`~fortyv-tombyt-tabsen-sonres`, run
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-09-25 02:34:01 +03:00
|
|
|
bin/urbit -w fintud-macrep -t fortyv-tombyt-tabsen-sonres
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-09-25 02:34:01 +03:00
|
|
|
Your pier (all Urbit state, log and checkpoint) will be in
|
2015-10-06 00:01:41 +03:00
|
|
|
`./fintud-macrep`.
|
|
|
|
|
|
|
|
To start Urbit again omit the `-w` and `-t` flags:
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-09-25 02:34:01 +03:00
|
|
|
bin/urbit fintud-macrep
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-09-25 02:34:01 +03:00
|
|
|
Run (without a network invitation)
|
2015-10-06 00:01:41 +03:00
|
|
|
----------------------------------
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-09-25 02:34:01 +03:00
|
|
|
bin/urbit -c mypier
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-10-06 00:01:41 +03:00
|
|
|
Urbit will create a comet in `mypier`.
|
|
|
|
|
|
|
|
To start Urbit again omit the `-c` flag:
|
2015-09-25 02:34:01 +03:00
|
|
|
|
|
|
|
bin/urbit mypier
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
Basics
|
|
|
|
------
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
`^v` will switch between the task manager and the focussed process. `^x`
|
|
|
|
will switch between processes.
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-18 00:00:29 +03:00
|
|
|
To start a process that is not yet started, run `*proc` from the task
|
2015-06-17 04:27:28 +03:00
|
|
|
manager.
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-07-14 21:33:24 +03:00
|
|
|
To connect your console to a process that has already been started, run
|
|
|
|
`+proc` from the task manager. Note that the process must be one that
|
|
|
|
supports console access, such as dojo and talk.
|
2015-06-18 00:00:29 +03:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
`^d` will exit the pier from the task manager. No matter how you shut
|
|
|
|
your urbit down you'll be returned to exactly the same state as when you
|
|
|
|
turned it off.
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
Talk
|
|
|
|
----
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-10-06 00:01:41 +03:00
|
|
|
If you're on the network, you can use its most basic application,
|
|
|
|
`talk`.
|
2015-09-25 02:34:01 +03:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
If `talk` is not running, start it with `*talk` from the task manager.
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
Use `^x` to switch to the `talk` prompt and then run
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
;join ~doznec/urbit-meta
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
to join the `urbit-meta` channel. People in there are helpful.
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-09-23 00:04:11 +03:00
|
|
|
There are three main `talk` commands:
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
;join ~urbit-name/channel
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
`;join` subscribes your main feed to a remote channel.
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
;<number>
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
`;<number>` activates a previous message number, like a URL that got
|
|
|
|
clipped.
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
;<target>
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
`;<target>` sets the target for your messages, such as `;~urbit-name`
|
|
|
|
for a private message.
|
2015-05-13 00:12:53 +03:00
|
|
|
|
2015-07-14 21:33:24 +03:00
|
|
|
Filesystem Sync
|
|
|
|
---------------
|
|
|
|
|
2015-10-06 00:01:41 +03:00
|
|
|
The Urbit filesystem, `%clay` doesn't automatically sync to unix. If
|
|
|
|
you'd like to browse the contents of your Urbit from unix you'll need to
|
|
|
|
use `|mount`.
|
|
|
|
|
|
|
|
`|mount` creates a mirror in unix of files from `%clay` that is always
|
|
|
|
watching for changes. To sync your entire `home/` desk run:
|
|
|
|
|
|
|
|
|mount %
|
|
|
|
|
|
|
|
you should see a directory called `home/` get created inside your pier.
|
|
|
|
When you change files in this directory the changes will get synced into
|
|
|
|
your urbit.
|
|
|
|
|
2015-07-14 21:33:24 +03:00
|
|
|
Since each mount point is always watching for changes you may also want
|
|
|
|
to unmount from time to time.
|
|
|
|
|
2015-10-06 00:01:41 +03:00
|
|
|
The full syntax is as follows (from `dojo`):
|
2015-07-14 21:33:24 +03:00
|
|
|
|
2015-10-06 00:35:16 +03:00
|
|
|
|mount <path-in-clay> [<mount-name>]
|
|
|
|
|
|
|
|
The `<mount-name>` is optional and defaults to the last part of
|
|
|
|
the `<path-in-clay>`.
|
2015-07-14 21:33:24 +03:00
|
|
|
|
|
|
|
|unmount <mount-name>
|
|
|
|
|
2015-07-14 21:46:58 +03:00
|
|
|
or:
|
|
|
|
|
2015-10-06 00:35:16 +03:00
|
|
|
|unmount <path-in-clay>
|
2015-07-14 21:46:58 +03:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
Sysadmin
|
|
|
|
--------
|
2015-05-13 00:12:53 +03:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
For the most part, updates to the system are automatically synced to
|
|
|
|
your urbit across the network.
|
2015-05-13 00:12:53 +03:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
When we make updates to the interpreter you should be able to shut down
|
|
|
|
your urbit and:
|
2014-06-10 01:56:56 +04:00
|
|
|
|
|
|
|
git pull origin master
|
2015-06-17 04:27:28 +03:00
|
|
|
make
|
|
|
|
bin/urbit pier
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
where pier is the name of your pier.
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
While the network is still young from time to time we reboot the entire
|
2015-09-23 00:04:11 +03:00
|
|
|
universe. We call this a 'continuity breach' since we're breaking the
|
2015-06-17 04:27:28 +03:00
|
|
|
continuity of our crypto.
|
2013-09-29 00:21:18 +04:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
When this happens you'll need to back up your data and start a fresh
|
|
|
|
pier. Your original ticket will still work.
|
2013-09-29 00:21:18 +04:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
Contributing
|
|
|
|
------------
|
2013-09-29 00:21:18 +04:00
|
|
|
|
2015-10-06 00:01:41 +03:00
|
|
|
The first step in contributing to urbit is to come and join us on
|
|
|
|
`:talk`.
|
2015-09-02 21:32:15 +03:00
|
|
|
|
2015-10-06 00:01:41 +03:00
|
|
|
For more detailed instructions check out
|
2015-09-02 21:32:15 +03:00
|
|
|
[`contributing.md`](https://github.com/urbit/urbit/blob/master/CONTRIBUTING.md),.
|