Модули среды (программное обеспечение)
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Стабильная версия | 5.4.0
/ 20 февраля 2024 г |
---|---|
Репозиторий | |
Операционная система | Unix-подобный |
Лицензия | Стандартная общественная лицензия GNU # Версия 2 |
Веб-сайт | модули |
Система модулей среды — это инструмент, помогающий пользователям управлять средой оболочки Unix или Linux , позволяя динамически создавать или удалять группы связанных настроек переменных среды.
Модули существуют с начала 1990-х годов. [1] и используется в некоторых крупнейших компьютерных центрах [2] развертывать для пользователей несколько версий различных программных инструментов. Национальный научно-вычислительный центр энергетических исследований (NERSC) сообщает, что они используют модули окружающей среды для управления почти всем программным обеспечением. [3] Модули среды указаны в качестве требования базовой конфигурации Программы модернизации высокопроизводительных вычислений Министерства обороны США (HPCMP). [4] Базовая конфигурация проекта [5] команда для участия в суперкомпьютерных ресурсных центрах Министерства обороны США (DSRC).
файлы модулей
[ редактировать ]Система модулей основана на файлах модулей, [6] которые определяют группы настроек среды, которые необходимо выполнить вместе. Файлы модулей могут быть установлены в центральном месте для общего использования или в каталоге пользователя для личного использования. Модули среды. Файлы модулей написаны на Tcl (языке команд инструментов) и интерпретируются программой ModuleCMD через модуль [7] пользовательский интерфейс.
Ключевым преимуществом модулей среды является то, что они не зависят от оболочки и поддерживают все основные оболочки, такие как bash, ksh, zsh, sh, tcsh и csh. Второе ключевое преимущество заключается в том, что оно позволяет использовать несколько версий программы или пакета из одной учетной записи, просто загрузив соответствующий модуль. Эти два преимущества сыграли важную роль в том, что модули среды стали частью большинства установок кластера HPC. Это также вдохновило на создание нескольких альтернативных реализаций, таких как lmod от Техасского университета, который написан на Lua вместо TCL.
Файлы модулей создаются для каждого приложения для каждой версии. Их можно динамически загружать, выгружать или переключать. Наряду с возможностью использования нескольких версий одного и того же программного обеспечения его также можно использовать для реализации политик сайта в отношении доступа и использования приложений.
Каталог модулей по умолчанию
[ редактировать ]Путь поиска модулей по умолчанию находится в скрытом файле конфигурации, который вы можете отобразить с помощью:
$ cat ${MODULESHOME}/init/.modulespath
/etc/modulefiles # CentOS, Scientific Linux, RHEL
/usr/local/Modules/modulefiles # Build from source default
The Каталог /etc/modulefiles, используемый некоторыми дистрибутивами (или любой другой каталог), можно использовать после сборки из исходного кода, изменив файл Файл ${MODULESHOME}/init/.modulespath .
Добавьте свои собственные модули в путь
[ редактировать ]The Модуль ${MODULESHOME}/modulefiles/ use.own по сути выполняет следующие шаги:
mkdir $HOME/privatemodules
cp ${MODULESHOME}/modulefiles/null $HOME/privatemodules
module use --append $HOME/privatemodules
Используйте файл версии в иерархической организации.
[ редактировать ]Для команд в этом разделе требуется доступ на чтение/запись/выполнение к каталогу /etc/modulefiles. Вместо этого можно использовать $HOME/privatemodules или другой каталог вместе с «module use --append» или модификацией файла конфигурации, указывающей путь поиска модулей по умолчанию.
Каталог модулей по умолчанию изначально пуст. Скопируйте нулевой модуль в каталог модулей модулей по умолчанию, чтобы он отображался с помощью «module Available». Ниже используются модули null и Module-info, чтобы показать использование файла версии в иерархической организации и их влияние на доступность модуля и отображение модуля:
mkdir /etc/modulefiles/test
cp ${MODULESHOME}/modulefiles/null /etc/modulefiles/test/2.0
cp ${MODULESHOME}/modulefiles/module-info /etc/modulefiles/test/1.0
module avail
module show test
Установите первую версию по умолчанию:
echo '#%Module' > /etc/modulefiles/test/.version
echo 'set ModulesVersion "1.0"' >> /etc/modulefiles/test/.version
module avail
module show test
module show test/2.0
Переключитесь на более новую версию по умолчанию с помощью:
rm /etc/modulefiles/test/.version
echo '#%Module' > /etc/modulefiles/test/.version
echo 'set ModulesVersion "2.0"' >> /etc/modulefiles/test/.version
module avail
module show test
После вышеизложенного после новой установки из исходного кода вы увидите:
$ module avail
-------------------- /usr/local/Modules/3.2.10/modulefiles ---------------------
dot module-git module-info modules null use.own
------------------------------- /etc/modulefiles -------------------------------
null test/1.0 test/2.0(default)
--------------------------- /home/user/privatemodules --------------------------
null
$ module show test
-------------------------------------------------------------------
/etc/modulefiles/test/2.0:
module-whatis does absolutely nothing
-------------------------------------------------------------------
$ module show test/1.0
-------------------------------------------------------------------
/etc/modulefiles/test/1.0:
module-whatis returns all various module-info values
+++ module-info +++++++++++++++++++++++++++++++
flags = 2
mode = display
name = test/1.0
specified = test/1.0
shell = bash
shelltype = sh
version = test/1.0
user = advanced
trace = 0
tracepat = -.*
symbols = *undef*
+++ info ++++++++++++++++++++++++++++++++++++++
hostname = localhost
level = 1
loaded null = 0
library = /usr/local/lib/tcl8.6
nameofexecutable =
sharedlibextension = .so
tclversion = 8.6
patchlevel = 8.6.1
+++++++++++++++++++++++++++++++++++++++++++++++
-------------------------------------------------------------------
Автоматическая инициализация модулей
[ редактировать ]Модули среды в дистрибутивах Scientific Linux, CentOS и RHEL в пакете модулей среды включают модули.csh и Скрипты Modules.sh для Каталог /etc/profile.d , который делает инициализацию модулей частью инициализации оболочки по умолчанию. Одним из преимуществ модулей среды является единый файл модуля, который поддерживает пользователей оболочек bash, ksh, zsh, sh, а также tcsh и csh для настройки и инициализации среды. Это делает управление сложными средами немного менее сложным.
Для исходной сборки автоматизацию для всех пользователей можно настроить вручную.
bash, ksh, zsh, sh автоматическая инициализация модулей
[ редактировать ]/etc/profile.d/modules.sh из etc/global/profile.modules в каталоге сборки модулей 3.2.10.
trap "" 1 2 3
case "$0" in
-bash|bash|*/bash) . /usr/local/Modules/default/init/bash ;;
-ksh|ksh|*/ksh) . /usr/local/Modules/default/init/ksh ;;
-zsh|zsh|*/zsh) . /usr/local/Modules/default/init/zsh ;;
*) . /usr/local/Modules/default/init/sh ;; # default
esac
trap 1 2 3
Скопируйте Файл etc/global/profile.modules из каталога сборки модулей 3.2.10 в каталог инициализации системы:
$ sudo cp etc/global/profile.modules /etc/profile.d/modules.sh
Добавьте символическую ссылку версии 3.2.10 для приведенных выше общих адресов:
$ cd /usr/local/Modules
$ sudo ln -sT 3.2.10 default
tcsh, автоматическая инициализация модулей csh
[ редактировать ]А /etc/profile.d/modules.csh символическая ссылка на Файл etc/global/profile.modules в каталоге сборки модулей 3.2.10 может включить автоматическую инициализацию модулей для этих пользователей.
Установка в Linux
[ редактировать ]Установка модулей среды в Linux с помощью yum и rpm
[ редактировать ]В дистрибутивах Scientific Linux, CentOS и RHEL модули среды находятся в пакете модулей среды, который можно установить с помощью:
sudo yum install environment-modules
После установки информацию о пакете можно просмотреть с помощью:
rpm -qi environment-modules rpm -ql environment-modules
Установка модулей среды в Linux с помощью apt и dpkg
[ редактировать ]В Ubuntu или системах, использующих apt-get, модули среды можно установить с помощью:
sudo apt-get install environment-modules
После установки информацию о пакете можно просмотреть с помощью:
dpkg -L environment-modules
Установка модулей среды в Linux из исходного кода
[ редактировать ]Хотя установка из репозитория дистрибутива Linux с использованием этого менеджера обновлений дистрибутива является самой простой, программное обеспечение можно установить из исходного кода. Устранение зависимостей — самая сложная задача при установке из исходного кода. Типичный цикл настройки, сборки и установки может стать мучительно медленным, поскольку каждое улучшение конфигурации выявляет еще одну зависимость, недоступную в вашей среде по умолчанию. В этом разделе описаны действия по установке пакета модулей среды в исходном коде, включая компиляцию Tcl (язык командных инструментов) из исходного кода в качестве зависимости.
Версия 8.6.1 Tcl (язык команд инструментов), созданная из /usr/local/src
[ редактировать ]Хотя 64-разрядные репозитории PCLinuxOS включают Tcl (язык команд инструментов), они не включают пакет разработки с файлами конфигурации, необходимыми для сборки модулей среды в Linux из исходного кода. Сборка Tcl из исходного кода сделает необходимые файлы доступными.
Источник Tcl: http://sourceforge.net/projects/tcl/files/Tcl/
Извлечь исходный код после загрузки
cd /usr/local/src
tar -xvzf ~/Downloads/tcl8.6.1-src.tar.gz
Настроить, сделать, установить
cd /usr/local/src/tcl8.6.1
unix/configure
make
sudo make install
3.2.10 версия модулей, собранных из /usr/local/src
[ редактировать ]Извлечь исходный код после загрузки
cd /usr/local/src
tar -xvzf ~/Downloads/modules-3.2.10.tar.gz
Настроить, сделать, установить
cd /usr/local/src/modules-3.2.10
CPPFLAGS="-DUSE_INTERP_ERRORLINE" ./configure
make
sudo make install
См. также
[ редактировать ]- Ткл
- Программная среда Xsede . Среда экстремальных научных и инженерных открытий - Национальный научный фонд
- Описание модулей NICS — Национальный институт вычислительных наук в Ок-Ридже, Национальная лаборатория — Министерство энергетики
- Lmod — Lua . система модулей на основе
- Spack — менеджер пакетов для программного обеспечения HPC, разработанного в Ливерморской национальной лаборатории Лоуренса.
Ссылки
[ редактировать ]- ^ Фурлани, Джон Л. (30 сентября – 3 октября 1991 г.). «Модули: обеспечение гибкой пользовательской среды» (PDF) . Материалы Пятой конференции по администрированию больших инсталляционных систем (LISA V) . Сан-Диего, Калифорния: 141–152 . Проверено 9 февраля 2014 г.
- ^ «Описание модулей Kraken поддержки пользователей NICS» . Национальный институт вычислительных наук (NICS) . Окриджская национальная лаборатория – Министерство энергетики. 22 мая 2011 г. Архивировано из оригинала 22 февраля 2014 г. . Проверено 9 февраля 2014 г.
- ^ «Программная среда модулей NERSC» . Национальный научно-вычислительный центр энергетических исследований (NERSC) . Управление науки – Министерство энергетики. 07.02.2014 . Проверено 19 февраля 2014 г.
- ^ «Использование модулей для доступа к нескольким версиям программного обеспечения» . Базовая конфигурация . Программа модернизации высокопроизводительных вычислений Министерства обороны США (HPCMP). 20 марта 2008 г. Архивировано из оригинала 22 февраля 2014 г. . Проверено 9 февраля 2014 г.
- ^ «Базовая конфигурация программы модернизации высокопроизводительных вычислений Министерства обороны США» . Базовая конфигурация . Программа модернизации высокопроизводительных вычислений Министерства обороны США (HPCMP). Архивировано из оригинала 22 февраля 2014 года . Проверено 9 февраля 2014 г.
- ^ Джон Л. Фурлани и Питер В. Осел (июль 2009 г.). «файл_модуля — файлы, содержащие код Tcl для пакета «Модули» . СоурсФордж . справочная страница . Проверено 9 февраля 2014 г.
- ^ Джон Л. Фурлани и Питер В. Осел (июль 2009 г.). «модуль — командный интерфейс пакета модулей» . СоурсФордж . справочная страница . Проверено 9 февраля 2014 г.
Внешние ссылки
[ редактировать ]- http://modules.sourceforge.net/ — домашняя страница проекта модулей среды.
- Джон Л. Фурлани, Модули: обеспечение гибкой пользовательской среды, материалы Пятой конференции по администрированию крупных инсталляционных систем (LISA V) , стр. 141–152, Сан-Диего, Калифорния, 30 сентября - 3 октября 1991 г.
- http://lmod.sourceforge.net — альтернативная реализация с использованием LUA вместо Tcl
- http://www.lysator.liu.se/cmod/ — альтернативная реализация только с использованием C
- Руководство пользователя модулей среды PennState
- Перенесите свою среду проектирования в 90-е с помощью модулей! - SNUB Бостон, 2001 г. - Эрих Уитни, Axiowave Networks, Марк Спрэг, ATI Research