en cs

ArchLinux (docker)

Arch Linux je linuxová distribuce s průběžnými aktualizacemi (rolling-release). To znamená, že velmi často dostáváte aktualizace s nejnovějšími programy a knihovnami. Zní to skvěle, ale je to noční můra pro vývojáře binárních balíčků, protože balíčky obvykle závisí na knihovnách určitých verzí.

Docker vám umožňuje spouštět různé obrazy mnoha linuxových distribucí v různých verzích pod vaším operačním systémem Linux. To je velmi užitečné, když chcete spustit něco, co vyžaduje knihovny, které nejsou k dispozici ve vašem aktuálním operačním systému.

Instalace

Tato stránka popisuje, jak nainstalovat nástroj "nocheto" do specifické verze obrazu Dockeru s Arch Linuxem. Výhodou je, že "nocheto" pak můžete spustit na každém Linuxu, který podporuje Docker (což je téměř každá moderní linuxová distribuce). Jsou tu ale i nevýhody, jako například že zvuk nemusí být podporován.
Tato stránka nepopisuje instalaci ani ovládání Dockeru, v případě potřeby si přečtěte oficiální tutoriál k Dockeru.

Step 1: spusťe obraz Archu

Za předpokladu, že máte nainstalovaný a nakonfigurovaný Docker a správná oprávnění (možná ho budete muset spustit s sudo), spusťte následující příkaz (změňte username na název vašeho domovského adresáře):

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

Obraz Archu si můžete představit jako DVD. Jakmile ho spustíte, Docker vytvoří "živý operační systém" zvaný kontejner. Z jednoho obrazu můžete spustit a vytvořit mnoho kontejnerů. (A také můžete vytvořit obraz z kontejneru).

Step 2: Nainstalujte potřebné balíčky

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

Step 3: vytvořete ne-rootovský účet

V tom to a dalších krocích, nahraďte username jakýmkoliv uživatelským jménem které chcete v kontejneru dockeru používat.

Ve visudo, přidejte tuto řádku: username ALL=(ALL) NOPASSWD: ALL (někam za řádku root ALL=(ALL:ALL) ALL).

useradd username
visudo

Step 4: Nainstalujte 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: Nainstalujte nocheto

Stáhněte si zakoupený balíček pro ARch ".pkg.tar.zst" do adresáře /home/username a nainstalujte jej pomocí následujících příkazů:

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

<packagename>.pkg.tar.zst je jméno balíčku nocheta, například nocheto-3.1.0-0-x86_64.pkg.tar.zst.

Spusťte nocheto. Vytvoří adresář ~/.nocheto/ se všemi podadresáři a soubory, které potřebuje. Spuštění se nezdaří, protože cesta ke Stockfish v konfiguračním souboru je neplatná. Otevřete soubor ~/.nocheto/config/nocheto.ini a změňte řádek engine = /usr/games/stockfish na engine = /usr/bin/stockfish.

Spouštění nocheta

Poté co odejdete z vytvořeného konejneru, k jeho opětovnému spuštění použijte následující příkazy:

exit # opuštění kontejneru pokud jste stále  v něm
docker ps --all # zobrazení vašich vytvořených kontainerů
CONTAINER ID        IMAGE                COMMAND             CREATED             STATUS                     ...
8ee78412c83e        archlinux:........   "/bin/bash"         41 minutes ago      Exited (0) 2 minutes ago   ...

docker start nocheto3 # spusťte konainer

Poté co kontainer znovu běží, můžete se do něj připojit takto:

docker exec -ti nocheto3 /bin/bash

A nyní můžete v kontaineru dělat vše co potřebujete (např. ponistalační kroky), spustit nocheto, konfigurovat jej atd.

Nejjednodušší cesta jak spustit programy nocheta je následující (poté co jste opustitli kontejner):

docker exec -it nocheto3 nocheto
docker exec -it nocheto3 nochetoclient
...
Spuštění si můžete ještě zjednodušit přidáním aliasů do konfiguračního souboru vašecho bashe:
alias nocheto='docker exec -it nocheto3 nocheto'.
Nezapomeňte že musíte kontainer nejdříve spustit:
docker start nocheto3
Docker také můžete nakonfigurovat tak, aby tento kontainer spouštěl automaticky po spuštění vašecho OS. Viz oficiální dokumentace dockeru.

Spusťte docker exec -ti nocheto3 /bin/bash a pokračujte s poinstalačním nastavením.

ldd output

Výstup z ldd ukazuje knihovny které jsou použity spustitelným souborem nocheto. Pokud máte linuxovou distribuci se stejnými knohovnami ve stejných verzích, nocheto bude pravděpodobně pracovat na tomto linuxu také.

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)