Como gerenciar configurações em vários computadores e shells?

1

Eu sou um tecnólogo itinerante que nem sempre tem uma conexão confiável com um servidor doméstico. Eu costumo pular entre zsh e bash em algumas das minhas próprias máquinas.

Que conselho ou recomendação você teria para normalizar meus aliases de shell e variáveis entre shells?

    
por saterhater 15.09.2015 / 17:59

1 resposta

2

O básico é colocar seus arquivos de ponto sob controle de versão. Quando você usa uma nova máquina, verifique-as.

cd
git clone https://github.com/saterhater/home.git

Caso a máquina não tenha sua ferramenta de controle de versão, talvez você queira pelo menos baixar uma versão somente leitura. O Github automatiza isso; se você usar uma hospedagem diferente que não forneça esse recurso, torne a geração do arquivo zip um gancho de confirmação.

cd
wget -O - https://github.com/saterhater/home/archive/master.zip | unzip -

Quanto ao conteúdo dos arquivos, você obviamente precisará garantir que eles sejam portáteis. Não há receita mágica para isso, apenas algumas dicas.

  • Certifique-se de testar seus arquivos em versões mais antigas dos shells, não apenas os que você está usando. Eu mantenho chroots com versões mais antigas do Debian para obter uma gama de versões de vários softwares (minha configuração pessoal deve, em princípio, funcionar com o bash 1.14 e zsh 2.5, embora eu não tenha usado versões tão antigas em anos).
  • Se você depender de alguma dependência incomum, verifique-a no seu VCS ou escreva alguma automação para fazer o download.
  • Se você quiser usar algum recurso quando estiver presente, mas manter um fallback se estiver ausente, teste o recurso em vez de testar o número da versão. É mais robusto (alguns sistemas podem ter uma construção noturna, por exemplo).

Você pode compartilhar algumas coisas entre bash e zsh, principalmente aliases e algumas funções. Ligações de teclas e configurações de prompt não são compartilháveis. As funções de conclusão do Bash podem ser usadas com versões não antigas do zsh. Se você tiver algum código que faz uso da divisão e globbing automáticas de variáveis não nomeadas que o zsh não executa, você pode executar emulate -L ksh para fazer com que o zsh alterne para o modo de compatibilidade do ksh pela duração de uma função; Torne emulate um alias para : se o shell não for zsh (você pode testar a presença da variável ZSH_VERSION ).

    
por 16.09.2015 / 04:02

Tags