Posso ter vários diretórios configurados para $ HOME?

1

Estou pensando se posso fazer algo como:

export HOME=$HOME:$HOME/.configs

Para que eu possa manter todas as minhas configurações personalizadas em ~ / .configs.

Eu sei que é possível configurá-lo, mas não tenho certeza se isso causará problemas no futuro. Isso é seguro? Existe uma maneira mais padronizada?

    
por hermancain 16.01.2017 / 21:45

2 respostas

10

Primeiramente, embora possível, e os especialistas podem precisar disso em alguns casos raros, você não deve alterar o valor da variável de ambiente HOME , ela é definida pelo seu sistema.

Em segundo lugar, espera-se que o conteúdo de HOME seja um e apenas um diretório (existente): seu diretório pessoal.

Veja o que POSIX diz sobre HOME :

HOME: The system shall initialize this variable at the time of login to be a pathname of the user's home directory.

    
por 16.01.2017 / 22:07
5

O diretório $HOME/.config faz parte da Especificação do XDG e é determinado pelo valor de $XDG_CONFIG_HOME .

Teoricamente, isso significa que se você quiser que seus arquivos de configuração sejam armazenados em algum outro lugar, basta definir $XDG_CONFIG_HOME para o local preferido.

Na prática, no entanto, você pode encontrar instâncias de software que gravam cegamente em $HOME/.config/... em vez de seguir a Especificação XDG. Particularmente, como não é uma parte necessária de qualquer distribuição.

Para aplicativos que seguem o XDG, você também pode ter um conjunto de diretórios ( $XDG_CONFIG_DIRS colon-separado, como $PATH ) que definem outros locais dos quais os valores padrão devem ser originados. O valor padrão para isso deve ser /etc/xdg .

Agora, a próxima pergunta que deve estar em seus lábios é: "OK, então onde eu defino $XDG_CONFIG_HOME ?" e infelizmente isso fica bastante complicado .

O resumo parece ser que você provavelmente conseguirá colocá-lo em .profile (ou .bash_profile , .bashrc ), mas que uma configuração global via PAM pode ser necessária. Pessoalmente, eu não tentei isso e, em particular, não vejo como uma solução baseada em .profile poderia funcionar com um ambiente de login baseado em GUI.

A segunda pergunta pode ser "Como faço para mover minha configuração para esse novo local?", que também é . Suspiro.

A opção mais fácil aqui é provavelmente usar um link simbólico que aponta $HOME/.config para o seu local preferido. Isso lida não apenas com problemas com a configuração de $XDG_CONFIG_DIR , mas também com quaisquer problemas com aplicativos que insistem em procurar diretamente em $HOME/.config .

cd
test -d .config && mv .config .config_old
ln -s /path/to/preferred_config_dir .config
    
por 16.01.2017 / 22:40