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:20200908 /bin/bash

Change username to your home directory name.

Step 2: install some 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 SOCI

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

Step 5: 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 6: 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.xz

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

Step 7: 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:20200908   "/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

Nocheto for this distribution require: graphicsmagick gcc readline openssl soci sqlite

$ ldd /usr/local/bin/nochetoengi
        linux-vdso.so.1 (0x00007ffe7ea78000)
        liblcms2.so.2 => /usr/lib/liblcms2.so.2 (0x00007f0145218000)
        libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f01451f6000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f0145019000)
        libm.so.6 => /usr/lib/libm.so.6 (0x00007f0144ed3000)
        libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f0144eb9000)
        libc.so.6 => /usr/lib/libc.so.6 (0x00007f0144cf0000)
        /lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f014538a000)

ldd /usr/local/bin/nocheto
        linux-vdso.so.1 (0x00007fff7d09d000)
        libGraphicsMagick++.so.12 => /usr/lib/libGraphicsMagick++.so.12 (0x00007f1f4fcd3000)
        libedit.so.0 => /usr/lib/libedit.so.0 (0x00007f1f4fc98000)
        libcrypto.so.1.1 => /usr/lib/libcrypto.so.1.1 (0x00007f1f4f9ba000)
        libssl.so.1.1 => /usr/lib/libssl.so.1.1 (0x00007f1f4f92a000)
        libsoci_sqlite3.so.4.0 => /usr/lib/libsoci_sqlite3.so.4.0 (0x00007f1f4f90a000)
        libsoci_core.so.4.0 => /usr/lib/libsoci_core.so.4.0 (0x00007f1f4f8b6000)
        libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f1f4f892000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f1f4f6b5000)
        libm.so.6 => /usr/lib/libm.so.6 (0x00007f1f4f56f000)
        libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f1f4f555000)
        libc.so.6 => /usr/lib/libc.so.6 (0x00007f1f4f38c000)
        libGraphicsMagick.so.3 => /usr/lib/libGraphicsMagick.so.3 (0x00007f1f4f1c8000)
        liblcms2.so.2 => /usr/lib/liblcms2.so.2 (0x00007f1f4f167000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00007f1f4f093000)
        libXext.so.6 => /usr/lib/libXext.so.6 (0x00007f1f4f07e000)
        libSM.so.6 => /usr/lib/libSM.so.6 (0x00007f1f4f074000)
        libICE.so.6 => /usr/lib/libICE.so.6 (0x00007f1f4f057000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f1f4ef16000)
        liblzma.so.5 => /usr/lib/liblzma.so.5 (0x00007f1f4eeec000)
        libbz2.so.1.0 => /usr/lib/libbz2.so.1.0 (0x00007f1f4eed9000)
        libz.so.1 => /usr/lib/libz.so.1 (0x00007f1f4eebf000)
        libltdl.so.7 => /usr/lib/libltdl.so.7 (0x00007f1f4eeb3000)
        libncursesw.so.6 => /usr/lib/libncursesw.so.6 (0x00007f1f4ee42000)
        libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f1f4ee3c000)
        libsqlite3.so.0 => /usr/lib/libsqlite3.so.0 (0x00007f1f4ecfe000)
        /lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f1f500c5000)
        libgomp.so.1 => /usr/lib/libgomp.so.1 (0x00007f1f4ecbd000)
        libpng16.so.16 => /usr/lib/libpng16.so.16 (0x00007f1f4ec86000)
        libharfbuzz.so.0 => /usr/lib/libharfbuzz.so.0 (0x00007f1f4ebb7000)
        libuuid.so.1 => /usr/lib/libuuid.so.1 (0x00007f1f4ebae000)
        libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007f1f4eb82000)
        libgraphite2.so.3 => /usr/lib/libgraphite2.so.3 (0x00007f1f4eb5d000)
        libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00007f1f4ea2a000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f1f4ea25000)
        libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f1f4ea1d000)
        libpcre.so.1 => /usr/lib/libpcre.so.1 (0x00007f1f4e9a9000)