Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[Guia] Hacer mas cómodo etc-update
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Spanish
View previous topic :: View next topic  
Author Message
RadikalQ3
Apprentice
Apprentice


Joined: 26 Oct 2003
Posts: 172
Location: Planeta Tierra

PostPosted: Sat Sep 18, 2004 5:13 pm    Post subject: [Guia] Hacer mas cómodo etc-update Reply with quote

Guia para mejorar el etc-update

Tras emerger algun paquete, si éste 'propone' una configuración diferente a la nuestra, emerge no sabe cual de los dos ficheros de configuración seguir utilizando, y es por este motivo por el cual nos da el coñazo, haciendo que seamos nosotros quienes evaluemos que cambios hay que hacer con esos nuevos ficheros de configuración.
Esto está bien, salvo en unos cuantos casos, en los que se nos pregunta por ficheros con cambios triviales, o bien ficheros que tu no has tocado nunca.

Trasteando por los foros, he encontrado un apañito para esto, y pongo aqui unas pequeñas instrucciones de cómo instalar todo el invento para hacernos las actualizaciones 'un poco' más cómodas.

En primer lugar, vamos a instalar el paquete rcs:
Code:

*  app-text/rcs
      Latest version available: 5.7-r2
      Latest version installed: 5.7-r2
      Size of downloaded files: 275 kB
      Homepage:    http://www.gnu.org/software/rcs/
      Description: Revision Control System
      License:     GPL-2

que no es mas que un controlador de revisiones, para lo cual haremos un:
Code:

emerge rcs

y tambien el paquete colordiff, que es un substituto del diff que muestra las diferencias entre dos ficheros usando colores:
Code:

*  app-misc/colordiff
      Latest version available: 1.0.4
      Latest version installed: 1.0.4
      Size of downloaded files: 12 kB
      Homepage:    http://colordiff.sourceforge.net/
      Description: Colorizes output of diff
      License:     GPL-2

lo cual haremos con:
Code:
emerge colordiff


tras esto, necesitamos crear el directorio que usará el rcs para guardar las diferentes versiones de las configuraciones que vaya manejando.
En concreto, basta con que hagamos:
Code:

mkdir /etc/config-archive

en cualquier consola.
Ahora, configuraremos el fichero /etc/dispatch-conf.conf
Os pongo aqui el mío, para que veais las diferencias respecto al vuestro:

Code:
#
# dispatch-conf.conf
#

# Directory to archive replaced configs
archive-dir=/etc/config-archive

# Use rcs for storing files in the archive directory?
# (yes or no)
use-rcs=yes

# Diff for display
diff="colordiff -Nau %s %s"

# Pager for diff display
pager="less -R --no-init --QUIT-AT-EOF"

# Automerge files comprising only CVS interpolations (e.g. Header or Id)
# (yes or no)
replace-cvs=yes

# Automerge files comprising only whitespace and/or comments
# (yes or no)
replace-wscomments=yes

# Automerge files that the user hasn't modified
# (yes or no)
replace-unmodified=yes


Con todo esto, ya teneis el invento configurado.
Para usarlo, en lugar de hacer etc-update, sólo teneis que hacer un: dispatch-conf
El rcs se encargará de evitar darnos el coñazo con cambios triviales en ficheros de configuración, por ejemplo, cuando sólo cambien su cabecera, o cuando las diferencias sólo consistan en unos cuantos espacios en blanco, etc.
Además, el rcs es un 'gestor' de ficheros, y el tio va guardando las diferentes versiones de las configuraciones que hayamos tenido, lo cual hace dejándolas en el directorio /etc/config-files

Para el resto de ficheros, se nos mostrará tal como hace el etc-update una ristra con las diferencias entre los dos ficheros, pero, gracias al colordiff, en dos colores.
Tras ver las diferencias (lo cual se hace con un less, asi que si quieres salir de él, solo hay que pulsar la q) tendremos opcion de o bien usar la nueva version del fichero, o bien la vieja.
Al principio es un poco raro el cambio de manejo respecto al del etc-update, pero, lo bueno de este método es que no invalida el etc-update... es decir, podemos dar la primera pasada haciendo un dispatch-conf y quitandonos así los cambios triviales, y luego hacer un etc-update para hacerlo como hasta ahora.
Al respecto... podemos tambien 'colorear' la salida del etc-update, simplemente cambiando un poquito su configuracion, en el fichero /etc/etc-update.conf:
Code:

