Então, eu uso o Git principalmente para fins de desenvolvimento, mas acabei de perceber que poderia usá-lo para armazenar versões dos arquivos de configurações que tenho na instalação do Ubuntu.
Minha configuração proposta é:
git init
um repo em/
Adicionar
.gitignore
a/
ignora todos os arquivos, exceto as configurações específicas que desejo rastrear.Por exemplo, o
.gitignore
poderia conter ( fonte ):## Ignore everything... * ## Except... !/etc/default/tlp !/etc/crontab
Sempre que altero essas configurações de baixo nível, posso rastreá-las.
Existe algo que poderia dar errado com essa configuração? O kernel sempre precisa /
ter apenas determinadas pastas? Isso atrapalhará o funcionamento de qualquer aplicativo?
~
arquivos de configurações de diretório casa ao invés de/
arquivos/etc/crontab
no meu laptop pessoal são definitivamente minhas, mas entendo o que você quer dizer.etckeeper
e faça backups.Respostas:
A resposta para ambas as perguntas é não, você pode criar qualquer diretório que desejar no
/
. a única coisa que poderia acontecer são alguns problemas de permissão com alguns caminhos espaciais, eu acho.No entanto, é melhor armazenar o
.git
diretório em outro lugar, algo parecido com:Leia aqui .
fonte
Na verdade, você provavelmente vai querer arquivos de configuração de controle de versão em
/etc/
(você não se preocupam com as entradas de diretório raiz/
, nomeadamente diretórios comoproc
ouusr
oubin
em/
) para que você pode querer instalar oetckeeper
pacoteE você também pode controlar a versão de alguns subdiretórios selecionados (como o
/usr/share/applications/
que você mencionou).No entanto, não mexa no sistema de gerenciamento de pacotes Ubuntu . Talvez você deva principalmente fazer backup da lista atual de pacotes instalados.
fonte
/usr/share/applications
pois ocasionalmente mexo com eles.Ter um repositório git em / funciona bem, exceto que dificulta a observação quando você tem um repositório git de nível inferior com problemas, pois ele responde por todos eles.
Nota: É menos trabalhoso e provavelmente mais útil usar 'debsums'
O que permitirá detectar rapidamente (a maioria) as alterações nos binários ou nos arquivos de configuração.
Como exemplo dos pacotes instalados, aqui estão os que diferem dos pacotes upstream.
E você pode obter uma lista dos arquivos de configuração alterados com:
Observe como o navegador chromium é empacotado incorretamente e possui um arquivo listado na lista de arquivos do pacote que não existe.
Isso usa os dados do dpkg e evita um grande diretório /.git e fluxo de trabalho.
fonte
/home/$USER
então o.git
em/
responderá por qualquer comando git dado para o repo em/home$USER
vez de para que [.gir
arquivo] em/home/$USER
....git
diretório superior na árvore, você sócd
a ela, ou um subdiretório dele que não tem uma.git
pasta (um diretório normal que é)Então, eu estive explorando as outras respostas e encontrei um procedimento que funciona para mim:
Faça um
.gitignore
at/
. Isso foi muito mais complicado do que eu pensava, devido à maneira como o Git lida com arquivos da lista de permissões em subpastas. Eu usei esse e esse link para me ajudar.Vá
/
e executegit init .
Até agora, não consegui armazenar a.git/
pasta em outro diretório usando o link mencionado por @Ravexina .Corra
git add .
egit status
. Você deve obter uma lista de todos os arquivos de configuração que o Git está rastreando.Comprometa-se com
git commit -m "Initial settings files"
.Você pode acompanhar as alterações com
git log -p -- path/to/file
ougitk path/to/file
. Mais discussão sobre isso aqui .fonte
Se você deseja armazenar coisas confidenciais (como
/etc/shadow
) no repositório git, verifique se elas não são legíveis por todos os usuários, pois, por padrão, os objetos terão a permissão444
e os diretórios terão a permissão0755
. Você pode alterar a permissão de.git
a700
ou colocá-lo em/root
Outro problema é que o git não armazena permissões de arquivo como o sistema de arquivos e não armazena atributos estendidos. Para arquivos, o git armazena apenas se eles são executáveis. Portanto, se você deseja restaurar um arquivo excluído, seu proprietário e grupo serão raiz (se você o fizer como root) e sua permissão será
644
ou755
. Pode ser problemático para os arquivos de configuração dos serviços cujo proprietário não é root.fonte