[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gentoo-user-es
Subject:    Re: [gentoo-user-es] Mantener varios perfiles de red
From:       "Javier M Mora" <jamarier () gmail ! com>
Date:       2007-05-24 22:02:21
Message-ID: 84a973e00705241502n185f41dco3a72366ed2193acc () mail ! gmail ! com
[Download RAW message or body]

El 24/05/07, Javier M Mora <jamarier@gmail.com> escribió:

> Finalmente, tras comprobar que no hay una "solución general" que yo
> desconociese, he optado por escribir la mía propia que adjunto aquí
> para disfrute general de todos (se aceptan sugerencias)

Misteriosamente, observé que aunque el fichero de configuración se
sustituía, la configuración de red no cambiaba. Es decir que mi idea
no funcionaba. (ya lo he solucionado y pongo la solución al final,
pero cuento la historia para que google indexe todas las palabras
clave y si es posible le sirva de algo.)

He estado horas peleándome con el sistema de configuración de gentoo y
mi idea original es que de alguna forma, el sistema hacía caché de la
configuración antigua y no tenía necesidad de leer el nuevo fichero de
configuración.

El problema era que una variable llamada config_eth0 no cargaba el
valor actual. Pero ¿donde se cargaba el valor de config_eth0 en
/etc/init.d/net.eth0 ? En ninguna parte. ¡Maldición!

A pesar de que el lenguaje de dicho fichero se parece mucho a sh, el
intérprete se llama runscript. Engendro compilado creado por un
aburrido que entre otras cosas crea toda una serie de variables por
defecto para los scripts que lo utilizan. Así que por ahi no había
mucho donde rascar. Sospechosamente, en además del fichero runscript
en /sbin/runscript existe otro fichero de nombre muy parecido
/sbin/runscript.sh. Tras unas pruebas, se puede observar que runscript
llama a runscript.sh y ahi es donde se enseña cómo se cargan estas
variables del entorno.

aunque realmente, la función definitiva se llama add_suffix y está
definida en /sbin/funtions.sh

Y aquí está la madre del cordero: add_suffix busca distintas
posibilidades para buscar ficheros y si existe un fichero terminado en
".default" lo considera como el verdadero y único ignorando los demás.
Así que el problema era que nuestro fichero se llamaba con este sufijo
especial, ignorandose el fichero /etc/conf.d/net en favor de
/etc/conf.d/net.default.

No he querido cambiar el código de functions.sh porque los efectos
secundarios pueden ser horribles. Así que la decisión lógica es
cambiar el nombre del fichero de configuración por defecto.

dejando la definición del fichero por defecto como:
PERFILDEFECTO=$PATHPERFIL/net.estandar

El resto se puede quedar igual o si se quiere eliminar
/etc/init.d/net.eth0 stop y el correspondiente start por un simple
restart.

vale.
javier m mora
-- 
gentoo-user-es@gentoo.org mailing list


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic