View previous topic :: View next topic |
Author |
Message |
RadikalQ3 Apprentice
Joined: 26 Oct 2003 Posts: 172 Location: Planeta Tierra
|
Posted: Sat Sep 18, 2004 5:13 pm Post subject: [Guia] Hacer mas cómodo etc-update |
|
|
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:
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:
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 |
|
|
salvapc Tux's lil' helper
Joined: 03 Nov 2002 Posts: 99 Location: Murcia (Spain)
|
Posted: Sat Sep 18, 2004 11:38 pm Post subject: |
|
|
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
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 |
|
|
Stolz Moderator
Joined: 19 Oct 2003 Posts: 3028 Location: Hong Kong
|
Posted: Sun Sep 19, 2004 1:03 am Post subject: |
|
|
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:
Ojo, que para sistemas multiusuario, el uso de xhost puede suponer problemas de seguridad, para mas informacion
Saludozzzzzz |
|
Back to top |
|
|
RadikalQ3 Apprentice
Joined: 26 Oct 2003 Posts: 172 Location: Planeta Tierra
|
Posted: Sun Sep 19, 2004 8:36 am Post subject: |
|
|
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 |
|
|
episode96 Apprentice
Joined: 08 Mar 2004 Posts: 173
|
Posted: Sun Sep 19, 2004 9:41 am Post subject: |
|
|
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 |
|
|
ArsDangor Guru
Joined: 20 May 2003 Posts: 477
|
Posted: Wed Sep 22, 2004 7:21 pm Post subject: |
|
|
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 |
|
|
RadikalQ3 Apprentice
Joined: 26 Oct 2003 Posts: 172 Location: Planeta Tierra
|
Posted: Wed Sep 22, 2004 7:40 pm Post subject: |
|
|
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 |
|
|
artic Veteran
Joined: 22 Nov 2003 Posts: 1208
|
Posted: Wed Sep 22, 2004 8:04 pm Post subject: |
|
|
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 |
|
|
ArsDangor Guru
Joined: 20 May 2003 Posts: 477
|
Posted: Wed Sep 22, 2004 9:25 pm Post subject: |
|
|
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 sé que no deben cambiar.
Salu2. _________________ Cómo usar Portage correctamente |
|
Back to top |
|
|
RadikalQ3 Apprentice
Joined: 26 Oct 2003 Posts: 172 Location: Planeta Tierra
|
Posted: Wed Sep 22, 2004 9:31 pm Post subject: |
|
|
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 |
|
|
artic Veteran
Joined: 22 Nov 2003 Posts: 1208
|
Posted: Wed Sep 22, 2004 10:54 pm Post subject: |
|
|
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 |
|
|
ArsDangor Guru
Joined: 20 May 2003 Posts: 477
|
Posted: Thu Sep 23, 2004 12:13 am Post subject: |
|
|
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 |
|
|
dotinmouth Apprentice
Joined: 12 Oct 2004 Posts: 268 Location: Oviedo
|
Posted: Mon Sep 19, 2005 8:09 pm Post subject: |
|
|
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 |
|
|
queru n00b
Joined: 10 Sep 2002 Posts: 7 Location: Zaragoza (Spain)
|
Posted: Wed Sep 21, 2005 6:49 am Post subject: Tribales - Triviales |
|
|
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 |
|
|
RadikalQ3 Apprentice
Joined: 26 Oct 2003 Posts: 172 Location: Planeta Tierra
|
Posted: Wed Sep 21, 2005 7:05 am Post subject: Re: Tribales - Triviales |
|
|
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 |
|
|
queru n00b
Joined: 10 Sep 2002 Posts: 7 Location: Zaragoza (Spain)
|
Posted: Wed Sep 21, 2005 7:48 am Post subject: Corrector. |
|
|
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 |
|
|
RadikalQ3 Apprentice
Joined: 26 Oct 2003 Posts: 172 Location: Planeta Tierra
|
Posted: Wed Sep 21, 2005 7:54 am Post subject: |
|
|
Joooder como ando... hoy no doy pie con bola!
Ah... y tampoco uso corrector... (asi me va) _________________ Radikal Trucomania |
|
Back to top |
|
|
|
|
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
|
|