# edit the lines below to your liking
# $Header: /home/cvsroot/gentoo-src/portage/cnf/etc-update.conf,v 1.5 2003/04/28 10:19:46 carpaski Exp $

# mode - 0 for text, 1 for menu (support incomplete)
# note that you need dev-util/dialog installed
mode="0"

# Whether trivial/comment changes should be automerged
eu_automerge="yes"

# arguments used whenever rm is called
rm_opts="-i"

# arguments used whenever mv is called
mv_opts="-i"

# arguments used whenever cp is called
cp_opts="-i"

# pager for use with diff commands (see NOTE_2)
pager="less -R"
#pager=""

# vim-users: you CAN use vimdiff for diff_command. (see NOTE_1)
diff_command="colordiff -uN %file1 %file2"
using_editor=0
#diff_command="vim -d %file1 %file2"
#using_editor=1


# vim-users: don't use vimdiff for merging (see NOTE_1)
merge_command="sdiff -s -o %merged %orig %new"


y tendreis un etc-update con salida a color.

Para redondear esto, lo mejor sería poder usar un editor de texto específico para ver/editar diferencias entre dos ficheros.

Tal como nos indica [Stolz], podemos usar el kompare, que es un programa para mostrar las diferencias entre dos ficheros de forma gráfica.
Aqui teneis una captura del programa.
Para utilizarlo, primero hay que emergerlo, con:

Code:
emerge kde-base/kdesdk


y luego, hacer que el dispatch-conf lo use para mostrar las diferencia, lo cual se consigue editando el fichero /etc/dispatch-conf y cambiando el diff (o el colordiff) por Kompare, tal que así:

Code:
# Diff for display
#diff="colordiff -Nau %s %s"
diff="kompare %s %s"


La pega de este sistema es que sólo nos vale para ejecutar el dispatch-conf en una consola dentro de un servidor X... es decir, que necesitamos las X para que tire el kompare...

Me gustaría hacer un cambio en el script del dispatch-conf para que ejecutase o bien el colordiff o bien el kompare, en función de si el script se está ejecutando en una consola de texto o en una consola X, pero mis conocimientos del bash no dan para tanto... :)
De momento, cuando uso el dispatch-conf desde un ssh remoto, lo uso sólo para que haga los cambios triviales, luego salgo de él y ejecuto el etc-update (en el que sigo con el colordiff en lugar del kompare) y hago los cambios restantes.
_________________
Radikal Trucomania


Last edited by RadikalQ3 on Wed Sep 21, 2005 7:06 am; edited 2 times in total
Back to top
View user's profile Send private message
salvapc
Tux's lil' helper
Tux's lil' helper


Joined: 03 Nov 2002
Posts: 99
Location: Murcia (Spain)

PostPosted: Sat Sep 18, 2004 11:38 pm    Post subject: Reply with quote

Para comodo en lo de mezclar ficheros es utilizar el gtkdiff
que es para las X y te muestra el resultado final mezclado y el actual y el
nuevo, vas seleccionando con el raton las lineas que quieres poner.
cambias en el /etc/etc-update.conf el merge_command por esta

Code:

merge_command="gtkdiff  -o %merged %orig %new"

en el usuario que estes en las X le haces

Code:

xhost +

para aceptar conexiones
Tambien me lo he puesto asi para hacer el etc-update del servidor que tengo que administrar.
Lo que pasa es que para esto me me hice un script intermedio ya que el gtkdiff hay que llamarlo con el parametro de a que ip se tenia que conectar me daba error.
En el servidor lo tengo asi
Code:

merge_command="/bin/gtkdiff-llamada %merged %orig %new"

y el script /bin/gtkdiff-llamada asi
Code:

