Moduły środowiskowe (oprogramowanie)
Wersja stabilna | 5.2.0 / 8 listopada 2022 r.
|
---|---|
Magazyn | |
System operacyjny | Uniksopodobny |
Licencja | Powszechna Licencja Publiczna GNU #Wersja 2 |
Strona internetowa |
System modułów środowiskowych jest narzędziem pomagającym użytkownikom zarządzać środowiskiem powłoki systemu Unix lub Linux , umożliwiając dynamiczne tworzenie lub usuwanie grup powiązanych ustawień zmiennych środowiskowych.
Moduły istnieją od wczesnych lat 90. XX wieku i są używane w niektórych największych centrach komputerowych do wdrażania wielu wersji różnych narzędzi programowych dla użytkowników. National Energy Research Scientific Computing Center (NERSC) informuje, że używa modułów środowiskowych do zarządzania prawie całym oprogramowaniem. Moduły środowiska są określone jako wymagania konfiguracji bazowej zespołu DoD High Performance Computing Modernization Program (HPCMP) Project Baseline Configuration dla uczestniczących Centrów Zasobów Superkomputerowych (DSRC) DoD.
pliki modułów
System modułów oparty jest na plikach modułów, które określają grupy ustawień środowiska, które należy wykonać razem. Pliki modułów można instalować w centralnej lokalizacji do użytku ogólnego lub w katalogu użytkownika do użytku osobistego. Moduły środowiskowe Pliki modułów są napisane w języku Tcl (Tool Command Language) i są interpretowane przez program modulecmd za pośrednictwem interfejsu użytkownika modułu.
Kluczową zaletą modułów środowiskowych jest to, że są one niezależne od powłoki i obsługują wszystkie główne powłoki, takie jak bash, ksh, zsh, sh, tcsh i csh. Drugą kluczową zaletą jest to, że umożliwia korzystanie z wielu wersji programu lub pakietu z tego samego konta, po prostu ładując odpowiedni moduł. Te dwie zalety odegrały kluczową rolę w uczynieniu modułów środowiskowych częścią większości konfiguracji klastrów HPC. Zainspirowało to również kilka alternatywnych implementacji, takich jak lmod z University of Texas, który jest napisany w Lua zamiast TCL.
pliki modułów są tworzone na podstawie aplikacji i wersji. Mogą być dynamicznie ładowane, rozładowywane lub przełączane. Wraz z możliwością korzystania z wielu wersji tego samego oprogramowania może być również używany do wdrażania zasad witryny dotyczących dostępu i korzystania z aplikacji.
Domyślny katalog plików modułów
Domyślna ścieżka wyszukiwania modułów znajduje się w ukrytym pliku konfiguracyjnym, który można wyświetlić za pomocą:
$ cat ${ MODULESHOME } /init/.modulespath /etc/modulefiles # CentOS, Scientific Linux, RHEL /usr/local/Modules/modulefiles # Zbuduj z domyślnego źródła
Katalog /etc/modulefiles używany przez niektóre dystrybucje (lub dowolny inny katalog) może być użyty po zbudowaniu ze źródła poprzez modyfikację pliku ${MODULESHOME}/init/.modulespath .
Dodaj własne moduły do ścieżki
Moduł ${MODULESHOME}/modulefiles/ use.own zasadniczo wykonuje następujące kroki:
mkdir $HOME /privatemodules cp ${ MODULESHOME } /modulefiles/null $HOME /privatemodules użycie modułu --append $HOME /privatemodules
Użyj pliku wersji w organizacji hierarchicznej
Polecenia w tej sekcji wymagają dostępu do odczytu/zapisu/wykonania do katalogu /etc/modulefiles. Zamiast tego można użyć $HOME/privatemodules lub innego katalogu wraz z „module use --append” lub modyfikacją pliku konfiguracyjnego określającą domyślną ścieżkę wyszukiwania modułów.
Domyślny katalog plików modułów jest początkowo pusty. Skopiuj moduł null do domyślnego katalogu plików modułów, aby był wyświetlany jako „korzyść modułu”. Poniższy przykład wykorzystuje moduły null i module-info do pokazania użycia pliku wersji w hierarchicznej organizacji i ich wpływu na dostępność modułów i wyświetlanie modułów:
mkdir /etc/modulefiles/test cp ${ MODULESHOME } /modulefiles/null /etc/modulefiles/test/2.0 cp ${ MODULESHOME } /modulefiles/module-info /etc/modulefiles/test/1.0 moduł dostępny moduł pokaż test
Ustaw pierwszą wersję jako domyślną:
echo '#%Module' > /etc/modulefiles/test/.version echo 'set ModulesVersion "1.0"' >> /etc/modulefiles/test/.version moduł dostępny moduł pokaż test moduł pokaż test/2.0
Przełącz się na nowszą wersję jako domyślną za pomocą:
rm /etc/modulefiles/test/.version echo '#%Module' > /etc/modulefiles/test/.version echo 'set ModulesVersion "2.0"' >> /etc/modulefiles/test/.version moduł dostępny moduł pokaż test
Po powyższym po nowej instalacji ze źródła zobaczysz:
$ moduł dostępny -------------------- /usr/local/Modules/3.2.10/modulefiles --------------- ------ dot module-git module-info module null use.own ---------------- / etc/modulefiles ------------------------------- test zerowy/test 1.0/2.0 (domyślnie) ------ --------------------- /home/user/privatemodules -------------------------------------- --- null $ pokaż test modułu --------------------------------------------------------- ------------------------- /etc/modulefiles/test/2.0: module-whatis nie robi absolutnie nic ---------- -------------------------------------------------- ------- $ moduł pokaż test/1.0 ------------------------------------- ------------------------------ /etc/modulefiles/test/1.0: module-whatis zwraca wszystkie różne wartości informacji o module + ++ informacje o module +++++++++++++++++++++++++++++++++ flagi = 2 tryb = wyświetlana nazwa = test/1.0 określony = test /1.0 shell = bash shelltype = sh version = test/1.0 user = advanced trace = 0 tracepat = -.* symbols = *undef* +++ info +++++++++++++++++ +++++++++++++++++++++ nazwa hosta = poziom hosta lokalnego = 1 załadowany null = 0 biblioteka = /usr/local/lib/tcl8.6 nameofexecutable = sharedlibextension = .so tclversion = 8.6 poziom poprawek = 8.6.1 +++++++++++++++++++++++++++++++++++++++++++++ ++++ ------------------------------- ---------------------
Automatyczna inicjalizacja modułów
Moduły środowiska w dystrybucjach Scientific Linux, CentOS i RHEL w pakiecie environment-modules zawierają skrypty module.csh i module.sh dla katalogu /etc/profile.d , które powodują, że inicjowanie modułów jest częścią domyślnej inicjalizacji powłoki. Jedną z zalet modułów środowiskowych jest pojedynczy plik modułu, który obsługuje użytkowników powłok bash, ksh, zsh, sh, a także użytkowników powłoki tcsh i csh do konfiguracji i inicjalizacji środowiska. Dzięki temu zarządzanie złożonymi środowiskami jest nieco mniej skomplikowane.
W przypadku kompilacji źródłowej automatyzację dla wszystkich użytkowników można skonfigurować ręcznie.
bash, ksh, zsh, sh automatyczna inicjalizacja modułów
/etc/profile.d/modules.sh z pliku etc/global/profile.modules w katalogu budowania modułów 3.2.10.
trap "" 1 2 3 przypadek " $0 " w -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 ;; # domyślna pułapka esac 1 2 3
Skopiuj plik etc/global/profile.modules z katalogu budowania modułów 3.2.10 do katalogu inicjalizacji systemu:
$ Sudo cp etc/global/profile.modules /etc/profile.d/modules.sh
Dodaj dowiązanie symboliczne wersji 3.2.10 dla powyższych ogólnych adresów:
$ cd /usr/local/Modules $ sudo ln -sT 3 .2.10 domyślnie
tcsh, csh automatyczna inicjalizacja modułów
Dowiązanie symboliczne /etc/profile.d/modules.csh do pliku etc/global/profile.modules w katalogu kompilacji modułów wersji 3.2.10 umożliwia automatyczne inicjowanie modułów dla tych użytkowników.
Instalacja w Linuksie
Instalowanie modułów środowiska w systemie Linux przy użyciu yum i rpm
W przypadku dystrybucji Scientific Linux, CentOS i RHEL moduły środowiskowe znajdują się w pakiecie environment-modules, który można zainstalować za pomocą:
sudo yum zainstaluj moduły środowiskowe
Po zainstalowaniu informacje o pakiecie można przeglądać za pomocą:
rpm -qi moduły-środowiskowe rpm -ql moduły-środowiskowe
Instalowanie modułów środowiska w systemie Linux przy użyciu apt i dpkg
W systemie Ubuntu lub systemach korzystających z apt-get moduły środowiskowe można zainstalować za pomocą:
sudo apt-get install environment-modules
Po zainstalowaniu informacje o pakiecie można przeglądać za pomocą:
dpkg -L moduły środowiska
Instalowanie modułów środowiska w systemie Linux ze źródła
Chociaż instalacja z repozytorium dystrybucji Linuksa przy użyciu tego menedżera aktualizacji dystrybucji jest najłatwiejsza, oprogramowanie można zainstalować ze źródła. Rozwiązywanie zależności to najtrudniejsze zadanie dla instalacji ze źródła. Typowy cykl konfiguracji, tworzenia, instalacji może stać się boleśnie powolny, ponieważ każde ulepszenie konfiguracji ujawnia inną zależność niedostępną w twoim domyślnym środowisku. Ta sekcja zawiera kroki instalacji pakietu modułów środowiskowych w źródle, w tym kompilację języka Tcl (Tool Command Language) ze źródła jako zależności.
Wersja 8.6.1 Tcl (Tool Command Language) zbudowana z /usr/local/src
Chociaż repozytoria PCLinuxOS 64-bit zawierają Tcl (Tool Command Language), nie zawierają pakietu programistycznego z plikami konfiguracyjnymi wymaganymi do budowania modułów środowiskowych w systemie Linux ze źródła. Zbudowanie Tcl ze źródła spowoduje udostępnienie wymaganych plików.
Źródło Tcl: http://sourceforge.net/projects/tcl/files/Tcl/
Wyodrębnij źródło po pobraniu
cd /usr/local/src tar -xvzf ~/Downloads/tcl8.6.1-src.tar.gz
Skonfiguruj, wykonaj, zainstaluj
cd /usr/local/src/tcl8.6.1 unix/configure make sudo make install
Wersja 3.2.10 modułów zbudowanych z /usr/local/src
Wyodrębnij źródło po pobraniu
cd /usr/local/src tar -xvzf ~/Downloads/modules-3.2.10.tar.gz
Skonfiguruj, wykonaj, zainstaluj
cd /usr/local/src/modules-3.2.10 CPPFLAGS = "-DUSE_INTERP_ERRORLINE" ./configure make sudo make install
Zobacz też
- Tcl
- Środowiska oprogramowania Xsede . Ekstremalne środowisko odkrywania nauki i inżynierii ― Narodowa Fundacja Nauki
- Opis modułów NICS ― Narodowy Instytut Nauk Obliczeniowych w Oak Ridge National Laboratory ― Departament Energii
- Lmod ― System modułowy oparty na Lua
- Spack ― Menedżer pakietów dla oprogramowania HPC opracowany w Lawrence Livermore National Laboratory
Linki zewnętrzne
- http://modules.sourceforge.net/ - strona domowa projektu Environment Modules
- John L. Furlani, Moduły: Zapewnienie elastycznego środowiska użytkownika Proceedings of the Fifth Large Installation Systems Administration Conference (LISA V) , s. 141–152, San Diego, Kalifornia, 30 września - 3 października 1991 r.
- http://lmod.sourceforge.net - alternatywna implementacja wykorzystująca LUA zamiast Tcl
- http://www.lysator.liu.se/cmod/ - alternatywna implementacja używająca tylko C
- Podręcznik użytkownika modułów środowiska PennState
- Przeciągnij swoje środowisko projektowe, kopiąc i krzycząc, w lata 90. dzięki modułom! — SNUB Boston 2001 — Erich Whitney, Axiowave Networks, Mark Sprague, ATI Research