stringtranslate.com

Модули среды (программное обеспечение)

Система модулей среды — это инструмент, помогающий пользователям управлять средой оболочки Unix или Linux , позволяя динамически создавать или удалять группы связанных настроек переменных среды.

Модули существуют с начала 1990-х годов [1] и используются в некоторых крупнейших компьютерных центрах [2] для развертывания нескольких версий различных программных инструментов для пользователей. Национальный центр научных вычислений в области энергетики (NERSC) сообщает, что они используют модули среды для управления практически всем программным обеспечением. [3] Модули среды указаны как требование базовой конфигурации Программы модернизации высокопроизводительных вычислений Министерства обороны США [4] по базовой конфигурации проекта [5] для участвующих центров ресурсов суперкомпьютеров Министерства обороны США (DSRC).

файлымодулей

Система модулей основана на modulefiles, [6] , которые определяют группы настроек среды, которые должны быть сделаны вместе. Modulefiles могут быть установлены в центральном месте для общего использования или в каталоге пользователя для личного использования. Модули среды modulefiles написаны на языке Tcl (Tool Command Language) и интерпретируются программой modulecmd через пользовательский интерфейс module [7] .

Ключевым преимуществом Environment Modules является то, что он независим от оболочки и поддерживает все основные оболочки, такие как bash, ksh, zsh, sh, tcsh и csh. Вторым ключевым преимуществом является то, что он позволяет использовать несколько версий программы или пакета из одной учетной записи, просто загрузив нужный модуль. Эти два преимущества сыграли важную роль в том, что Environment Modules стали частью большинства установок кластера HPC. Он также вдохновил несколько альтернативных реализаций, таких как lmod из Техасского университета, который написан на Lua вместо TCL.

modulefiles создаются на основе каждого приложения и каждой версии. Они могут динамически загружаться, выгружаться или переключаться. Наряду с возможностью использования нескольких версий одного и того же программного обеспечения, его также можно использовать для реализации политик сайта относительно доступа и использования приложений.

Каталог modulefiles по умолчанию

Путь поиска модулей по умолчанию находится в скрытом файле конфигурации, который можно отобразить с помощью:

$ cat ${ MODULESHOME } /init/.modulespath /etc/modulefiles # CentOS, Scientific Linux, RHEL /usr/local/Modules/modulefiles # Сборка из исходного кода по умолчанию 

Каталог /etc/modulefiles, используемый некоторыми дистрибутивами (или любой другой каталог), можно использовать после сборки из исходного кода, изменив файл ${MODULESHOME}/init/.modulespath .

Добавьте собственные модули в путь

Модуль $ { MODULESHOME}/modulefiles/use.own по сути выполняет следующие шаги:

 mkdir $HOME /privatemodules cp ${ MODULESHOME } /modulefiles/null $HOME /privatemodules использование модуля --append $HOME /privatemodules        

Использовать файл версии в иерархической организации

Команды в этом разделе требуют доступа на чтение/запись/выполнение к каталогу /etc/modulefiles. Вместо этого можно использовать $HOME/privatemodules или другой каталог вместе с "module use --append" или модификацией файла конфигурации, указывающей путь поиска модулей по умолчанию.

Каталог modulefiles по умолчанию изначально пуст. Скопируйте пустой модуль в каталог modulefiles по умолчанию, чтобы он отображался как "module avail". Ниже модули null и module-info используются для отображения использования файла версии в иерархической организации и их влияния на module avail и module show:

 mkdir  /etc/modulefiles/test  cp ${ MODULESHOME } /modulefiles/null /etc/modulefiles/test/2.0 cp ${ MODULESHOME } /modulefiles/module-info /etc/modulefiles/test/1.0 модуль доступный модуль показать тест          

Установите первую версию как версию по умолчанию:

 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             

После вышеописанного и последующей новой установки из исходного кода вы увидите:

$ модуль  доступен-------------------- /usr/local/Modules/3.2.10/modulefiles --------------------- точка module-git module-info modules null use.own------------------------------- /etc/modulefiles ------------------------------ null test/1.0 test/2.0(по умолчанию)--------------------------- /home/user/privatemodules -------------------------- null$ module  show test ------------------------------------------------------------------ /etc/modulefiles/test/2.0: module-whatis абсолютно ничего не делает ------------------------------------------------------------------$ module  show  test/1.0 ------------------------------------------------------------------ /etc/modulefiles/test/1.0:module-whatis возвращает все различные значения module-info +++ module-info +++++++++++++++++++++++++++++++++++ флаги = 2 режим = отображаемое имя = test/1.0 указанный = test/1.0 оболочка = bash тип оболочки = sh версия = test/1.0 пользователь = расширенный трассировка = 0 tracepat = -.* символы = *undef* +++ информация ++++++++++++++++++++++++++++++++++++++++ имя хоста = localhost уровень = 1 загруженный null = 0 библиотека = /usr/local/lib/tcl8.6 имя_исполняемого_файла = sharedlibextension = .so tclversion = 8.6 уровень_патча = 8.6.1 +++++++++++++++++++++++++++++++++++++++++++++++++++ -------------------------------------------------------------------