#!/bin/bash
echo "llamando a gtkdiff con -o $@"
export DISPLAY=192.168.100.9:0
gtkdiff -g 1152x864  -o $@

192.168.100.9 es la ip de mi maquina
_________________
Nacionalismos y Religiones, las PESTES de la Humanidad
... yo
Back to top
View user's profile Send private message
Stolz
Moderator
Moderator


Joined: 19 Oct 2003
Posts: 3028
Location: Hong Kong

PostPosted: Sun Sep 19, 2004 1:03 am    Post subject: Reply with quote

Muy util la guía, yo hasta hace poco hacia algo mas simple:

Yo suelo usar Kompare, un prgrama para KDE que muestra en dos columnas , y con distintos colores, los cambios entre ambos archivos. Puedes ver una captura AQUI

Para usarlo, editar /etc/etc-update.conf y hacer la siguiente modificacion:
diff_command="kompare %file1 %file2"

Normalmente, cuando hago un ect-update, estoy en un terminal abierto por un usuario, pero 'logeado' como root, por lo que para que se pueda ejecutar Kompare, antes de logearnos como root deberiamos de haber ejecutado:
Code:
xhost +localhost

Ojo, que para sistemas multiusuario, el uso de xhost puede suponer problemas de seguridad, para mas informacion
Code:
man xhost


Saludozzzzzz
Back to top
View user's profile Send private message
RadikalQ3
Apprentice
Apprentice


Joined: 26 Oct 2003
Posts: 172
Location: Planeta Tierra

PostPosted: Sun Sep 19, 2004 8:36 am    Post subject: Reply with quote

Stolz wrote:
Yo suelo usar Kompare, un prgrama para KDE que muestra en dos columnas


Juer... tiene muy buena pinta... pero veo que no está en portage ¿no?
Lo buscaré :)
_________________
Radikal Trucomania
Back to top
View user's profile Send private message
episode96
Apprentice
Apprentice


Joined: 08 Mar 2004
Posts: 173

PostPosted: Sun Sep 19, 2004 9:41 am    Post subject: Reply with quote

RadikalQ3 wrote:
Stolz wrote:
Yo suelo usar Kompare, un prgrama para KDE que muestra en dos columnas


Juer... tiene muy buena pinta... pero veo que no está en portage ¿no?
Lo buscaré :)


Está incluido en kde-base/kdesdk
Back to top
View user's profile Send private message
ArsDangor
Guru
Guru


Joined: 20 May 2003
Posts: 477

PostPosted: Wed Sep 22, 2004 7:21 pm    Post subject: Reply with quote

La herramienta colordiff (o kompare, o la que sea) también se puede usar con etc-update. Basta con editar adecuadamente el fichero /etc/etc-update.conf .

A mí dispatch-conf me gustaba, hasta que un día intentó cargarse mi fstab. La cosa es que yo tengo puestos varios ficheros en la variable CONFIG_PROTECT_MASK en mi make.conf. etc-update me los respeta todos, sin problemas, con lo que casi siempre puedo decirle que reemplace todos los ficheros (opción -5) del tirón. Pero dispatch-conf no hacía caso de esa variable.
¿Sigue siendo esa la conducta de dispatch-conf? ¿Cómo prevenís reemplazar lo que no debéis?

Salu2.
_________________
Cómo usar Portage correctamente
Back to top
View user's profile Send private message
RadikalQ3
Apprentice
Apprentice


Joined: 26 Oct 2003
Posts: 172
Location: Planeta Tierra

PostPosted: Wed Sep 22, 2004 7:40 pm    Post subject: Reply with quote

ArsDangor wrote:
La herramienta colordiff (o kompare, o la que sea) también se puede usar con etc-update. Basta con editar adecuadamente el fichero /etc/etc-update.conf


Sí, así lo pone en la guia :)

ArsDangor wrote:
¿Cómo prevenís reemplazar lo que no debéis?

