en cs

ArchLinux (docker)

Arch Linux is a rolling-release linux distribution. That means you get updates very often with the newest programs and libraries. It sounds great, but it is a nightmare for binary packages developers, because packages usually depends on libraries of a certain versions.

Docker allows you to run diffrent images of many linux distributions in different versions under your Linux OS. That is very usefull when you want to run something which requires libraries not available at your current OS.

Installation

This page describes how to install nocheto into a specific version of an Arch Linux docker image. The advantage of this is that you can run nocheto on every Linux supporting docker (which is almost any modern Linux distribution). There are also disadvantages, like the sound might not be supported.
This page doesn't describe how to install or operate docker, read the official docker tutorial if you need it.

Step 1: run Arch image

Assuming you have installed and configured docker and the right privileges (you might need to run it with sudo), run the following command (change username to the name of your home directory):

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

You can imagine the Arch image as a DVD. Once you run it, docker create "live OS" of it called container. You can run and create many containers from one image. (And you can also create an image from container).

Step 2: install required packages

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

Step 3: create non-root account

In this and the following steps, change username for any username you want to use in the docker container.

In visudo, add this line: username ALL=(ALL) NOPASSWD: ALL (somewhere after the line root ALL=(ALL:ALL) 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 purchased Arch ".pkg.tar.zst" package into the /home/username directory and install it by the following commands:

cd /home/username/
pacman -S --noconfirm alsa-utils espeak-ng unzip
pacman -U --noconfirm ./<packagename>.pkg.tar.zst

<packagename>.pkg.tar.zst is the name of nocheto package, for example nocheto-3.1.0-0-x86_64.pkg.tar.zst.

Run nocheto. It will create ~/.nocheto/ directory with all subdirectories and files it require. It will fail to run because the path to stockfish in the configuration file is wrong. Edit ~/.nocheto/config/nocheto.ini and change line engine = /usr/games/stockfish to engine = /usr/bin/stockfish.

Executing nocheto

Once you exit from the docker container, to run the container again, run:

exit # to exit the docker container if you are still in
docker ps --all # to see your created container
CONTAINER ID        IMAGE                COMMAND             CREATED             STATUS                     ...
8ee78412c83e        archlinux:2.......   "/bin/bash"         41 minutes ago      Exited (0) 2 minutes ago   ...

docker start nocheto3 # run the container again

Once you started the container again, you can connect to it like this:

docker exec -ti nocheto3 /bin/bash

And now you can do in the container whatever you need to. For example the postinstall steps, run nocheto, configure it etc.

The easiest way to run nocheto executables directly is this (after exiting the container):

docker exec -it nocheto3 nocheto
docker exec -it nocheto3 nochetoclient
...
To make the execution even easier, you can of course add aliases into your bash configuration file:
alias nocheto='docker exec -it nocheto3 nocheto'.
Just remember you have to start the container first:
docker start nocheto3
You can also configure docker to start this container automatically after you OS starts. See the official documentation.

Run docker exec -ti nocheto3 /bin/bash and continue with the postinstall instructions.

ldd output

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

ldd /usr/local/bin/nocheto
	linux-vdso.so.1 (0x00007ffe4d78a000)
	libcrypto.so.3 => /usr/lib/libcrypto.so.3 (0x00007ab4a8e72000)
	libssl.so.3 => /usr/lib/libssl.so.3 (0x00007ab4a8d96000)
	libsqlite3.so.0 => /usr/lib/libsqlite3.so.0 (0x00007ab4a8c25000)
	libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007ab4a899f000)
	libm.so.6 => /usr/lib/libm.so.6 (0x00007ab4a88a7000)
	libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007ab4a8879000)
	libc.so.6 => /usr/lib/libc.so.6 (0x00007ab4a8685000)
	/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007ab4a9ad5000)