The core of isthmus is a portable shell script called eid. eid is works with bash, dash, busybox' default shell ash and hopefully more.
Copy and paste the following in a terminal, to create an isthmus working dir, and get a list of eid commands:
mkdir isthmus cd isthmus wget http://eid.cool/eid chmod a+x eid ./eid
eid - arch: i486
Available commands: add <package(s)> - add new package to i486/ del <package(s)> - remove package from i486/ info <package(s)> - get information about package files <package> - list files installed by a package rebuild [package(s)] - rebuild package from source for i486 or no argument to build all installed recipes in build order help <command> - get help for a specific command list - list packages search - search for a pattern in description, title or installed file paths update - update the collection of recipes installed - compact list of packages installed on i486/ build <package|file> - build package for a recipie log <package> - examine/monitor building log of package arch - query or set architecture used, a query shows current and lists available architectures update-server-info - compact db and generate sha256sums for static/ http sharing generate <image> - generate a filesystem image shell - open a shell in /i486/
Running eid this way, it is a platform builder.
You can also start a shell, which has the side effect of installing the neccesary packages rootfs, busybox and musl.
From within the shell you are operating in an isolated from scratch target filesystem, invoking eid now and it is the package manager - but now using the eid insharing most commands with how it acts as a platform builder.
~ $ eid info musl musl 1.1.4 compact libc for linux url: http://www.etalabs.net/musl/releases/musl-1.1.4.tar.gz license: MIT status: installed recipe: 28868323ee48b573d7d9678efefe0ee443562e49cbfc6f2c8fe586431cfc9a3f binary: 3a0915b51005ea011cfa2aa4a79fabec743c2cee5294bcfc8b06d5e00da52505 compressed: 757kb uncompressed: 2730kb deps: *rootfs *musl build deps:*rootfs *musl ~ $ eid info mc mc 4.8.14 url: http://ftp.midnight-commander.org/mc-4.8.14.tar.xz status: available recipe: 7883ce64a963f6e48af6758152f7e5748a9ce3e7b4d8865cff6aa3daf2de1b84 binary: 4e0a3bca464d37d9aed97af586e64570726a1534b7f4be3192da6a4c0178bb6c deps: -zlib -gettext -libffi -glib *rootfs *musl -ncurses -mc build deps:-zlib -gettext -libffi -glib -linux-headers *busybox -make -binutils -gcc -toolchain *rootfs *musl -ncurses -mc
It might be as easy as:
./eid arch arm ./eid shell
And you could be dropped into an arm environment living in the arm folder.
The most tested way is on 64bit debian hosts, further adaptations might be needed on other systems. Install qemu-user-binfmt and qemu-user. Build and install qemu in a i486 architecture for isthmus. Generate rootfs for arm, that should end up containing a qemu binary; that the systems binfmt suport has rigged up the right paths for. Using binary packages, the requirement of the i486 build-dep might be a hurdle most do not need to go through.
The corresponding qemu-user binfmts must be registered and the running kernel must have the binfmt-misc module. A missing feature in eid is making use of distcc or similar means of using cross compilers external to the jail to accelerate builds.