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
ที่เหมาะสมแนบมากับแต่ละรุ่นภายใต้ "สินทรัพย์" ซึ่งเป็นสิ่งที่ปุ่ม "ดาวน์โหลด" บนเว็บไซต์ของเราจะนำคุณไป
รับที่เก็บซอร์สโค้ดและเปลี่ยนเป็นไดเร็กทอรี (โดยใช้คำสั่งที่ให้ไว้ด้านบน)
หากคุณกำลังสร้าง Atheme บนระบบ GNU/Linux หรือบางสิ่งที่สามารถจำลองสิ่งนั้นได้เพียงพอ (เช่น WSL 2 บน Windows 10) ให้ดำเนินการคำสั่งต่อไปนี้:
$ ./configure
$ make
$ make install
หากคุณกำลังสร้าง Atheme บนระบบ OpenBSD (หรือคล้ายกัน) ให้ดำเนินการคำสั่งต่อไปนี้แทน:
# pkg_add gmake
$ ./configure --disable-linker-defs
$ gmake
$ gmake install
หากไลบรารีที่ผู้ใช้ติดตั้งที่คุณต้องการให้ Atheme ใช้ได้รับการติดตั้งโดยตัวจัดการแพ็คเกจของคุณไปยังไดเร็กทอรีเช่น /usr/local/
คุณอาจต้องเสริมคอมไพเลอร์เริ่มต้นและพาธการค้นหาลิงก์เกอร์เพื่อให้ Atheme สามารถตรวจจับไลบรารีเหล่านั้นได้ (เช่น cracklib จากพอร์ต FreeBSD):
$ ./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 และต้องการใช้ไลบรารีเหล่านี้ตั้งแต่หนึ่งไลบรารีขึ้นไป โปรดดู ./configure --help
สำหรับตัวเลือกในการตั้งค่าให้แทนที่การค้นพบ pkg-config สำหรับไลบรารีเหล่านั้น ตัวอย่างเช่น หากคุณต้องการใช้ GNU libidn และติดตั้งไว้ในพาธการค้นหาเริ่มต้นสำหรับคอมไพลเลอร์และตัวเชื่อมโยงของคุณ และคุณไม่ได้ติดตั้ง pkg-config ให้ดำเนินการ:
$ ./configure LIBIDN_CFLAGS="" LIBIDN_LIBS="-lidn"
หากไลบรารีอาศัยการเติม LIBFOO_CFLAGS
ด้วยคำจำกัดความของตัวประมวลผลล่วงหน้าบางส่วน หรือการเติม LIBFOO_LIBS
ด้วยแฟล็กการลิงก์ไลบรารี โดยทั่วไปการดำเนินการนี้จะล้มเหลว ติดตั้ง pkg-config เพื่อผลลัพธ์ที่ดีที่สุด
หากคุณต้องการคอมไพล์ Atheme ด้วยคอมไพเลอร์ C ของโปรเจ็กต์ LLVM ( clang
) คุณอาจต้องการใช้ตัวเชื่อมโยงของ LLVM ( lld
) คุณสามารถทำได้ดังนี้:
$ ./configure CC="clang" LDFLAGS="-fuse-ld=lld"
หากคุณต้องการใช้คอมไพเลอร์ sanitizers และคุณต้องการสร้างด้วย Clang คุณต้องใช้ LLD ด้วย เนื่องจาก sanitizers ส่วนใหญ่ใน Clang ต้องการ LTO เพื่อให้ทำงานได้อย่างถูกต้อง และ Clang ในโหมด LTO ปล่อยบิตโค้ด 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
; ดูไฟล์การกำหนดค่าตัวอย่างสำหรับรายละเอียดเพิ่มเติม
ไม่แนะนำให้ใช้สารฆ่าเชื้อสำหรับการใช้งานจริง แต่แนะนำสำหรับนักพัฒนา รวมถึงบุคคลที่สามที่เขียนคุณสมบัติใหม่และ/หรือแก้ไขซอร์สโค้ด
หากคุณยังหลงทางอยู่ โปรดอ่านไฟล์ INSTALL หรือตรวจสอบวิกิของเราเพื่อดูคำแนะนำเพิ่มเติม