379 lines
7.6 KiB
Markdown
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
|
|
|