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