Coreworld GNU Arch

From FreeBio

I am using GNU Arch to help keep track of my development efforts on the Quantum Coreworld - a new digital evolution system in which quantum lifeforms can evolve in an otherwise natural, abstract biosphere. At present the production server accepts interventions from people over the Internet and pushes these to a CPU farm that computes the state of the biosphere in real-time. If there are no interventions waiting, the biosphere evolves autonomously. The computation is (relatively) expensive and is currently done by using the spare cycles of about 40 CPUs.

I'm too much of an Arch n00b to hope this tutorial will be of use to anyone but me.

--ASW 00:51, 28 Jun 2005 (EDT)

Contents

Starting work (each day)

There is a lot to remember:

  • passwords and pass-phrases
  • GPG and SSH commands
  • tla commands

Checklist

  • Ensure your SSH agent has the proper identities
$ ssh-add
{type pass phrase}

$ ssh-add -l
1024 8a:14:85:6b:73:6c:a1:36:fb:6a:65:cb:90:eb:9c:1b /home/sasha/.ssh/id_dsa (DSA)  

  • Ensure GPG agent is running and has the proper identities
$eval `q-agent &`

$q-client put 4153C516
{type pass phrase}

$ q-client list
4153C516        none 

  • Verify your TLA id
$ tla my-id
Alexander (Sasha) Wait <await@non.fiction.org> 
  • Verify your default archive (I set it to a private archive)
$ tla my-default-archive
sasha@fiction.org--2004
  • Verify (public & private) archives are registered
$ tla archives
await@non.fiction.org--2004
   sftp://await@non.fiction.org/home/await/public_html/archives/2004/
sasha@fiction.org--2004
   sftp://sasha@inferno/home/sasha/pubic_html/archives/2004
  • Verify/set greedy revision libraries (speeds-up many tla operations but uses more disk)
$ tla my-revision-library
/home/sasha/library
    
$ tla library-config -greedy /home/wait/library
* library /home/wait/library
greedy? yes
sparse? no

Setting up (done rarely)

$ tla my-id "Alexander (Sasha) Wait <await@non.fiction.org>" 
$ gpg --gen-key
$ mkdir -p ~/.arch-params/signing/
$ echo 'agpg --default-key 4153C516 --clearsign' > ~/.arch-params/signing/\=default
$ echo '/usr/bin/tla-gpg-check gpg_command="gpg --keyserver pgp.mit.edu --keyserver-options auto-key-retrieve --verify-files -"' > ~/.arch-params/signing/\=default.check

My public archive is available at:

Mirrored at:


GNU Arch

  • set id (eg. for commits)
sasha@inferno:~$ tla my-id "Alexander (Sasha) Wait <await@non.fiction.org>"
Alexander (Sasha) Wait <await@non.fiction.org>
  • make public archive ["await@non.fiction.org--2004"] and register it


  • make private archive ["sasha@fiction.org--2004"] and register it
$ mkdir archives 
$ tla make-archive -s sasha@fiction.org--2004 /home/sasha/archives/2004
$ tla register-archive await@non.fiction.org--2004 http://non.fiction.org/~await/archives/2004
$ tla register-archive sasha@fiction.org--2004 sftp://sasha@inferno/home/sasha/public_html/archives/2004
  • set it as the default archive
sasha@inferno:~$ tla my-default-archive sasha@fiction.org--2004
  • ensure archives are signed and signatures are checked. See ["Signing Archives"]
sasha@inferno:~$ mkdir ~/.arch-params/signing 
[create files for each registered and signed archive]
  • setup "html" category
wait@karuna:~$ tla archive-setup html--mainline--1.0.0
* creating category sasha@fiction.org--2004/html
* creating branch sasha@fiction.org--2004/html--mainline 
* creating version sasha@fiction.org--2004/html--mainline--1.0.0
  • use rsync -- a script called "update.pl" syncs a local directory to/from remote servers; this directory is maintained by GNU Arch.
  • setup "furl" category
sasha@inferno:~$ tla archive-setup furl--mainline--1.0.0
* creating category sasha@fiction.org--2004/furl
* creating branch sasha@fiction.org--2004/furl--mainline
* creating version sasha@fiction.org--2004/furl--mainline--1.0.0}}}
  • use browser to fetch "furl" zip and xml
  • import "furl" archive for the first time
wait@karuna:~/public_html/furl$ tla init-tree --nested furl--mainline--1.0.0
wait@karuna:~/public_html/furl$ tla inventory --names --both --source | xargs tla add
wait@karuna:~/public_html/furl$ tla tree-lint
wait@karuna:~/public_html/furl$ tla make-log
/home/wait/public_html/furl/++log.furl--mainline--1.0.0--sasha@fiction.org--2004
wait@karuna:~/public_html/furl$ tla import


Commands Used

  • ["Tla Reference/my-id"]
  • ["Tla Reference/make-archive"]
  • ["Tla Reference/archive-setup"]
  • ["Tla Reference/register-archive"]
  • ["Tla Reference/my-default-archive"]

OpenSSH

  • make a public/private key-pair

GnuPG

  • make a public/private key pair
  • edit a key (eg. to add an email address)
gpg --edit-key 4153C516 adduid
[follow prompts] 
  • upload your key
gpg --armor --export 4153C516 >gpg.txt
scp gpg.txt await@non.fiction.org:public_html

gpg --keyserver pgp.mit.edu --send-keys 4153C516
gpg --keyserver keyserver.bu.edu --send-keys 4153C516

Reference

Mailing List

Wiki pages


Useful programs

Important Communities

See also