Minha empresa usa LMod para permitir que vários usuários tenham versões diferentes de vários, 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 ao sistema PATH variável.

De qualquer forma, é tudo uma dor enorme, mas eu consegui um monte de bibliotecas úteis instaladas de tal forma que eu posso, por exemplo, usar pip para instalar pacotes python sem dor de cabeça. No entanto, uma vez que este é um sistema multi-usuário, gostaria de compartilhar todo o meu trabalho duro com os outros sem permitir que eles escrevam para minha módulos e estragar tudo. Como tal, estou executando o seguinte:

1) copie a pasta local com todo o bin, lib, inclua coisas para um novo local $cp -r my_modules your_modules

2) instalou coisas hardcodes caminhos por todo o lugar darned .... por isso precisamos substituir este 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 isto como "consertar PATH para apontar para o novo local "

os caminhos reais para my_modules e your_modules É estranho o suficiente para que eles 99.9999% certamente não apareçam naturalmente em nenhum desses arquivos.

No entanto, quando eu faço isso, executando praticamente qualquer coisa apenas bombeia 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 tudo isso, ou temos que recompilar / instalar cada coisa em um novo diretório?

Scott
fonte