Como podemos facilitar a implementação de configurações pessoais ou de arquivos de inicialização, com a existência de arquivos padrão?

0

Tenho uma pergunta de acompanhamento após o link

Suponha que eu tenha uma configuração pessoal ou arquivo de inicialização no meu disco rígido externo de backup ou repositório do github, por exemplo, .profile (ou qualquer outra configuração ou arquivo de inicialização).

Suponha que eu mude para um novo sistema Ubuntu temporariamente ou permanentemente. O novo sistema operacional tem um padrão ~/.profile .

Ao implantar meu arquivo de backup no novo sistema, é necessário mesclar manualmente o meu backup e o padrão, ou posso simplesmente substituir o padrão do novo sistema pelo meu backup?

Não tenho certeza se a sobregravação é uma boa ideia, porque as partes padrão nos arquivos de configuração no sistema anterior e no novo sistema podem ser diferentes.

Existe alguma prática recomendada para tornar a implantação mais simples e fácil?

Por exemplo, queria saber se é uma boa ideia que meu arquivo de backup contenha apenas os comandos que adicionei manualmente e, quando o implantar em um novo sistema, preencha meu arquivo de backup com o conteúdo do arquivo. novo arquivo padrão do sistema e substitua o arquivo padrão do novo sistema por um link simbólico para o arquivo de backup recém-modificado.

Obrigado.

    
por Tim 07.05.2018 / 22:03

1 resposta

1

When deploying my backup file to the new system, is it necessary to merge my backup one and the default one manually, or can I just overwrite the new system's default one with my backup one?

É necessário ? Tecnicamente, não. Praticamente sim. De fato, mais do que apenas mesclar deve ser considerado no caso geral, já que você pode achar que alguns dos comandos do seu antigo arquivo estão errados o suficiente para o novo que eles precisam apenas ser removidos.

I am not sure if overwriting is a good idea, because the default parts in the configuration files in the previous system and the new system might be different.

Existem duas categorias gerais de comandos que você geralmente encontra nos arquivos de configuração do ambiente:

  • configurações relacionadas à configuração de software e recursos disponíveis no host e
  • ambiente do shell personalizações

O último pode ser transferido com maior ou menor segurança, já que os únicos problemas prováveis seriam coisas decorrentes de incompatibilidades entre as versões do shell. Esses raramente são um problema na prática. O primeiro, no entanto, pode não fazer sentido para transferência de todo.

É inofensivo definir variáveis de ambiente que nenhum software instalado usará ou adicionar elementos de caminho que realmente não existem, mas você poderá perder o acesso ao software disponível se você verificar o conteúdo relevante de seus arquivos de inicialização de shell padrão. Ou, se você realizou personalizações mais profundas, talvez descubra que elas dependem de software que não é fornecido pelo novo sistema ou que não funcionam como desejado com o software da nova máquina.

Is there some best practice to make the deployment simpler and easier?

Sim. Os sistemas devem evitar confiar nos arquivos de inicialização do shell por usuário ou, pelo menos, evitar colocar quaisquer configurações do primeiro tipo descritas acima. Existem mecanismos bons e bem testados para configurar ambientes de usuários que não exigem que arquivos por usuário sejam configurados ou gerenciados. O ideal seria, então, que os sistemas não fornecessem arquivos de inicialização de shell não-vazios por usuário.

Os usuários, por sua vez, poderiam considerar manter as personalizações do ambiente de shell bem separadas da configuração de ferramentas e aplicativos específicos, preferencialmente em arquivos separados. Idealmente, pouco ou nenhum dos últimos é necessário, e o que você precisa seria melhor modularizado.

For example, I was wondering if it is a good idea that my backup file contains only those commands which I have added manually, and when I deploy it to a new system, I just prepend my backup file with the content of the new system's default file, and replace the new system's default file with a symlink to the newly modified backup file.

Se você quiser manter o arquivo padrão (se houver) separado de suas adições, uma aposta melhor seria manter suas adições em um arquivo completamente diferente, como ~/.profile-Tim , e modificar o arquivo padrão apenas anexando um comando para ler esses comandos, ou seja,

test -r ~/.profile-Tim && . ~/.profile-Tim

Não faça backup ou transfira ~/.profile , mas atualize-o novamente conforme necessário para criar suas personalizações.

Mesmo assim, no entanto, você pode ter problemas, pois é possível que as configurações pessoais do software que você transferiu estejam incorretas para o novo ambiente. Você pode tornar isso mais fácil de gerenciar, mantendo suas personalizações bem modularizadas, mas é da natureza das personalizações ter algum grau de especificidade para o sistema básico.

    
por 07.05.2018 / 22:56