ircu2/COMANDA_CONFIGURE.md

7.6 KiB

🔧 Comanda ./configure - UnderChat IRCd

Data: 13 februarie 2026
Versiune: v1.0.1


📋 Comanda Completă de Bază

./configure --prefix=$HOME/ircd --with-maxcon=4096

Parametri Impliciți:

  • --prefix: $HOME/ircd (ex: /home/ircd/ircd)
  • --with-maxcon: 4096 (număr maxim de conexiuni simultane)

🎯 Comanda Completă cu Toate Opțiunile

Pentru sisteme normale (x86_64, i386, etc.):

./configure \
    --prefix=$HOME/ircd \
    --with-maxcon=4096

Pentru sisteme ARM 64-bit (aarch64):

./configure \
    --prefix=$HOME/ircd \
    --with-maxcon=4096 \
    --build=aarch64-unknown-linux-gnu

Cu SSL activat (implicit):

./configure \
    --prefix=$HOME/ircd \
    --with-maxcon=4096

Cu SSL dezactivat:

./configure \
    --prefix=$HOME/ircd \
    --with-maxcon=4096 \
    --disable-ssl

Cu modul Debug activat:

./configure \
    --prefix=$HOME/ircd \
    --with-maxcon=4096 \
    --enable-debug

🚀 Comanda Completă din install.sh

Scriptul install.sh construiește dinamic comanda ./configure astfel:

# Linia 226-250 din install.sh
local config_args="--prefix=$PREFIX"
config_args="$config_args --with-maxcon=$MAXCON"

# Dacă debug este activat
if [ $ENABLE_DEBUG -eq 1 ]; then
    config_args="$config_args --enable-debug"
fi

# Dacă SSL este dezactivat
if [ $ENABLE_SSL -eq 0 ]; then
    config_args="$config_args --disable-ssl"
fi

# Pentru sisteme aarch64
if [ "$(uname -m)" = "aarch64" ]; then
    config_args="$config_args --build=aarch64-unknown-linux-gnu"
fi

# Executare finală
./configure $config_args

📝 Variante de Instalare

1. Instalare Standard (Recomandată)

./install.sh
# Rulează: ./configure --prefix=$HOME/ircd --with-maxcon=4096

2. Instalare Custom cu Parametri

./install.sh --prefix /opt/ircd --maxcon 8192
# Rulează: ./configure --prefix=/opt/ircd --with-maxcon=8192

3. Instalare cu Debug

./install.sh --debug
# Rulează: ./configure --prefix=$HOME/ircd --with-maxcon=4096 --enable-debug

4. Instalare fără SSL

./install.sh --no-ssl
# Rulează: ./configure --prefix=$HOME/ircd --with-maxcon=4096 --disable-ssl

5. Instalare Completă Custom

./install.sh --prefix /opt/ircd --maxcon 10000 --debug
# Rulează: ./configure --prefix=/opt/ircd --with-maxcon=10000 --enable-debug

🔍 Parametri Detaliat

--prefix=PATH

Descriere: Directorul de instalare al serverului IRC
Implicit: $HOME/ircd (ex: /home/ircd/ircd)
Exemple:

--prefix=/opt/ircd
--prefix=/usr/local/ircd
--prefix=$HOME/underchat

Structură directoare create:

$PREFIX/
├── bin/          # Executabilul ircd și utilitare
├── etc/          # Fișierul ircd.conf
├── lib/          # Biblioteci și example.conf
├── log/          # Log-uri server
└── var/          # PID și fișiere temporare

--with-maxcon=NUM

Descriere: Numărul maxim de conexiuni simultane
Implicit: 4096
Valori recomandate:

  • Server mic: 1024 - 2048
  • Server mediu: 4096 - 8192
  • Server mare: 10000 - 20000
  • Hub principal: 30000+

Exemplu:

--with-maxcon=8192
--with-maxcon=15000

--enable-debug

Descriere: Activează simboluri de debug și mesaje verbose
Folosire: Pentru dezvoltare și troubleshooting
Impact:

  • Mesaje detaliate în log-uri
  • Stack traces la crash-uri
  • Performanță redusă
  • Executabil mai mare

Recomandat: NU pentru producție

--disable-ssl

