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)


Starting work (each day)

There is a lot to remember:

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


  • 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 <> 
  • Verify your default archive (I set it to a private archive)
$ tla my-default-archive
  • Verify (public & private) archives are registered
$ tla archives
  • Verify/set greedy revision libraries (speeds-up many tla operations but uses more disk)
$ tla my-revision-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 <>" 
$ 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 --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 <>"
Alexander (Sasha) Wait <>
  • make public archive [""] and register it

  • make private archive [""] and register it
$ mkdir archives 
$ tla make-archive -s /home/sasha/archives/2004
$ tla register-archive
$ tla register-archive sftp://sasha@inferno/home/sasha/public_html/archives/2004
  • set it as the default archive
sasha@inferno:~$ tla my-default-archive
  • 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
* creating branch 
* creating version
  • use rsync -- a script called "" 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
* creating branch
* creating version}}}
  • 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
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"]


  • make a public/private key-pair


  • 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

gpg --keyserver --send-keys 4153C516
gpg --keyserver --send-keys 4153C516


Mailing List

Wiki pages

Useful programs

Important Communities

See also