Eu observaria maneiras de especificar $ HOME como parte do caminho para o software avaliar em tempo de execução. Há uma boa chance de exigir o patch do código ...
Eu tenho a tendência de copiar alguns programas úteis para todos os servidores em que estou logado. Eu tenho um monte de arquivos de configuração, um zsh estaticamente compilado (no caso eu preciso de uma nova versão), vim, python, controle de versão binária, etc. Eu tenho um script que apenas verifica, vincula todos os binários para ~ / bin se eles É mais recente que as versões para todo o sistema e faz toda a configuração necessária - eu tenho a configuração que preciso em qualquer tipo de host / distro.
Isso funcionou muito bem, enquanto eu tive o mesmo login em todos os hosts. Infelizmente agora não posso usar meu login padrão em alguns hosts. Como posso modificar meu ambiente para trabalhar da mesma maneira sem recompilar? Por exemplo, com uma implantação normal, eu precisaria recompilar python para tornar /home/yyy/priv_env/python/lib
o caminho da biblioteca principal, mas em todos os outros hosts eu preciso de /home/xxx/...
. Este caso pode ser resolvido com PYTHONPATH
, é claro, mas existem outros binários tomando o caminho padrão do estágio de compilação - como os módulos zsh. Existe alguma maneira de resolver isso sem cuidar de muitas variáveis de shell?
Idealmente, eu usaria um chroot privado no ambiente que mapeia todos os diretórios necessários para os lugares que eu preciso. Mas o chroot não está disponível para usuários não-root, é claro.
Também pensei em configurar um link em /tmp/${random_preselected_string}
to ${HOME}/priv_env
e definir todos os caminhos para apontar para o link /tmp/...
. Isso funcionará, desde que ninguém crie um arquivo com o mesmo nome. Também com longas sessões de login, pode ser afetado por autocleaners tmp.
Você tem alguma ideia melhor?
Isso não ajudará muito, mas, como regra geral, a ideia por trás da criação de fontes é que eles são direcionados à configuração da biblioteca da sua máquina host. Não é garantido que os binários portáteis gerados por meio da vinculação estática em outra máquina funcionem e não sejam a maneira canônica de fazer as coisas. Geralmente, você deve compilar seus binários personalizados em todas as máquinas que você segmenta.
Como um substituto, eu definiria o prefixo como /usr/local
, mas, novamente, vejo seu dilema, não ter acesso root e tudo mais.
Tags deployment private