Descriere: Dezactivează suportul SSL/TLS
Implicit: SSL este ACTIVAT
Folosire: Când nu ai OpenSSL instalat sau nu ai nevoie de SSL
Impact:

  • Nu poți folosi portul 6697 (SSL)
  • Conexiuni necriptate
  • Compilare mai rapidă
  • Fără dependență de OpenSSL

Recomandat: NU pentru producție (lasă SSL activat)

--build=ARCH

Descriere: Specifică arhitectura pentru cross-compilation
Folosire: Automat detectat pentru aarch64
Valori:

--build=aarch64-unknown-linux-gnu    # ARM 64-bit
--build=x86_64-unknown-linux-gnu     # Intel/AMD 64-bit
--build=i386-unknown-linux-gnu       # Intel 32-bit

Când se folosește:

  • Automat pentru sisteme aarch64
  • Pentru cross-compilation
  • Când ./config.guess nu detectează corect

🎯 Exemple Practice

Server Personal (Desktop/VPS Mic)

./configure \
    --prefix=$HOME/ircd \
    --with-maxcon=2048

Server Comunitate (VPS Mediu)

./configure \
    --prefix=/opt/ircd \
    --with-maxcon=8192

Hub Principal (Dedicated Server)

./configure \
    --prefix=/opt/ircd \
    --with-maxcon=20000

Testing/Development

./configure \
    --prefix=$HOME/ircd-dev \
    --with-maxcon=1024 \
    --enable-debug

ARM Server (Raspberry Pi, Oracle ARM)

./configure \
    --prefix=$HOME/ircd \
    --with-maxcon=4096 \
    --build=aarch64-unknown-linux-gnu

🔧 Troubleshooting

Eroare: "cannot guess build type"

Soluție 1: Adaugă --build explicit

./configure --prefix=$HOME/ircd --with-maxcon=4096 --build=$(uname -m)-unknown-linux-gnu

Soluție 2: Rulează fix-aarch64.sh

./fix-aarch64.sh
./configure --prefix=$HOME/ircd --with-maxcon=4096

Eroare: "OpenSSL not found"

Soluție 1: Instalează OpenSSL

# Ubuntu/Debian
sudo apt-get install libssl-dev

# CentOS/RHEL
sudo yum install openssl-devel

Soluție 2: Dezactivează SSL

./configure --prefix=$HOME/ircd --with-maxcon=4096 --disable-ssl

Eroare: "Permission denied"

Soluție: Dă permisiuni de execuție

chmod +x configure
./configure --prefix=$HOME/ircd --with-maxcon=4096

📚 Verificare Configurare

După rularea ./configure, verifică:

1. Mesajul de succes

configure: creating ./config.status
config.status: creating Makefile
config.status: creating ircd/Makefile
config.status: creating config.h

2. Fișierele generate

ls -la config.h Makefile ircd/Makefile

3. Setările din config.h

grep -E "(MAXCON|PREFIX|SSL)" config.h

🚀 Pași După Configure

# 1. Configure (FACUT)
./configure --prefix=$HOME/ircd --with-maxcon=4096

# 2. Compilare
make

# 3. Instalare
make install

# 4. Configurare ircd.conf
nano $HOME/ircd/etc/ircd.conf

# 5. Pornire server
$HOME/ircd/bin/ircd -f $HOME/ircd/etc/ircd.conf

📖 Ajutor Configure

Pentru a vedea toate opțiunile disponibile:

./configure --help

Output (extras):

Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [/usr/local]

Optional Features:
  --enable-debug          enable debug mode
  --disable-ssl           disable SSL support
  --with-maxcon=NUM       set maximum connections [4096]
  --build=BUILD           configure for building on BUILD [guessed]

Checklist Înainte de Configure

  • Verficat gcc instalat: gcc --version
  • Verificat make instalat: make --version
  • Verificat OpenSSL instalat: openssl version
  • Verificat permisiuni: ls -la configure
  • Backup config vechi: cp -r $PREFIX $PREFIX.bak
  • Citit documentația: ./configure --help

🎉 TL;DR - Quick Reference

Comandă standard (RECOMANDATĂ):

./configure --prefix=$HOME/ircd --with-maxcon=4096

SAU folosește install.sh:

./install.sh
# Gestionează automat toate parametrii

Repository: https://gitlab.back.ro/underchat/ircu2.git
Versiune: v1.0.1
Data: 13 februarie 2026