# 🔧 Comanda ./configure - UnderChat IRCd **Data**: 13 februarie 2026 **Versiune**: v1.0.1 --- ## 📋 Comanda Completă de Bază ```bash ./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.): ```bash ./configure \ --prefix=$HOME/ircd \ --with-maxcon=4096 ``` ### Pentru sisteme ARM 64-bit (aarch64): ```bash ./configure \ --prefix=$HOME/ircd \ --with-maxcon=4096 \ --build=aarch64-unknown-linux-gnu ``` ### Cu SSL activat (implicit): ```bash ./configure \ --prefix=$HOME/ircd \ --with-maxcon=4096 ``` ### Cu SSL dezactivat: ```bash ./configure \ --prefix=$HOME/ircd \ --with-maxcon=4096 \ --disable-ssl ``` ### Cu modul Debug activat: ```bash ./configure \ --prefix=$HOME/ircd \ --with-maxcon=4096 \ --enable-debug ``` --- ## 🚀 Comanda Completă din install.sh Scriptul `install.sh` construiește dinamic comanda `./configure` astfel: ```bash # 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ă) ```bash ./install.sh # Rulează: ./configure --prefix=$HOME/ircd --with-maxcon=4096 ``` ### 2. Instalare Custom cu Parametri ```bash ./install.sh --prefix /opt/ircd --maxcon 8192 # Rulează: ./configure --prefix=/opt/ircd --with-maxcon=8192 ``` ### 3. Instalare cu Debug ```bash ./install.sh --debug # Rulează: ./configure --prefix=$HOME/ircd --with-maxcon=4096 --enable-debug ``` ### 4. Instalare fără SSL ```bash ./install.sh --no-ssl # Rulează: ./configure --prefix=$HOME/ircd --with-maxcon=4096 --disable-ssl ``` ### 5. Instalare Completă Custom ```bash ./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**: ```bash --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**: ```bash --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**: ```bash --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) ```bash ./configure \ --prefix=$HOME/ircd \ --with-maxcon=2048 ``` ### Server Comunitate (VPS Mediu) ```bash ./configure \ --prefix=/opt/ircd \ --with-maxcon=8192 ``` ### Hub Principal (Dedicated Server) ```bash ./configure \ --prefix=/opt/ircd \ --with-maxcon=20000 ``` ### Testing/Development ```bash ./configure \ --prefix=$HOME/ircd-dev \ --with-maxcon=1024 \ --enable-debug ``` ### ARM Server (Raspberry Pi, Oracle ARM) ```bash ./configure \ --prefix=$HOME/ircd \ --with-maxcon=4096 \ --build=aarch64-unknown-linux-gnu ``` --- ## 🔧 Troubleshooting ### Eroare: "cannot guess build type" **Soluție 1**: Adaugă `--build` explicit ```bash ./configure --prefix=$HOME/ircd --with-maxcon=4096 --build=$(uname -m)-unknown-linux-gnu ``` **Soluție 2**: Rulează `fix-aarch64.sh` ```bash ./fix-aarch64.sh ./configure --prefix=$HOME/ircd --with-maxcon=4096 ``` ### Eroare: "OpenSSL not found" **Soluție 1**: Instalează OpenSSL ```bash # Ubuntu/Debian sudo apt-get install libssl-dev # CentOS/RHEL sudo yum install openssl-devel ``` **Soluție 2**: Dezactivează SSL ```bash ./configure --prefix=$HOME/ircd --with-maxcon=4096 --disable-ssl ``` ### Eroare: "Permission denied" **Soluție**: Dă permisiuni de execuție ```bash 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 ```bash ls -la config.h Makefile ircd/Makefile ``` ### 3. Setările din config.h ```bash grep -E "(MAXCON|PREFIX|SSL)" config.h ``` --- ## 🚀 Pași După Configure ```bash # 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: ```bash ./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Ă)**: ```bash ./configure --prefix=$HOME/ircd --with-maxcon=4096 ``` **SAU folosește install.sh**: ```bash ./install.sh # Gestionează automat toate parametrii ``` --- **Repository**: https://gitlab.back.ro/underchat/ircu2.git **Versiune**: v1.0.1 **Data**: 13 februarie 2026