На сервере установлено множество прикладных программ различных версий. Данные программы зачастую написаны таким образом, что их одновременное использование в одном терминале вызовет конфликты версий библиотек и переменных окружения. Для того, чтобы все эти программы можно было использовать на серверах настроен пакет modules
Команды:
module avail посмотреть список доступных модулей
module listпосмотреть список активных модулей в этой сессии (в этом окне терминала)
module load modulename активировать модуль modulename
module unload modulename деактивировать модуль modulename
module purge деактивировать все модули
Некоторые модули несовместимы между собой. Если вы попробуете загрузить такие модули одновременно, то получите ошибку. В некоторых случаях для загрузки модуля необходимо сначала деактивировать все активные на данный момент модули.
Вам может захотеться установить ПО только для себя в локальном пространстве пользователя. В этом случае, часто рекомендуют добавить к переменной окружения PATH путь к собранной программе (а также возможно изменить другие переменные окружения), редактируя .bashrc или .bashprofile файлы. Это не рекомендуется делать на наших серверах, так как такое изменение окружения может сделать использование других программ невозможным из-за конфликтов библиотек и системных приложений.
Чтобы решить данную проблему, необходимо добавить для вашей программы дополнительный модуль. Для этого нужно создать в домашней директории папку modules внутри этой папки можно создавать фалы - модули, которые можно будет активировать при помощи команды module load module_name
Пример файла - модуля в котором дописывается путь к программам bsoft и задаются другие переменные окружения.
#%Module1.0
## magic modulefile
##
proc ModulesHelp { } {
puts stderr " This module loads bsoft (bshow)"
}
module-whatis "This module loads bsoft (bshow)"
setenv BSOFT /opt/bsoft
setenv BPARAM /opt/bsoft/parameters/
append-path LD_LIBRARY_PATH /opt/bsoft/lib
append-path PATH /opt/bsoft/bin
Обратите внимание, модули написаны на языке TCL, другие примеры (в том числе с активацией окружений конда, через модули) приведены в папке /opt/modules