Atheme ist eine Reihe von IRC-Diensten, die für große IRC-Netzwerke mit hohen Skalierbarkeitsanforderungen entwickelt wurden. Es handelt sich um eine relativ ausgereifte Software, bei der ein Teil des Codes und Designs von einem anderen Paket namens Shrike abgeleitet ist.
Das Verhalten von Atheme kann mithilfe von Modulen und einer sehr detaillierten Konfigurationsdatei angepasst werden. Fast jedes Verhalten kann zum Zeitpunkt der Bereitstellung geändert werden, indem einfach die Konfiguration bearbeitet wird.
Wenn Sie eine moderne Version von Git (1.6.5 oder neuer) haben, können Sie das Repository rekursiv klonen:
$ git clone --recursive 'https://github.com/atheme/atheme/' atheme-devel
$ cd atheme-devel
Wenn Sie eine ältere Version von Git haben, müssen Sie das Repository klonen und dann seine Submodule abrufen:
$ git clone 'https://github.com/atheme/atheme/' atheme-devel
$ cd atheme-devel
$ git submodule init
$ git submodule update
Wenn Sie Git nicht haben, können Sie ein Paketarchiv von unserer Website unter https://atheme.github.io/ herunterladen.
Wenn Sie unser GitHub-Repository durchsuchen, klicken Sie bitte NICHT auf die Schaltfläche „ZIP herunterladen“ oder die dortigen Links „Quellcode“, da Sie sonst ein Archiv erhalten, dem die erforderlichen Untermodule fehlen. Jeder Veröffentlichung sind unter „Assets“ entsprechende .tar.bz2
oder .tar.xz
Archive beigefügt. Über die Schaltfläche „Download“ auf unserer Website gelangen Sie dorthin.
Besorgen Sie sich das Quellcode-Repository und wechseln Sie in dessen Verzeichnis (mit den oben angegebenen Befehlen).
Wenn Sie Atheme auf einem GNU/Linux-System oder etwas erstellen, das dies ausreichend emulieren kann (wie WSL 2 unter Windows 10), führen Sie die folgenden Befehle aus:
$ ./configure
$ make
$ make install
Wenn Sie Atheme auf einem OpenBSD-System (oder einem ähnlichen System) erstellen, führen Sie stattdessen die folgenden Befehle aus:
# pkg_add gmake
$ ./configure --disable-linker-defs
$ gmake
$ gmake install
Wenn Ihre vom Benutzer installierten Bibliotheken, die Atheme verwenden soll, von Ihrem Paketmanager in einem Verzeichnis wie /usr/local/
installiert werden, müssen Sie möglicherweise die Standardsuchpfade für Compiler und Linker ergänzen, damit Atheme diese Bibliotheken erkennen kann (z. B cracklib von FreeBSD Ports):
$ ./configure CPPFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
Die folgenden Bibliotheken erfordern im Allgemeinen die Installation von pkg-config:
libargon2.pc
)libcrypto.pc
)libidn.pc
)nettle.pc
)libpcre.pc
)libqrencode.pc
)libsodium.pc
) Wenn Sie pkg-config nicht installiert haben und eine oder mehrere dieser Bibliotheken verwenden möchten, finden Sie unter ./configure --help
die Optionen zum Überschreiben der pkg-config-Erkennung für diese Bibliotheken. Wenn Sie beispielsweise GNU libidn verwenden möchten und es in einem Standardsuchpfad für Ihren Compiler und Linker installiert ist und Sie pkg-config nicht installiert haben, führen Sie Folgendes aus:
$ ./configure LIBIDN_CFLAGS="" LIBIDN_LIBS="-lidn"
Wenn eine Bibliothek darauf angewiesen ist, LIBFOO_CFLAGS
mit einigen Präprozessordefinitionen oder LIBFOO_LIBS
mit einigen Bibliotheksverknüpfungsflags zu füllen, schlägt dies im Allgemeinen fehl. Installieren Sie pkg-config, um die besten Ergebnisse zu erzielen.
Wenn Sie Atheme mit dem C-Compiler ( clang
) des LLVM-Projekts kompilieren möchten, möchten Sie möglicherweise auch den Linker ( lld
) von LLVM verwenden. Dies können Sie wie folgt erreichen:
$ ./configure CC="clang" LDFLAGS="-fuse-ld=lld"
Wenn Sie Compiler-Sanitizer verwenden und mit Clang erstellen möchten, MÜSSEN Sie auch LLD verwenden, da die meisten Sanitizer in Clang LTO benötigen, um ordnungsgemäß zu funktionieren, und Clang im LTO-Modus LLVM-Bitcode und keinen Maschinencode ausgibt. Der Linker ist letztendlich dafür verantwortlich, den größten Teil der LTO-Schwerarbeit durchzuführen und das Ergebnis in Maschinencode zu übersetzen, und die meisten anderen Linker wissen nicht, wie das geht.
So verwenden Sie Compiler-Desinfektionsmittel mit GCC (unterstützt):
$ ./configure --disable-heap-allocator --disable-linker-defs
--enable-compiler-sanitizers CC="gcc"
So verwenden Sie Compiler-Desinfektionsmittel mit Clang (empfohlen):
$ ./configure --disable-heap-allocator --disable-linker-defs
--enable-compiler-sanitizers CC="clang" LDFLAGS="-fuse-ld=lld"
Wenn Sie die Desinfektionsmittel aktivieren, wird empfohlen, die Konfigurationsoption general::db_save_blocking
zu aktivieren; Weitere Einzelheiten finden Sie in der Beispielkonfigurationsdatei.
Die Desinfektionsmittel werden nicht für den Produktionseinsatz empfohlen, sie werden jedoch Entwicklern empfohlen, einschließlich Dritten, die neue Funktionen schreiben und/oder den Quellcode ändern.
Wenn Sie immer noch nicht weiter wissen, lesen Sie die INSTALL-Datei oder schauen Sie sich unser Wiki an, um weitere Hinweise zu erhalten.