2015-06-17 04:27:28 +03:00
|
|
|
urbit
|
2013-09-29 00:21:18 +04:00
|
|
|
=====
|
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
urbit is a new programming and execution environment designed from
|
|
|
|
scratch.
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
At present urbit is under heavy development. If you're interested in
|
|
|
|
keeping in touch or following the project you can:
|
|
|
|
|
|
|
|
- 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-06-17 04:25:32 +03:00
|
|
|
All of the source code is distributed under the MIT license, but is for
|
|
|
|
all intents and purposes in the public domain.
|
2014-12-19 22:09:07 +03:00
|
|
|
|
2015-07-15 22:45:59 +03:00
|
|
|
Pacakges
|
|
|
|
--------
|
2013-09-29 07:16:11 +04:00
|
|
|
|
2015-07-15 22:45:59 +03:00
|
|
|
#### Ubuntu or Debian
|
|
|
|
|
2015-08-23 02:52:12 +03:00
|
|
|
Third-party pacakge 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
|
|
|
|
|
|
|
|
If this succeeds, proceed to the [Run section](#run). Otherwise, the build must be done manually:
|
|
|
|
|
|
|
|
Dependencies
|
|
|
|
------------
|
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-08-23 02:52:12 +03:00
|
|
|
*note: http requests are not supported on debian jessie
|
2015-07-14 21:46:58 +03:00
|
|
|
due to an ssl issue*
|
|
|
|
|
|
|
|
#### 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-07-15 22:45:59 +03:00
|
|
|
Run <a id="run"/>
|
2015-06-17 04:27:28 +03:00
|
|
|
---
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
Inside of the `urbit` directory run
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
bin/urbit -c pier
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
where `pier` is a directory that does not exist.
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
All your state (an append-only log and a memory checkpoint) will live in
|
|
|
|
this directory. The name of your pier doesn't matter and is not visible
|
|
|
|
internally.
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-17 20:21:25 +03:00
|
|
|
Begin
|
|
|
|
-----
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
To begin a 32-bit planet use
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-10 03:31:27 +03:00
|
|
|
:?begin
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
which will guide you through the setup process.
|
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-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-06-17 04:27:28 +03:00
|
|
|
There are four 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
|
|
|
;create channel %name 'description'
|
2014-06-10 01:56:56 +04:00
|
|
|
|
2015-06-17 04:27:28 +03:00
|
|
|
`;create` creates a channel on your urbit.
|
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
|
|
|
|
---------------
|
|
|
|
|
|
|
|
Our filesystem, `%clay` does not automatically sync to unix. If you want
|
|
|
|
to get files in and out of urbit, you'll need to setup a mount point.
|
|
|
|
Since each mount point is always watching for changes you may also want
|
|
|
|
to unmount from time to time.
|
|
|
|
|
|
|
|
The syntax is as follows (from `dojo`):
|
|
|
|
|
|
|
|
|mount <clay-path> <mount-name>
|
|
|
|
|
|
|
|
|unmount <mount-name>
|
|
|
|
|
2015-07-14 21:46:58 +03:00
|
|
|
or:
|
|
|
|
|
|
|
|
|unmount <clay-path>
|
|
|
|
|
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
|
|
|
|
thing. We call this a 'continuity breach' since we're breaking the
|
|
|
|
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-09-02 21:17: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-09-02 21:17: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),.
|