ArchLinux (docker)

Arch Linux is rolling-release linux distribution. That means, you get often updates wit the newest programs and libraries. Thats a nightmare for binary packages, because they depends on certain version of libraries.

Docker allows you to run diffrent images of many linux distributions in different versions. Thats cool, if you want to run something which requires libraries not available at your current Linux distribution.

I am going to describe you how to install nocheto into Arch Linux docker image.
I am not going to describe how to install or operate docker, read docker tutorial for it.

Step 1: run arch image


docker run -it -v /home/username/:/home/username/ --net host --privileged -v /dev/snd:/dev/snd --name "nocheto" archlinux:base-20221204.0.107760 /bin/bash

Change username to your home directory name.

Step 2: install packages

pacman -Fy
pacman -Sy vim vi less git sudo fakeroot make gcc autoconf flex bison libtool sqlite graphicsmagick libedit openssl

Step 3: create non-root account

In visudo, add this line: username ALL=(ALL) NOPASSWD: ALL

useradd username
visudo

Step 4: Install stockfish

git clone https://aur.archlinux.org/stockfish.git
cd stockfish
chown username .
su username
makepkg -si --noconfirm
exit
cd -
rm -rf stockfish

Step 5: Install nocheto

Download the .pkg.tar.xz package and install it by the following command:

pacman -S --noconfirm alsa-utils espeak
pacman -U --noconfirm <packagename>.pkg.tar.zst

<packagename>.pkg.tar.zst is the name of nocheto or nochetoengi package, i.e. nochetoengi-2.5.0-0-x86_64.pkg.tar.zst or nocheto-2.5.0-0-x86_64.pkg.tar.zst.

Step 6: Run it

Once you exit from docker, to run the container you just created again, first find out its CONTAINER_ID and then run it like this:

docker ps --all
CONTAINER ID        IMAGE                COMMAND             CREATED             STATUS                     ...
8ee78412c83e        archlinux:2.......   "/bin/bash"         41 minutes ago      Exited (0) 2 minutes ago   ...

docker start -i 8ee78412c83e

Once you start the container again, you can connect to it with another shell (in another console window) like this:

docker exec -ti 8ee78412c83e /bin/bash

You can also run directly one of nocheto programs:

docker exec -it c9388f57463a nochetoclient

Note: you can use container name instead of CONTAINER ID:

docker exec -it nocheto nochetoclient

Continue with postinstall instructions.

ldd output

The ldd output shows which libraries are used by nocheto. If you have the same libraries installed in a different distribution, nocheto will probably work there too.

$ ldd /usr/local/bin/nochetolinux-vdso.so.1 (0x00007fff99b9b000)
        libedit.so.0 => /usr/lib/libedit.so.0 (0x00007f252c189000)
        libcrypto.so.3 => /usr/lib/libcrypto.so.3 (0x00007f252bd3e000)
        libssl.so.3 => /usr/lib/libssl.so.3 (0x00007f252bc9e000)
        libsqlite3.so.0 => /usr/lib/libsqlite3.so.0 (0x00007f252bb51000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f252b91a000)
        libm.so.6 => /usr/lib/libm.so.6 (0x00007f252b832000)
        libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f252b810000)
        libc.so.6 => /usr/lib/libc.so.6 (0x00007f252b629000)
        libncursesw.so.6 => /usr/lib/libncursesw.so.6 (0x00007f252b5b5000)
        /lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f252c807000)