Автоматическая инициализация модулей

Модули среды в дистрибутивах Scientific Linux, CentOS и RHEL в пакете environment-modules включают скрипты modules.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.

 ловушка "" 1 2 3 случай " $0 " в -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 ;; # ловушка esac по умолчанию 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 по умолчанию  

tcsh, csh автоматическая инициализация модулей

Символическая ссылка /etc/profile.d/modules.csh на файл etc/global/profile.modules в каталоге сборки модулей 3.2.10 может включить автоматическую инициализацию модулей для этих пользователей.

Установка на Linux

Установка модулей окружения в Linux с помощью yum и rpm

В дистрибутивах Scientific Linux, CentOS и RHEL модули среды находятся в пакете environment-modules, который можно установить с помощью:

sudo yum install environment-modules

После установки информацию о пакете можно просмотреть с помощью:

rpm -qi окружение-модулиrpm -ql окружение-модули

Установка модулей среды в Linux с помощью apt и dpkg

В Ubuntu или системах, использующих apt-get, модули среды можно установить с помощью:

sudo apt-get install environment-modules

После установки информацию о пакете можно просмотреть с помощью:

dpkg -L модули среды

Установка модулей окружения в Linux из исходного кода

Хотя установка из репозитория дистрибутивов Linux с использованием менеджера обновлений дистрибутивов является самой простой, программное обеспечение можно установить из исходного кода. Разрешение зависимостей является самой сложной задачей для установки из исходного кода. Типичный цикл настройки, создания, установки может стать мучительно медленным, поскольку каждое улучшение конфигурации выявляет другую зависимость, недоступную в вашей среде по умолчанию. В этом разделе приведены шаги по установке пакета Environment Modules в исходный код, включая компиляцию Tcl (Tool Command Language) из исходного кода в качестве зависимости.

8.6.1 версияTcl (язык команд инструментов)собрано из /usr/local/src

Хотя 64-битные репозитории PCLinuxOS включают Tcl (Tool Command Language), они не включают пакет разработки с файлами конфигурации, необходимыми для сборки Environment Modules на 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делатьsudo  сделать  установку

Смотрите также

Ссылки

  1. ^ Furlani, John L. (30 сентября – 3 октября 1991 г.). «Модули: обеспечение гибкой пользовательской среды» (PDF) . Труды Пятой конференции по администрированию крупных систем установки (LISA V) . Сан-Диего, Калифорния: 141–152 . Получено 9 февраля 2014 г.
  2. ^ "NICS User Support Kraken Modules Description". Национальный институт вычислительных наук (NICS) . Национальная лаборатория Оук-Ридж — Министерство энергетики. 22 мая 2011 г. Архивировано из оригинала 22 февраля 2014 г. Получено 9 февраля 2014 г.
  3. ^ "NERSC Modules Software Environment". Национальный центр научных вычислений в области энергетики (NERSC) . Офис науки - Министерство энергетики. 2014-02-07 . Получено 19 февраля 2014 г.
  4. ^ "Использование модулей для доступа к нескольким версиям программного обеспечения". Базовая конфигурация . Программа модернизации высокопроизводительных вычислений Министерства обороны США (HPCMP). 20 марта 2008 г. Архивировано из оригинала 22 февраля 2014 г. Получено 9 февраля 2014 г.
  5. ^ "DoD High Performance Computing Modernization Program Baseline Configuration". Базовая конфигурация . DoD High Performance Computing Modernization Program (HPCMP). Архивировано из оригинала 22 февраля 2014 года . Получено 9 февраля 2014 года .
  6. ^ Джон Л. Фурлани и Питер В. Осел (июль 2009 г.). "modulefile - файлы, содержащие код Tcl для пакета Modules". SourceForge . man page . Получено 9 февраля 2014 г.
  7. ^ Джон Л. Фурлани и Питер В. Осел (июль 2009 г.). "модуль - командный интерфейс для пакета Modules". SourceForge . man-страница . Получено 9 февраля 2014 г. .

Внешние ссылки

  1. http://modules.sourceforge.net/ - домашняя страница проекта Environment Modules
  2. Джон Л. Фурлани, Модули: обеспечение гибкой пользовательской среды. Труды Пятой конференции по администрированию крупных систем инсталляции (LISA V) , стр. 141–152, Сан-Диего, Калифорния, 30 сентября - 3 октября 1991 г.
  3. http://lmod.sourceforge.net - альтернативная реализация с использованием LUA вместо Tcl
  4. http://www.lysator.liu.se/cmod/ - альтернативная реализация, использующая только C
  5. Руководство пользователя модулей среды PennState
  6. Перенесите свою среду проектирования в 90-е с помощью модулей! - SNUB Boston 2001 - Эрих Уитни, Axiowave Networks, Марк Спраг, ATI Research