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
- 1200 commits per month by T. Lord
- Mirrors and Remote repositories (thread)
- Two branches, slightly different set of files by C. Patrick
Wiki pages
- Ask Arch questions
- Arch Recipes
- Tla Reference
- Glossary
- ReplayVsUpdate
- ID-tagging methods
- Arch Tracking a project that doesn't use Arch
- Centralized Development
- Controlling Home Directories With Arch
- Signing Archives
- Backing up and restoring Arch archives
- Archive Registry
Useful programs
Important Communities
- GNU Arch Wiki - this community
- Savannah - free software development
- Arch.Debian.org - Arch repositories at Debian
- LiveJournal - a vibrant journaling community with more than one million members
- Wikipedia - world's largest open encyclopedia
- Slashdot - news for nerds

