ircu2/COMANDA_CONFIGURE.md

379 lines
7.6 KiB
Markdown

# 🔧 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