shrub/README.markdown

170 lines
3.9 KiB
Markdown
Raw Normal View History

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
2014-06-10 01:56:56 +04:00
Install
2015-06-17 04:25:32 +03:00
-------
2013-09-29 07:16:11 +04: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
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-06-17 04:25:32 +03:00
#### Fedora
2014-06-10 01:56:56 +04:00
2014-12-06 00:55:27 +03:00
sudo yum install gcc gcc-c++ git gmp-devel openssl-devel openssl ncurses-devel libsigsegv-devel ctags automake autoconf libtool 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
2014-06-10 01:56:56 +04:00
2015-06-17 04:27:28 +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-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-17 04:27:28 +03:00
Run
---
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-17 04:27:28 +03:00
To start a process that is not yet started run `*proc` from the task
manager.
2014-06-10 01:56:56 +04: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-06-17 04:27:28 +03:00
Sysadmin
--------
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-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-06-17 04:27:28 +03:00
If you're interested in contributing to urbit development come and
`:talk` with us. We'll help you get oriented and up to speed.