0) Leer el INSTALL.es
(Me ha ocurrido que según que entornos gráficos comprimir y descomprimir no lo hace de forma adecuada y se “olvidan” archivos)
Es muy importante este paso como es lógico.
Si usamos modo consola,estos serán los comandos:
tar xzf u2.10.H.10.121.tgz
o también con idéntico resultado gzip -dc u2.10.H.10.121.tgz | tar xf -
1)El Primer paso es ./configure <–estar atentos por si no puede configurar aspectos Clave
2)El siguiente Paso es make config
Observar que por defecto ,las preguntas vienen contestadas(las Mayúsculas),y sólo algunas de ellas
deberemos cambiar.
donostiarra@casa:~/ircd/ircuh/trunk$ make config
make[1]: se ingresa al directorio `/home/donostiarra/ircd/ircuh/trunk/config’
Generating setup.h.in…
autoheader
etc etc
etc etc
Algún que otro Warning-aviso
etc etc
etc etc
*
* No defaults found
*
* Welcome to the IRC-Hispano IRC Daemon Configuration script.
* You can restart this configuration at any time by typing ‘make config’.
* If you need help with your decision on any question, type a ‘?’
*
Y llegamos al momento del “TEST”:
(las Preguntas de las características Clave del Servidor IRCd)
*—————————————————————————–
* Compile stuff
*
CC : Which compiler do you want to use [gcc] (NEW)
Es crucial tener un compilador,y dejo tal cual se me sugiere [gcc],por lo tanto INTRO
* For the following four questions, specify ‘none’ when you want it to be empty.
CFLAGS : What flags should I pass to gcc [none] [-g -O3 -pipe] (NEW )
EXTRA_INCLUDEDIRS : Do you need extra include directories [none] [none] (NEW)
LDFLAGS : Which linker flags do you need [none] [none] (NEW)
IRCDLIBS : Which extra libraries do you need [none] [-lresolv -lrt -lcrypt ] (NEW)
BINDIR : In which directory should I install the ircd binary [/usr/local/bin] (NEW) /home/donostiarra/ircd/ircuh/trunk
SYMLINK : What should the name of the installed symbolic link to the executable be [ircd] (NEW)
IRCDMODE : Which permissions do you want the binary to have [711] (NEW)
IRCDOWN : Which owner do you want the binary to have [donostiarra] (NEW)
Es el que tiene permisos de Dueño de los binarios
Testing…
IRCDGRP : Which group do you want the binary to have [donostiarra] (NEW)
Es el permiso de grupo de los que usaran los binarios
Testing…
MANDIR : Where should I install the man page [/usr/local/share/man] (NEW)
/home/donostiarra/ircd/ircuh/trunk
FORCEINLINE : Use inlining for a few crucial functions [Y/n/?] (NEW)
*—————————————————————————–
* Host specific defines
*
DOMAINNAME : What is the domain name of your network [] (NEW) euskalirc.sytes.net
Es Nuestra No-IP,si no tienes una,createla y despues añadela en este apartado
*—————————————————————————–
* General defines
*
CHROOTDIR : Change root (/) after start of daemon [N/y/?] (NEW)
CONFIG_SETUGID : Do you want the daemon set its own uid/gid? WARNING: This option requires to execute IRCd under “root” privileges. [N/y/?] (NEW)
CMDLINE_CONFIG : Allow to specify configuration file on command line [N/y/?] (NEW)
UNIXPORT : Set up a Unix domain socket to connect clients/servers [N/y/?] (NEW)
VIRTUAL_HOST : Do you need virtual hosting [N/y/?] (NEW) y
Contestamos Yes,si usamos Hosting Virtual
HUB : Will you connect to more then one server at a time [N/y/?] (NEW) y
“yes”,Queremos conectarnos a más de un server,al mismo tiempo
*—————————————————————————–
* Debugging (do not define this on production servers)
*
Si el Servidor va a una shell,queremos que sea un IRCd que se conecten clientes,etc,no recomendado
cambiar lo que viene por defecto
DEBUGMODE : Do you want to enable debugging output [N/y/?] (NEW)
DEBUGMALLOC : Do you want memory- allocation and/or leak checking [N/y/?] (NEW)
NODNS : Are you testing on a host without DNS [N/y/?] (NEW) y
En mi caso,como lo uso de pruebas,marco yes,porque lo utilizo en mi pc,en “localhost”
y no quiero que resuelva dns,si el caso es usarlo en un server de produccion,lo dejaremos en No
*—————————————————————————–
* Paths and files
*
DPATH : Directory where all ircd stuff resides [/usr/local/lib/ircd] (NEW)
En mi ejemplo,lo dejo en esta carpeta /home/donostiarra/ircd/ircuh/trunk
y en todas las veces que me solicitan una carpeta,elijo la misma trayectoria,para no complicarme
The following filenames are either full paths or files within DPATH
CPATH : Server configuration file [ircd.conf] (NEW)
Este es el archivo que necesitaremos editar despues
MPATH : Server MOTD file [ircd.motd] (NEW)
Es nuestro archivo MOTD(Message of the Day-Mensaje del dia)
RPATH : Server remote MOTD file (3 lines max) [remote.motd] (NEW)
PPATH : File for server pid [ircd.pid] (NEW)
En este archivo,se aloja un número que indica el proceso(PID) del IRCd
*—————————————————————————–
* Logging (filenames are either full paths or files within DPATH)
*
CONFIG_LOG_WHOX : Do you want to log the use of /WHO x% (recommended) [Y/n/?] (NEW)
WPATH : Give the path and(or) filename of this log file [whox.log] (NEW)
*—————————————————————————–
* Bad Channel G-Lines allow operators to add channel masks to a list which prohibits local clients from being able joining channels which match the mask. Remote BadChan Glines allow Uworld to add or remove channels from the servers internal list of badchans
*
BADCHAN : Do you want to enable Bad Channel G-lines [Y/n/?] (NEW)
WARNING DO _NOT_ USE LOCAL BADCHANNEL GLINES ON UNDERNET
Use of LOCAL BAD Channel G-Lines can be cause for REMOVAL
LOCAL_BADCHAN : Allow LOCAL BAD Channel G-lines [N/y/?] (NEW)
CONFIG_LOG_GLINES : Do you want to log G-lines to a separate file [N/y/?] (NEW)
CONFIG_LOG_USERS : Do you want to log connecting users to a separate file [N/y/?] (NEW)
CONFIG_LOG_OPERS : Do you want to log Opers to a separate file [N/y/?] (NEW)
USE_SYSLOG : Do you want to use syslog [N/y/?] (NEW)
*—————————————————————————–
* Configuration
*
CRYPT_OPER_PASSWORD : Use crypted passwords for operators [Y/n/?] (NEW) n
<— Recomendado poner y(yes) para encriptar las claves de los IRCops en el ircd.conf
BUFFERPOOL : Max size of the total of of all sendqs (bytes) [27000000] (NEW)
FERGUSON_FLUSHER : Activar el FERGUSON_FLUSHER [N/y/?] (NEW)
CLIENT_FLOOD : Max receive queue for clients (bytes) [1536] (NEW)
MAXCONNECTIONS : Maximum number of network connections (23 – (FD_SETSIZE-4)) [252] (NEW)
PORTNUM : Default client listen port [6667] (NEW)
NICKNAMEHISTORYLENGT: Nickname history length [800] (NEW)
ALLOW_SNO_CONNEXIT : Allow Opers to see (dis)connects of local clients [N/y/?] (NEW)
R_LINES : Do you want to use R: lines in your configuration file [N/y/?] (NEW)
USEONE : Do you want support for the old I:*:ONE:*:: construct (read help text!) [N/y/?] (NEW)
NODEFAULTMOTD : Send a short message instead of the MOTD to connecting clients [Y/n/?] (NEW) n
Contesto n,porque no quiero editar el remote.motd,sino el “irc.motd”,es decir,un mensaje del dia largo ,que lo ve
el cliente al logearse.
*—————————————————————————–
* Oper commands
*
Hay 2 clases de IRCops,aunque en “extición”
Los IRCops Globales y los IRCops Locales
Es habitual distinguirlos.
En el Ejemplo,no permitiremos a los locales RESTART y DIE del server.
(a efectos prácticos,en esta versión ircuh,sólo die)
SHOW_INVISIBLE_USERS: Allow (local) Opers to see all local invisible users [Y/n/?] (NEW)
SHOW_ALL_INVISIBLE_U: Allow Opers to see all invisible users [Y/n/?] (NEW)
WHOX_HELPERS : Allow HELPERS to see all invisible users [Y/n/?] (NEW)
OPERS_SEE_IN_SECRET_: Allow global Opers (O:) to see inside secret channels [Y/n/?] (NEW)
LOCOP_SEE_IN_SECRET_: Allow local Opers (o:) to see inside secret channels [N/y/?] (NEW) y
UNLIMIT_OPER_QUERY : Do not truncate obnoxiously long /who output for opers [N/y/?] (NEW) y
OPER_KILL : Allow Opers to use the KILL command [Y/n/?] (NEW)
OPER_REHASH : Allow Opers to use the REHASH command [Y/n/?] (NEW)
OPER_RESTART : Allow Opers to use the RESTART command [Y/n/?] (NEW)
OPER_DIE : Allow Opers to use the DIE command [Y/n/?] (NEW)
OPER_LGLINE : Allow Opers to add local G-lines [Y/n/?] (NEW)
OPER_REMOTE : Allow Opers to connect from a remote site [Y/n/?] (NEW)
OPER_JOIN_GOD_ESNET : Allow Opers to join channels using a master key – ESNET [Y/n/?] (NEW)
OPER_CHANNEL_SERVICE: Allow Opers to became channel service – ESNET [Y/n/?] (NEW)
CS_NO_FLOOD_ESNET : Local Channel Services has no Flood Control – ESNET [Y/n/?] (NEW)
OPER_XMODE_ESNET : Allow Opers to bypass UWorld mode changes – ESNET [Y/n/?] (NEW)
LOCOP_REHASH : Allow local opers to use the REHASH command [Y/n/?] (NEW)
LOCOP_RESTART : Allow local opers to use the RESTART command [N/y/?] (NEW)
LOCOP_DIE : Allow local opers to use the DIE command [N/y/?] (NEW)
LOCOP_LGLINE : Allow local opers to add local G-lines [Y/n/?] (NEW)
OPER_NO_CHAN_LIMIT : Allow local/global opers to be on any number of channels [Y/n/?] (NEW)
OPER_MODE_LCHAN : Allow local/global opers to set modes on local channels [Y/n/?] (NEW)
OPER_WALK_THROUGH_LM: Allow local/global opers to walk through local channels modes [N/y/?] (NEW) y
NO_OPER_DEOP_LCHAN : Prevent local/global opers from being kicked or deoped on local channels [N/y/?] (NEW) y
*—————————————————————————–
* Server characteristics
*
CONFIG_LIST : Do you want to have a default LIST parameter [Y/n/?] (NEW)
DEFAULT_LIST : Give default LIST parameter [T<10] (NEW)
COMMENT_IS_FILE : K: line comments treated as a file by default [Y/n/?] (NEW)
IDLE_FROM_MSG : Only nullify idle-time on PRIVMSG and CPRIVMSG [Y/n/?] (NEW)
CHECK_TS_LINKS : Enable excessive TS differences check before servers links [Y/n/?] (NEW)
Si actualizamos el ircd,no necesitamos hacer telnets para escribir en las tablas de “DATABASE”
si es nuestro primer ircd,contestamos “no”
Para mayor información de cómo usar los telnets
(*TELNET tablas :http://euskalirc.wordpress.com)
*—————————————————————————–
* Mandatory defines (you should leave these untouched)
*
Se recomienda dejar sín cambios este apartado,aunque versiones anteriores .según que respuesta se
diera, entonces surgían problemas de compilación
DBPATH : HISPANO/ESNET: Directory where distributed database resides [database] (NEW)
BDD_MMAP : HISPANO/ESNET: OnDisk MMAP BDD cache file [Y/n/?] (NEW)
BDD_MMAP_PATH : HISPANO/ESNET: OnDisk MMAP BDD cache file path [ircd-database.mmap] (NEW)
BDD_MMAP_SIZE : HISPANO/ESNET: OnDisk MMAP BDD cache file size (Megabytes) [16] (NEW)
BDD_CLONES : HISPANO/ESNET: Distributed Clone Control support [Y/n/?] (NEW)
BDD_CHAN_HACK : HISPANO/ESNET: CHAN_DB features (join # FUNDADOR, modeX) [Y/n/?] (NEW)
BDD_OPER_HACK : HISPANO/ESNET: OPER_DB features (join # OPER, modeX) [Y/n/?] (NEW)
BDD_OPER_HACK_KMODE : HISPANO/ESNET: OPER_DB members can be Chanserv (+k) [Y/n/?] (NEW)
BDD_VIP : HISPANO/ESNET: Soporte para la ocultacion de IPs [Y/n/?] (NEW)
BDD_VIP3 : HISPANO/ESNET: Ignorar el flag “+x” a menos que el usuario este en la tabla “v” o “w” [N/y/?] (NEW)
BDD_VIP2 : HISPANO/ESNET: Ocultación de IP de TODOS los usuarios [Y/n/?] (NEW)
XMODE_ESNET : HISPANO/ESNET: XMODE Networking [Y/n/?] (NEW)
ESNET_NEG : HISPANO/ESNET: Dinamic Negotiation link-by-link [Y/n/?] (NEW)
ZLIB_ESNET : HISPANO/ESNET: ZLIB compression between servers – ESNET [Y/n/?] (NEW)
MAXIMUM_LINKS : Max auto connects per class (1!) [1] (NEW)
* Never define this on a production server:
MSGLOG_ENABLED : Enable message logging [N/y/?] (NEW)
LOCAL_KILL_ONLY : Only allow KILLs of local clients [N/y/?] (NEW)
KILLCHASETIMELIMIT : KILL nick chase time limit (30) [30] (NEW)
MAXCHANNELSPERUSER : Max number of channels per user (recommended: 5) [10] (NEW)
MAXSILES : Max number of silence masks (25!) [25] (NEW)
WATCH : Enable notifies nicks witch WATCH [Y/n/?] (NEW)
MAXWATCH : Max number of WATCH entries (96) [96] (NEW)
AVBANLEN : Expected average banmask length (40!) [40] (NEW)
* These are default values, used for class 0:
TIMESEC : Max server idle time (60) [60] (NEW)
PINGFREQUENCY : Class 0 ping frequency (120) [120] (NEW)
CONNECTFREQUENCY : Class 0 connect frequency (600) [600] (NEW)
HANGONGOODLINK : Min time before a link is good (300) [300] (NEW)
HANGONRETRYDELAY : Wait before reconnecting to good link (10!) [10] (NEW)
CONNECTTIMEOUT : connect(2) timeout (90!) [90] (NEW)
DEFAULTMAXSENDQLENGT: Max send queue (40000) [40000] (NEW)
ZLIB: ***
ZLIB: *** Ajustando ‘gcc’ como compilador seleccionado.
ZLIB: ***
*
*
*
CONFIG_NEW : Use .config of THIS source tree as your upgrade default [Y/n/?] YES
Guardamos los datos de nuestra configuración
3) make
y compilará (momento de cruzar los dedos y desearse un poco de suerte)
Building config…
make[1]: se ingresa al directorio `/home/donostiarra/ircd/ircuh/trunk/config’
make[1]: No se hace nada para `build’.
make[1]: se sale del directorio `/home/donostiarra/ircd/ircuh/trunk/config’
Building zlib…
make[1]: se ingresa al directorio `/home/donostiarra/ircd/ircuh/trunk/zlib’
gcc -O3 -DUSE_MMAP -c -o example.o example.c
gcc -O3 -DUSE_MMAP -c -o adler32.o adler32.c
etc etc
etc etc
bin/sh version.c.SH
Extracting ircd/version.c …
gcc -g -O3 -pipe -I../include -I../zlib -I../libevent -c version.c
gcc -g -O3 -pipe IPcheck.o bsd.o channel.o class.o common.o crule.o dbuf.o fileio.o ircd.o list.o map.o match.o numnicks.o opercmds.o packet.o parse.o querycmds.o random.o res.o runmalloc.o s_auth.o s_bsd.o s_conf.o s_debug.o s_err.o s_misc.o s_numeric.o s_ping.o s_serv.o s_user.o send.o sprintf_irc.o support.o userload.o whocmds.o whowas.o hash.o s_bdd.o m_config.o m_watch.o persistent_malloc.o slab_alloc.o aes256.o pcre_compile.o pcre_exec.o pcre_newline.o pcre_globals.o pcre_tables.o pcre_chartables.o pcre_try_flipped.o version.o -L../zlib -L../libevent/.libs -levent -lz -lresolv -lrt -lcrypt -o ircd
chmod 711 ircd
gcc -g -O3 -pipe -I../include -I../zlib -I../libevent -c chkconf.c -o chkconf.o
gcc -g -O3 -pipe -I../include -I../zlib -I../libevent -DCR_CHKCONF -o chkcrule.o -c crule.c
gcc -g -O3 -pipe -I../include -I../zlib -I../libevent \
chkconf.o match.o common.o chkcrule.o runmalloc.o fileio.o \
pcre_compile.o pcre_exec.o pcre_newline.o pcre_globals.o \
pcre_tables.o pcre_chartables.o pcre_try_flipped.o \
-L../zlib -L../libevent/.libs -levent -lz -lresolv -lrt -lcrypt -o chkconf
make[1]: se sale del directorio `/home/donostiarra/ircd/ircuh/trunk/ircd’
¡¡¡Conseguido,sin errores!!!
4) make install
Instalamos el IRCd
Installing ircd…
make[1]: se ingresa al directorio `/home/donostiarra/ircd/ircuh/trunk/ircd’
Installing new ircd as /home/donostiarra/ircd/ircuh/trunk/ircd.0906020539.121 :
etc etc
etc etc
if [ "y" = "y" ]; then \
( cd /home/donostiarra/ircd/ircuh/trunk ; \
if [ ! -f ircd-database.mmap ]; then \
touch ircd-database.mmap; \
fi ; \
if [ "" != "" ]; then \
chown ircd-database.mmap ; \
chgrp ircd-database.mmap ; \
fi ; \
chmod 600 ircd-database.mmap ; ) \
fi ;
make[1]: se sale del directorio `/home/donostiarra/ircd/ircuh/trunk/ircd’
Installing doc…
make[1]: se ingresa al directorio `/home/donostiarra/ircd/ircuh/trunk/doc’
(test -d /home/donostiarra/ircd/ircuh/trunk/man8 || mkdir /home/donostiarra/ircd/ircuh/trunk/man8 || mkdir -p /home/donostiarra/ircd/ircuh/trunk/man8) 2> /dev/null && /usr/bin/install -c -m 644 ircd.8 /home/donostiarra/ircd/ircuh/trunk/man8
make[1]: se sale del directorio `/home/donostiarra/ircd/ircuh/trunk/doc’
¡¡¡Terminado!!!
Tenemos creado el nuevo enlace ircd y nuesta DATABASE con las hashes y tablas a..z vacias.
5)
Si actualizamos el IRCd:
a) Copiamos nuestros archivos ircd.conf,ircd.motd,remote.motd que teniamos
b) hacemos un copy completo de la carpeta database (las tablas)
Si es nuestro primer IRCd:
c) Creamos archivos paso a)
d) *TELNET tablas
*TELNET tablas :http://euskalirc.wordpress.com
6) Entramos al IRCd
En mi caso:
donostiarra@casa:~/ircd/ircuh/trunk/ircd$ ./ircd
Posibles errores:
A)Check on CPATH (ircd.conf) failed: No such file or directory
Please create file and/or rerun `make config’ and recompile to correct this
No hemos editado nuestro ircd.conf, o no está alojado en la carpeta adecuada,y no lo encuentra.
Solución /home/donostiarra/ircd/ircuh/trunk <—ahí debe estar según configuramos antes
La pista te lo da,los archivos que le deben acompañar y que son ircd.motd y remote.motd
B)Nuestro IRCd no arranca
Ya que hacemos un ps -A | grep ircd y no muestra ningun resultado de su PID
Posibles soluciones:
1)Nos Aseguramos que el ircd.conf fue bien editado,y que no tenemos ningún puerto bloqueado necesario para
la “escucha” del IRCd.
Una buena herramienta es usar netstat
2)Reeditaremos el make config (“TEST”) para hacer un “uso no de produccion del server”
Vamos hasta el siguiente apartado:
*—————————————————————————–
* Debugging (do not define this on production servers)
*
Estos Cambios,cuando encontremos la solución ,los volveriamos a dejar como al principio.
DEBUGMODE : Do you want to enable debugging output [N/y/?] (NEW) <—YES
DEBUGMALLOC : Do you want memory- allocation and/or leak checking [N/y/?] (NEW)
NODNS : Are you testing on a host without DNS [N/y/?] (NEW) <–YES
make && make install
poner el siguiente comando (sólo válido en DEBUGMODE)
./ircd -t -x9
Leer que mensajes da,en la compresión de la clase de errores puede estar la solución