Knossos
Achtung!
Die Verwendung dieses Howto geschieht auf eigene Gefahr. Bei Problemen mit der Anleitung melde dies bitte in der dazugehörigen Diskussion und wende dich zusätzlich an den Verfasser des Howtos.
Hinweis:
Diese Howto-Anleitung wurde zuletzt von praseodym am 23.05.2021 unter Ubuntu 20.04 erfolgreich getestet.
Knossos 🇬🇧 ist ein kombinierter Starter und Installer für Freespace 2 und die unter Total Conversions genannten Babylon Project, Diaspora, aber auch für Wing Commander. Die einzelnen Kampagnen ("mod" genannt) benötigen verschiedene Ausgabestadien der fs2_open Engine oder der Spieleverbesserungen ("mediavps") oder anderer Abhängigkeiten. Updates müssen ansonsten prinzipiell von Hand geprüft und nachinstalliert werden, das geht einfach per Mausklick.
Für Bug-Reports, Upload derselben oder File-Integritätsprüfungen stehen komfortable Menüführungen zur Verfügung, die selbsterklärend sind. Spieleengines müssen nicht mehr mühsam selbst kompiliert werden, sondern sind Teil des jeweils aktuellen "mod"-Paketes.
GUI | Mods |
Anleitung¶
Installation aus DEB-Paket¶
Seit kurzem gibt es auch ein DEB:
wget https://pxo.nottheeye.com/files/test/knossos/knossos_0.15.0-dev+73b131a_all.deb sudo dpkg -i knossos*.deb
Es wird ein Starter angelegt. Sollte eine bereits vorhandene Version (s.u.) installiert sein, werden die installierten Mods automatisch erkannt (getestet unter 20.04).
Ubuntu 18.04¶
libpng12-0 ist unter 18.04 nicht vorhanden und muss von Hand nachinstalliert werden:
32bit:
wget https://launchpad.net/~ubuntu-security/+archive/ubuntu/ppa/+build/15108507/+files/libpng12-0_1.2.54-1ubuntu1.1_i386.deb
64bit:
wget https://launchpad.net/~ubuntu-security/+archive/ubuntu/ppa/+build/15108504/+files/libpng12-0_1.2.54-1ubuntu1.1_amd64.deb
Installation:
sudo dpkg -i libpng12-*.deb
PPA¶
Hier kann man Knossos 0.13.3 über ein PPA installieren:
Adresszeile zum Hinzufügen des PPAs:
ppa:ngld/knossos
Hinweis!
Zusätzliche Fremdquellen können das System gefährden.
Ein PPA unterstützt nicht zwangsläufig alle Ubuntu-Versionen. Weitere Informationen sind der PPA-Beschreibung des Eigentümers/Teams ngld zu entnehmen.
knossos
Befehl zum Installieren der Pakete:
sudo apt-get install knossos
Oder mit apturl installieren, Link: apt://knossos
Aus dem Quellcode¶
nodejs
npm
python3-wheel
python3-setuptools
pyqt5-dev
pyqt5-dev-tools
qttools5-dev-tools
qt5-default
curl
python3-pyqt5.qtwebengine
python3-pyqt5.qtwebchannel
python3-requests-toolbelt
python3-ply
Befehl zum Installieren der Pakete:
sudo apt-get install nodejs npm python3-wheel python3-setuptools pyqt5-dev pyqt5-dev-tools qttools5-dev-tools qt5-default curl python3-pyqt5.qtwebengine python3-pyqt5.qtwebchannel python3-requests-toolbelt python3-ply
Oder mit apturl installieren, Link: apt://nodejs,npm,python3-wheel,python3-setuptools,pyqt5-dev,pyqt5-dev-tools,qttools5-dev-tools,qt5-default,curl,python3-pyqt5.qtwebengine,python3-pyqt5.qtwebchannel,python3-requests-toolbelt,python3-ply
Dann die folgenden Befehle ausführen:
wget http://ppa.launchpad.net/ngld/knossos/ubuntu/pool/main/p/python3-semantic-version/python3-semantic-version_2.3.1-1_all.deb wget http://ppa.launchpad.net/ngld/knossos/ubuntu/pool/main/k/knossos/knossos_0.13.3-1~cosmic1_all.deb wget http://ppa.launchpad.net/ngld/knossos/ubuntu/pool/main/p/python3-token-bucket/python3-token-bucket_0.2.0-1_all.deb wget http://de.archive.ubuntu.com/ubuntu/pool/universe/p/python-raven/python3-raven_6.3.0-2_all.deb curl https://raw.githubusercontent.com/pypa/pipenv/master/get-pipenv.py | sudo python3 curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list sudo apt update && sudo apt install yarn pipenv install yarn install sudo dpkg -i *.deb echo 'exec python3 /usr/share/knossos/knossos/__main__.py "$@"' | sudo tee /usr/bin/knossos #das ist ein Bug gewesen
20.04¶
Aus dem Quellcode¶
libpng12-0 ist unter 20.04 nicht vorhanden und muss über ein PPA nachinstalliert werden:
python3
build-essential
libasyncns0:i386
libavahi-client-dev:i386
libc6:i386
libcaca0:i386
libdbus-1-3:i386
libflac8:i386
libgcc1:i386
libglu1-mesa:i386
libjansson4:i386
libjpeg-turbo8:i386
liblua5.1-0:i386
libncursesw5:i386
libogg0:i386
libopenal1:i386
libpulse0:i386
libpulse-dev:i386
libsdl1.2debian:i386
libsdl1.2-dev:i386
libslang2:i386
libsndfile1:i386
libstdc++6:i386
libtheora0:i386
libtinfo5:i386
libvorbis0a:i386
libvorbisenc2:i386
libvorbisfile3:i386
libwrap0:i386
libx11-6:i386
libxau6:i386
libxcb1:i386
libxdmcp6:i386
libxext6:i386
zlib1g:i386
python3-wheel
python3-setuptools
pyqt5-dev
pyqt5-dev-tools
qttools5-dev-tools
qt5-default
curl
python3-pyqt5.qtwebengine
python3-pyqt5.qtwebchannel
python3-requests-toolbelt
python3-ply
git
p7zip-full
libopenal-dev
ninja-build
pipenv
yarnpkg
python3-semantic-version
libsdl2-dev
libgtk-3-dev
liblzma-dev
libzstd-dev
zlib1g-dev
Befehl zum Installieren der Pakete:
sudo apt-get install python3 build-essential libasyncns0:i386 libavahi-client-dev:i386 libc6:i386 libcaca0:i386 libdbus-1-3:i386 libflac8:i386 libgcc1:i386 libglu1-mesa:i386 libjansson4:i386 libjpeg-turbo8:i386 liblua5.1-0:i386 libncursesw5:i386 libogg0:i386 libopenal1:i386 libpulse0:i386 libpulse-dev:i386 libsdl1.2debian:i386 libsdl1.2-dev:i386 libslang2:i386 libsndfile1:i386 libstdc++6:i386 libtheora0:i386 libtinfo5:i386 libvorbis0a:i386 libvorbisenc2:i386 libvorbisfile3:i386 libwrap0:i386 libx11-6:i386 libxau6:i386 libxcb1:i386 libxdmcp6:i386 libxext6:i386 zlib1g:i386 python3-wheel python3-setuptools pyqt5-dev pyqt5-dev-tools qttools5-dev-tools qt5-default curl python3-pyqt5.qtwebengine python3-pyqt5.qtwebchannel python3-requests-toolbelt python3-ply git p7zip-full libopenal-dev ninja-build pipenv yarnpkg python3-semantic-version libsdl2-dev libgtk-3-dev liblzma-dev libzstd-dev zlib1g-dev
Oder mit apturl installieren, Link: apt://python3,build-essential,libasyncns0:i386,libavahi-client-dev:i386,libc6:i386,libcaca0:i386,libdbus-1-3:i386,libflac8:i386,libgcc1:i386,libglu1-mesa:i386,libjansson4:i386,libjpeg-turbo8:i386,liblua5.1-0:i386,libncursesw5:i386,libogg0:i386,libopenal1:i386,libpulse0:i386,libpulse-dev:i386,libsdl1.2debian:i386,libsdl1.2-dev:i386,libslang2:i386,libsndfile1:i386,libstdc++6:i386,libtheora0:i386,libtinfo5:i386,libvorbis0a:i386,libvorbisenc2:i386,libvorbisfile3:i386,libwrap0:i386,libx11-6:i386,libxau6:i386,libxcb1:i386,libxdmcp6:i386,libxext6:i386,zlib1g:i386,python3-wheel,python3-setuptools,pyqt5-dev,pyqt5-dev-tools,qttools5-dev-tools,qt5-default,curl,python3-pyqt5.qtwebengine,python3-pyqt5.qtwebchannel,python3-requests-toolbelt,python3-ply,git,p7zip-full,libopenal-dev,ninja-build,pipenv,yarnpkg,python3-semantic-version,libsdl2-dev,libgtk-3-dev,liblzma-dev,libzstd-dev,zlib1g-dev
Adresszeile zum Hinzufügen des PPAs:
ppa:linuxuprising/libpng12
Hinweis!
Zusätzliche Fremdquellen können das System gefährden.
Ein PPA unterstützt nicht zwangsläufig alle Ubuntu-Versionen. Weitere Informationen sind der PPA-Beschreibung des Eigentümers/Teams linuxuprising zu entnehmen.
sudo apt-get install libpng12-0
Dann die folgenden Befehle ausführen:
git clone https://github.com/ngld/old-knossos.git cd old-knossos pip3 install raven pip3 install token-bucket yarnpkg install python3 configure.py ninja run
Entweder einen Starter anlegen oder im Ordner über
ninja run
starten.
Hinweis:
Ordner bestehender Installationen nach der "alten" Weise funktionieren mit Knossos nicht, da die Syntax unterschiedlich ist. Es sollte zur Installation von FS2 und den anderen Mods ein extra Ordner angelegt werden.
Knossos Version 1.0.0¶
Hinweis:
Knossos 1.0.0 ist noch in der Entwicklung und noch nicht einsatzfähig. Ausnahme: Eine lokale "Nebula" DB anlegen.
Die Vorbereitungen sind identisch wie oben für 20.04 aus dem Quelltext. Danach:
git clone https://github.com/ngld/knossos.git cd knossos ./task.sh configure build=Release static_deps=false ./task.sh client-run
Entweder einen Starter anlegen oder im Ordner über
./task.sh client-run
starten.
Hinweis:
Um Freespace 2 und die meisten Mods spielen zu können, muss FS2 z.B. von GOG gekauft (s.u.) und über Knossos installiert werden.
Weitere Informationen zum Build-System von Knossos 1.0.0 liefert
./task.sh
Available tasks: * build-tool: Build our build tool * check-deps: Checks the dependencies listed in DEPS.yml for updates * clean: Delete all generated files * client-build: Builds the Knossos client * client-clean: Delete all generated files from the client package * client-run: Launches Knossos * client-ui-build: Builds the assets for Nebula's client UI * client-watch: Launch Knossos, recompile and restart after source changes * client-ws-run: Launch Knossos WS server * database-clean: Tears down the managed Nebula database * database-migrate: Initializes and migrates the Nebula database (using Docker) * database-seed: Fills the database with the currently available mods from Nebula * fetch-deps: Automatically downloads dependencies not covered by install-tools * front-build: Builds the assets for Nebula's frontend * front-watch: Launches webpack-dev-server for Nebula's frontend * install-tools: Installs necessary go tools in the workspace (task, pggen, protoc plugins, ...) * js-lint: Check JS code for common issues * libarchive-build: Builds libarchive with CMake * libknossos-build: Builds libknossos (client-side, non-UI logic) * libknossos-clean: Delete all generated files from the libknossos package * libknossos-lint: Lints libknossos with golangci-lint * merge-compile-commands: Merges all compile_commands.json files into one * proto-build: Generates TS and Go bindings from the .proto API definitions * server-build: Compiles the Nebula server code * server-container: Builds the docker container for Nebula * server-lint: Lints server with golangci-lint * server-run: Launches Nebula * update-deps: Update the checksums listed in DEPS.yml (only use this if you manually changed that file) * updater-build: Builds the Knossos updater * updater-run: Launches the Knossos updater
Links¶
Wiki-Artikel: Spiele/Freespace 2