Non-Root Chicken Scheme Setup
-----------------------------
date: 2022-10-02
tags: lang

Whenever I set up chicken on a new machine, I always forget how I
set up the chicken-install tool to not need root access (i.e.
per-user installs). Hence this note.

Add the following to your shell config:

	export CHICKEN_INSTALL_REPOSITORY=~/chicken/5
	export CHICKEN_REPOSITORY_PATH=~/chicken/5:/usr/lib/chicken/11

I like to then install linenoise for basic history in the repl:

	$ chicken-install linenoise
	$ cat <<EOM > ~/.csirc
	(import linenoise)
	(current-input-port (make-linenoise-port))
	EOM

Then to install chicken-doc locally, add the following env variable:

	export CHICKEN_DOC_REPOSITORY=~/chicken/chicken-doc

And install the chicken-doc tool:

	$ chicken-install chicken-doc

Note here that the egg recipe seems broken and doesn't honor
CHICKEN_INSTALL_REPOSITORY, so I find it's necessary to edit it
manually and re-run it:

	$ sed -i "s@/usr@$HOME@g" ~/.cache/chicken-install/chicken-doc/chicken-doc.install.sh
	$ sh ~/.cache/chicken-install/chicken-doc/chicken-doc.install.sh

I should try to upstream a patch to fix that... it does rely on
$HOME/bin being a viable location though!

Lastly fetch the chicken wiki:

	$ mkdir -p ~/chicken && cd ~/chicken
	$ curl -O https://3e8.org/pub/chicken-doc/chicken-doc-repo-5.tgz
	$ tar xzf chicken-doc-repo-5.tgz

Test it out!

	$ chicken-doc scheme

And get some offline work done :)