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