Minha empresa usa LMod para permitir que vários usuários tenham diferentes versões de vários itens, tudo na mesma máquina. Isso basicamente envolve compilar tudo o que você precisa da origem em um diretório local, o que às vezes envolve a edição de código e / ou Makefiles. O LMod, em seguida, fornece um wrapper útil para anexar esse diretório à variável PATH
do sistema.
Enfim, é um grande problema, mas consegui instalar um monte de bibliotecas úteis de tal forma que eu posso, por exemplo, usar pip
para instalar pacotes python sem dor de cabeça. No entanto, como esse é um sistema multiusuário, eu gostaria de compartilhar todo o meu trabalho duro com outras pessoas sem permitir que eles escrevessem para os módulos meus e estragassem tudo. Como tal, estou executando o seguinte:
1) copie a pasta local com todo o bin, lib, inclua o conteúdo para um novo local $cp -r my_modules your_modules
2) coisas instaladas hardcodes caminhos por todo o local ... então precisamos substituir esse caminho em todas as pastas ....
$cd your_modules
$find . -type f -print0 | xargs -0 sed -i "s|my_modules|your_modules|g"
3) Use o LMod para colocar your_modules
no PATH
, PYTHONPATH
, LD_LIBRARY_PATH
etc etc em vez de my_modules
. O bit LMod não é importante, leia isso como "corrija o PATH
para apontar para o novo local"
os caminhos reais para my_modules
e your_modules
são estranhos o suficiente para que eles 99.9999% certamente não apareçam naturalmente em nenhum desses arquivos.
No entanto, quando eu faço isso, rodar praticamente qualquer coisa apenas libera Segmentation Fault
, uma observação para a qual alguns de vocês, tenho certeza, estão dizendo "duh".
De qualquer forma, existe alguma maneira de copiar todas essas coisas, ou temos que recompilar / instalar cada coisa em um novo diretório?