Yo uso Gentoo Linux y tiene una configuración bastante compleja. Mi pregunta, ¿es aconsejable usar git para la versión que controla mis archivos de configuración?
Tengo algunos repositorios de git en mi casa, supongo que si pongo / home / ** en mi .gitignore no causarán problemas.
Actualización de aclaraciones:
¿Es un método inteligente usar git para controlar la versión de mis archivos de configuración de nivel de sistema en el directorio raíz "/"?
Respuestas:
La respuesta corta a su pregunta es sí .
No dudaría en recomendar Git (o cualquier otro software de control de versiones) para realizar un seguimiento de los archivos de configuración. Desde entonces, he sido más productivo (particularmente para configurar nuevas instalaciones) y tengo mayor confianza en mis archivos de configuración. Con el control de versiones, tengo un registro de lo que se hicieron cambios y el mensaje de confirmación proporciona la razón por qué se hizo el cambio. Si un cambio tiene efectos secundarios no deseados, puedo revisar fácilmente el registro / historial para ver qué cambio causó los efectos.
Personalmente, desconfiaría de rastrear todos los archivos en el
/
directorio raíz. La lista de caminos a ignorar podría volverse grande y difícil de manejar. Prefiero mantener cada conjunto lógico de archivos en su propio repositorio.Yo uso manual Git para realizar un seguimiento de mis personales de configuración / archivos de arranque, por ejemplo, la configuración de Vim, funciones Bash, alias, etc. - similar al enfoque que figuran en Cómo realizar el seguimiento $ HOME con git . Mantengo cada conjunto de archivos en su propio repositorio y uso enlaces simbólicos al directorio de inicio.
Para los archivos de configuración del sistema , uso Git con Etckeeper para realizar un seguimiento de los archivos en mi
/etc
directorio.Inconvenientes
Una cuestión a tener en cuenta es si los archivos que se rastrean incluyen enlaces duros . Cuando Git se usa para extraer archivos o modificar el árbol de trabajo, desvincula los archivos y luego los recrea . Ver Git, Dotfiles y Hardlinks para una explicación más completa.
Etckeeper
Etckeeper se puede usar para mantener un historial completo de los cambios realizados en / etc. Realiza un seguimiento de los metadatos de los archivos que los sistemas de control de revisiones normalmente no son compatibles, pero para eso es importante
/etc
, como los permisos de/etc/shadow
.Se conecta a los administradores de paquetes como apt y yum y (en su configuración predeterminada), se ejecuta antes y después de la instalación para que
/etc
se rastreen todos los cambios .Si se instala o elimina un paquete, todos los cambios no confirmados en / etc se confirmarán antes de la operación del paquete para que haya dos confirmaciones:
Lo he usado con distribuciones basadas en Debian y Red Hat y sé que es compatible con la gestión de paquetes Arch. No puedo decir cuánta automatización agregaría a un sistema Gentoo, pero hay un paquete disponible para ello .
También admite la inserción de los archivos de configuración en un repositorio remoto (que, por supuesto, debería ser privado).
Configuración
Después de instalar el paquete, es posible que deba configurarlo (
/etc/etckeeper/etckeeper.conf
), por ejemplo, en los sistemas Ubuntu, el sistema de control de versiones predeterminado cambia de Git a Bazaar. También puede deshabilitar las confirmaciones automáticas diarias .Autocompromisos diarios
Los cambios pueden ser confirmados automáticamente por un trabajo cron diario . Esto puede ser molesto ya que el repositorio puede estar lleno de múltiples mensajes de confirmación automatizados.
Descomento la línea apropiada en
/etc/etckeeper/etckeeper.conf
:Ignorar ciertos archivos
Edite
/etc/.gitignore
para especificar cualquier archivo que no deba rastrearse.Primer intento
Después de configurar, ejecute los siguientes comandos:
Si su directorio actual es
etc
, puede ejecutargit
comandos regulares , por ejemplo,fuente
etckeeper
durante la confirmación diaria, en realidad se comprobará primero si/etc
está "impuro", es decir, si tiene archivos no confirmados. Si no, no se comprometerá. Entonces, si su registro de confirmación está lleno de confirmaciones diarias, es probable que haya archivos que cambian diariamente que no ha agregado al.*ignore
archivo :-)bzr init
--__-- ... Recomiendo siempre ejecutarloetckeeper uninit -f
después de la instalación.Uso git para rastrear áreas específicas de mi directorio de inicio. Personalmente, no viajaría por el camino del seguimiento del directorio raíz, pero debo decir que admiro su ambición. :)
Quizás esta colección de experiencias podría proporcionarle una mejor idea de lo que podría estar metiendo:
efectos de inicializar el repositorio git en el directorio raíz de Linux 3 :)
Disculpas por una "respuesta", en lugar de simplemente lanzar el enlace en un comentario; sin embargo, no hay suficiente representante, pero deseaba intervenir.
Editar
¡Guauu! Muy buena respuesta de @AnthonyGeoghegan. Creo que esta no es una lucha tan grande como la imaginé originalmente.
fuente
También uso
git
para almacenar y mantener midotfiles
, pero en agit bare repository
. Una guía detallada se puede encontrar aquí . Estoy usando dos repositorios, uno para mis usuarios dotfiles con nombremyconf
y otro para los rootfiles con nombrerootconf
.Además, puede usar ambas configuraciones en muchas máquinas, diferentes distribuciones de Linux o máquinas virtuales: simplemente cree una nueva rama para una configuración distinta. Luego, evita mezclar el código en el mismo archivo (por ejemplo
.bash_alias
): ya no es molesto comprobar si la máquina actual; nore no se necesitan enlaces!fuente