Hombre... yo no uso el config protect para nada... me gusta que se me indiquen los nuevos cambios en ficheros de configuración, y acabo de recompilar todo el word desde cero y el dispatch config no se ha cargado nada...
Con el rcs activado, el dispatch config resuelve los cambios triviales sin problemas, y en el resto... por mucho config_protect que uses... quieras o no tendrás que echarle un vistazo si andas metiendo nuevas versiones de paquetes...
_________________
Radikal Trucomania
Back to top
View user's profile Send private message
artic
Veteran
Veteran


Joined: 22 Nov 2003
Posts: 1208

PostPosted: Wed Sep 22, 2004 8:04 pm    Post subject: Reply with quote

Muy bonito el kompare pero cargante,yo creo dado la naturaleza del etc-update lo mejor son los colores,por lo menos hasta q no sea grafico,pq visto lo visto dentro de poco emergeremos con el navegador o una interfaz gtk.
Salu2
_________________
Pwd by Gentoo | 2.6.28-gentoo-x64 | kde4.2| ext4 | xorg 7.4 |
Back to top
View user's profile Send private message
ArsDangor
Guru
Guru


Joined: 20 May 2003
Posts: 477

PostPosted: Wed Sep 22, 2004 9:25 pm    Post subject: Reply with quote

RadikalQ3 wrote:
ArsDangor wrote:
¿Cómo prevenís reemplazar lo que no debéis?

Hombre... yo no uso el config protect para nada... me gusta que se me indiquen los nuevos cambios en ficheros de configuración, y acabo de recompilar todo el word desde cero y el dispatch config no se ha cargado nada...


Ya. Eso está muy bien, hasta que actualizas un paquete gordo y hay 200 ficheros que cambiar. Y uno de ellos es tu fstab. Y se te cuela.

RadikalQ3 wrote:
Con el rcs activado, el dispatch config resuelve los cambios triviales sin problemas, y en el resto... por mucho config_protect que uses... quieras o no tendrás que echarle un vistazo si andas metiendo nuevas versiones de paquetes...
Sí. Pero hay ficheros que nunca se deben modificar. Por ejemplo, el fstab. O el /etc/services. O el make.conf.
Por eso quiero saber si hay alguna forma de que el dispatch-conf no me intente sobreescribir los ficheros que yo que no deben cambiar.

Salu2.
_________________
Cómo usar Portage correctamente
Back to top
View user's profile Send private message
RadikalQ3
Apprentice
Apprentice


Joined: 26 Oct 2003
Posts: 172
Location: Planeta Tierra

PostPosted: Wed Sep 22, 2004 9:31 pm    Post subject: Reply with quote

A ver, trozo sacado del script del dispatch-conf:
Code:

        #
        # Remove new configs identical to current
        #                  and
        # Auto-replace configs a) whose differences are simply CVS interpolations,
        #                  or  b) whose differences are simply ws or comments,
        #                  or  c) in paths now unprotected by CONFIG_PROTECT_MASK,
        #

        def f (conf):
            mrgconf = re.sub(r'\._cfg', '._mrg', conf['new'])
            archive = os.path.join(self.options['archive-dir'], conf['current'].lstrip('/'))
            if self.options['use-rcs'] == 'yes':
                dispatch_conf.rcs_archive(archive, conf['current'], conf['new'], mrgconf)
            else:
                dispatch_conf.file_archive(archive, conf['current'], conf['new'], mrgconf)

como ves, tambien hace uso del CONFIG_PROTECT_MASK...
Aunque yo sigo sin hacer uso de el :) quien sabe... puede que en un futuro haya cambios en el fstab... no quiero que me pasen desapercibidos.
_________________
Radikal Trucomania
Back to top
View user's profile Send private message
artic
Veteran
Veteran


Joined: 22 Nov 2003
Posts: 1208

PostPosted: Wed Sep 22, 2004 10:54 pm    Post subject: Reply with quote

Lo del fstab me paso una vez y no fue muy grato q digamos,por eso tengo una copia de seguridad de mis etc mas importantes,q despues con el livecd resuelvo rapidamente,en caso de q estos no me permitan arrankar.
Esta claro q el etc-update es mejorable,pero por mejorar muy rapido = tropezamos.
salu2
_________________
Pwd by Gentoo | 2.6.28-gentoo-x64 | kde4.2| ext4 | xorg 7.4 |
Back to top
View user's profile Send private message
ArsDangor
Guru
Guru


