Atheme은 높은 확장성을 요구하는 대규모 IRC 네트워크를 위해 설계된 IRC 서비스 세트입니다. Shrike라는 다른 패키지에서 파생된 일부 코드와 디자인을 갖춘 비교적 성숙한 소프트웨어입니다.
Atheme의 동작은 모듈과 매우 상세한 구성 파일을 사용하여 조정할 수 있습니다. 구성을 편집하면 배포 시 거의 모든 동작을 변경할 수 있습니다.
최신 버전의 Git(1.6.5 이상)을 사용하는 경우 리포지토리를 재귀적으로 복제할 수 있습니다.
$ git clone --recursive 'https://github.com/atheme/atheme/' atheme-devel
$ cd atheme-devel
이전 버전의 Git이 있는 경우 저장소를 복제한 다음 해당 하위 모듈을 가져와야 합니다.
$ git clone 'https://github.com/atheme/atheme/' atheme-devel
$ cd atheme-devel
$ git submodule init
$ git submodule update
Git이 없으면 당사 웹사이트 https://atheme.github.io/에서 패키지 아카이브를 다운로드할 수 있습니다.
GitHub 저장소를 탐색하는 경우 "ZIP 다운로드" 버튼이나 "소스 코드" 링크를 클릭하지 마십시오. 필요한 하위 모듈이 없는 아카이브가 제공될 것입니다. "자산" 아래에는 각 릴리스에 적절한 .tar.bz2
또는 .tar.xz
아카이브가 첨부되어 있으며, 당사 웹사이트의 "다운로드" 버튼을 누르면 해당 아카이브로 이동됩니다.
소스 코드 저장소를 구하고 해당 디렉터리로 변경합니다(위에 제공된 명령 사용).
GNU/Linux 시스템이나 이를 충분히 에뮬레이트할 수 있는 시스템(예: Windows 10의 WSL 2)에서 Atheme을 빌드하는 경우 다음 명령을 실행하세요.
$ ./configure
$ make
$ make install
OpenBSD(또는 유사한) 시스템에서 Atheme을 구축하는 경우 대신 다음 명령을 실행하십시오.
# pkg_add gmake
$ ./configure --disable-linker-defs
$ gmake
$ gmake install
Atheme이 사용하기를 원하는 사용자 설치 라이브러리가 패키지 관리자에 의해 /usr/local/
같은 디렉토리에 설치된 경우, Atheme이 해당 라이브러리를 감지할 수 있도록 기본 컴파일러 및 링커 검색 경로를 보완해야 할 수도 있습니다(예: FreeBSD 포트의 cracklib):
$ ./configure CPPFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
다음 라이브러리를 사용하려면 일반적으로 pkg-config를 설치해야 합니다.
libargon2.pc
)libcrypto.pc
)libidn.pc
)nettle.pc
)libpcre.pc
)libqrencode.pc
)libsodium.pc
) pkg-config가 설치되어 있지 않고 이러한 라이브러리 중 하나 이상을 사용하려는 경우 해당 라이브러리에 대한 pkg-config 검색을 재정의하도록 설정하는 옵션에 대해 ./configure --help
참조하십시오. 예를 들어, GNU libidn을 사용하려고 하는데 컴파일러와 링커의 기본 검색 경로에 설치되어 있고 pkg-config가 설치되어 있지 않은 경우 다음을 실행합니다.
$ ./configure LIBIDN_CFLAGS="" LIBIDN_LIBS="-lidn"
라이브러리가 일부 전처리기 정의로 LIBFOO_CFLAGS
채우거나 일부 라이브러리 연결 플래그로 LIBFOO_LIBS
채우는 데 의존하는 경우 일반적으로 실패합니다. 최상의 결과를 얻으려면 pkg-config를 설치하십시오.
LLVM 프로젝트의 C 컴파일러( clang
)를 사용하여 Atheme을 컴파일하려는 경우 LLVM의 링커( lld
)를 사용할 수도 있습니다. 다음과 같이 이를 수행할 수 있습니다.
$ ./configure CC="clang" LDFLAGS="-fuse-ld=lld"
컴파일러 새니타이저를 사용하고 Clang으로 빌드하려면 LLD도 사용해야 합니다. Clang의 대부분의 새니타이저가 제대로 작동하려면 LTO가 필요하고 LTO 모드의 Clang은 기계어 코드가 아닌 LLVM 비트코드를 생성하기 때문입니다. 링커는 궁극적으로 대부분의 LTO 무거운 작업을 수행하고 그 결과를 기계어 코드로 변환하는 일을 담당하며 대부분의 다른 링커는 이를 수행하는 방법을 모릅니다.
GCC와 함께 컴파일러 새니타이저를 사용하려면(지원됨):
$ ./configure --disable-heap-allocator --disable-linker-defs
--enable-compiler-sanitizers CC="gcc"
Clang과 함께 컴파일러 새니타이저를 사용하려면(권장):
$ ./configure --disable-heap-allocator --disable-linker-defs
--enable-compiler-sanitizers CC="clang" LDFLAGS="-fuse-ld=lld"
새니타이저를 활성화하는 경우 general::db_save_blocking
구성 옵션을 활성화하는 것이 좋습니다. 자세한 내용은 예제 구성 파일을 참조하세요.
새니타이저는 프로덕션 용도로는 권장되지 않지만 제3자가 새로운 기능을 작성하거나 소스 코드를 수정하는 등의 개발자에게는 권장됩니다.
여전히 길을 잃으면 INSTALL 파일을 읽거나 위키에서 더 많은 힌트를 확인하세요.