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 :)