Joined: 20 May 2003
Posts: 477

PostPosted: Thu Sep 23, 2004 12:13 am    Post subject: Reply with quote

RadikalQ3 wrote:
A ver, trozo sacado del script del dispatch-conf:
[...]
como ves, tambien hace uso del CONFIG_PROTECT_MASK...
Aunque yo sigo sin hacer uso de el :) quien sabe... puede que en un futuro haya cambios en el fstab... no quiero que me pasen desapercibidos.

Oks. Cierto.
En versiones más antiguas, dispatch-conf pasaba olímpicamente de mi CONFIG_PROTECT_MASK. Me alegro de que lo hayan solucionado. Lo probaré estos días, a ver qué tal tira.

Salu2.
_________________
Cómo usar Portage correctamente
Back to top
View user's profile Send private message
dotinmouth
Apprentice
Apprentice


Joined: 12 Oct 2004
Posts: 268
Location: Oviedo

PostPosted: Mon Sep 19, 2005 8:09 pm    Post subject: Reply with quote

ArsDangor wrote:
RadikalQ3 wrote:
A ver, trozo sacado del script del dispatch-conf:
[...]
como ves, tambien hace uso del CONFIG_PROTECT_MASK...
Aunque yo sigo sin hacer uso de el :) quien sabe... puede que en un futuro haya cambios en el fstab... no quiero que me pasen desapercibidos.

Oks. Cierto.
En versiones más antiguas, dispatch-conf pasaba olímpicamente de mi CONFIG_PROTECT_MASK. Me alegro de que lo hayan solucionado. Lo probaré estos días, a ver qué tal tira.

Salu2.

Yo solo cambie diff por colordiff. En color todo se ve mejor ;) Bye
_________________
Amare a GNU/Linux sobre todas las cosas y honrare a la GPL (frase celebre de un geek del foro)
Back to top
View user's profile Send private message
queru
n00b
n00b


Joined: 10 Sep 2002
Posts: 7
Location: Zaragoza (Spain)

PostPosted: Wed Sep 21, 2005 6:49 am    Post subject: Tribales - Triviales Reply with quote

Estupendo artículo, aunque creo que donde dices "tribales" (de tribu) quieres decir "triviales" (de trivial). Te ha traicionado el corrector seguramente.

Gracias por regalarnos tu tiempo. Saludos.
_________________
queru - http://queru.org
Linux Registered User: 170191
Back to top
View user's profile Send private message
RadikalQ3
Apprentice
Apprentice


Joined: 26 Oct 2003
Posts: 172
Location: Planeta Tierra

PostPosted: Wed Sep 21, 2005 7:05 am    Post subject: Re: Tribales - Triviales Reply with quote

queru wrote:
Estupendo artículo, aunque creo que donde dices "tribales" (de tribu) quieres decir "triviales" (de trivial). Te ha traicionado el corrector seguramente.

Jejeje no, nada de traductor... el artículo no es una traducción... mas bien creo que sería un exceso de cafeína :)
_________________
Radikal Trucomania
Back to top
View user's profile Send private message
queru
n00b
n00b


Joined: 10 Sep 2002
Posts: 7
Location: Zaragoza (Spain)

PostPosted: Wed Sep 21, 2005 7:48 am    Post subject: Corrector. Reply with quote

Corrector decía. Pensaba que quizá era el corrector ortográfico el que te había traicionado. Tienes que dejar el café, y seguir escribiendo artículos como este.

Abrazos.
_________________
queru - http://queru.org
Linux Registered User: 170191
Back to top
View user's profile Send private message
RadikalQ3
Apprentice
Apprentice


Joined: 26 Oct 2003
Posts: 172
Location: Planeta Tierra

PostPosted: Wed Sep 21, 2005 7:54 am    Post subject: Reply with quote

Joooder como ando... hoy no doy pie con bola!
Ah... y tampoco uso corrector... (asi me va) :)
_________________
Radikal Trucomania
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Spanish All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum