Ortam Modülleri (yazılım) - Environment Modules (software)
| kararlı sürüm | 5.0.1 / 16 Ekim 2021
|
|---|---|
| depo | |
| İşletim sistemi | Unix benzeri |
| Lisans | GNU Genel Kamu Lisansı#Sürüm 2 |
| İnternet sitesi | modüller |
Çevre Modüller sistem fazla yardımcı olmak için bir araçtır onların yönetmek olduğunu Unix veya Linux ilgili çevre değişkeni ayarları grupları yapılmış veya dinamik kaldırılacak izin vererek, kabuk ortamı.
Modüller 1990'ların başından beri kullanılmaktadır ve en büyük bilgisayar merkezlerinden bazılarında farklı yazılım araçlarının birden çok sürümünü kullanıcılara dağıtmak için kullanılmaktadır. Ulusal Enerji Araştırmaları Bilimsel Hesaplama Merkezi (NERSC), neredeyse tüm yazılımları yönetmek için Çevre Modüllerini kullandıklarını bildirmektedir. Ortam Modülleri, DoD Süper Bilgi İşlem Kaynak Merkezlerine (DSRC'ler) katılmak için DoD Yüksek Performanslı Bilgi İşlem Modernizasyon Programı (HPCMP) Projesi Temel Yapılandırma ekibinin Temel Yapılandırma gereksinimi olarak belirtilir.
modül dosyaları
Modüller sistemi, birlikte yapılması gereken ortam ayarları gruplarını belirten modül dosyalarına dayanır. Modül dosyaları, genel kullanım için merkezi bir konuma veya kişisel kullanım için bir kullanıcı dizinine kurulabilir. Ortam Modülleri modül dosyaları, Tcl'de (Araç Komut Dili) yazılır ve modül kullanıcı arabirimi aracılığıyla modulecmd programı tarafından yorumlanır.
Ortam Modüllerinin en önemli avantajı, kabuktan bağımsız olması ve bash, ksh, zsh, sh, tcsh ve csh gibi tüm ana kabukları desteklemesidir. İkinci önemli avantajı, sadece uygun modülü yükleyerek aynı hesaptan program veya paketin birden çok sürümünün kullanılmasına izin vermesidir. Bu iki avantaj, Ortam Modüllerini çoğu HPC küme kurulumunun bir parçası haline getirmede etkiliydi. Ayrıca TCL yerine Lua ile yazılmış Texas Üniversitesi'nden lmod gibi birkaç alternatif uygulamaya da ilham verdi.
modül dosyaları, sürüm bazında uygulama başına oluşturulur. Dinamik olarak yüklenebilir, yüklenebilir veya anahtarlanabilirler. Aynı yazılımın birden çok sürümünü kullanma yeteneğinin yanı sıra, uygulamalara erişim ve kullanımla ilgili site politikalarını uygulamak için de kullanılabilir.
varsayılan modül dosyaları dizini
Varsayılan modül arama yolu, aşağıdakilerle görüntüleyebileceğiniz gizli bir yapılandırma dosyasındadır:
$ cat ${MODULESHOME}/init/.modulespath
/etc/modulefiles # CentOS, Scientific Linux, RHEL
/usr/local/Modules/modulefiles # Build from source default
/ Etc / modulefiles bazı dağılımlar (veya başka bir dizinine) tarafından kullanılan dizin değiştirerek kaynağından bir yapı sonra kullanılabilir $ {MODULESHOME} /init/.modulespath dosyasını.
Yola kendi modüllerinizi ekleyin
$ {MODULESHOME} / modulefiles / use.own modülü esasen aşağıdaki adımları gerçekleştirir:
mkdir $HOME/privatemodules
cp ${MODULESHOME}/modulefiles/null $HOME/privatemodules
module use --append $HOME/privatemodules
Hiyerarşik bir organizasyon içinde bir sürüm dosyası kullanın
Bu bölümdeki komutlar, /etc/modulefiles dizinine okuma/yazma/yürütme erişimi gerektirir. Bunun yerine $HOME/privatemodules veya başka bir dizin, "module use --append" veya varsayılan modül arama yolunu belirten yapılandırma dosyasının değiştirilmesi ile birlikte kullanılabilir.
Varsayılan modül dosyaları dizini başlangıçta boştur. Boş modülü, "modül kullanılabilirliği" ile gösterilmesi için varsayılan modül dosyaları dizinine kopyalayın. Aşağıdakiler, hiyerarşik bir organizasyon içinde bir sürüm dosyasının kullanımını ve bunların modül kullanılabilirliği ve modül gösterisi üzerindeki etkilerini göstermek için boş ve modül bilgisi modüllerini kullanır:
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
İlk sürümü varsayılan olarak ayarlayın:
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
Aşağıdakilerle varsayılan olarak daha yeni sürüme geçin:
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
Yukarıdakilerden sonra, kaynaktan yeni bir yüklemenin ardından şunu görürsünüz:
$ 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
+++++++++++++++++++++++++++++++++++++++++++++++
-------------------------------------------------------------------
Otomatik modül başlatma
Çevre modülleri paketinde Çevre Bilimsel Linux CentOS üzerinde Modüller ve RHEL dağılımları dahil modules.csh ve modules.sh için komut /etc/profile.d yapmak modülleri varsayılan kabuk başlatma kısmını başlatmayla bu dizine. Ortam Modüllerinin avantajlarından biri, ortam kurulumu ve başlatma için bash, ksh, zsh, sh ve ayrıca tcsh ve csh kabuk kullanıcılarını destekleyen tek bir modül dosyasıdır. Bu, karmaşık ortamları yönetmeyi biraz daha az karmaşık hale getirir.
Bir kaynak derlemesi için tüm kullanıcılar için otomasyon manuel olarak yapılandırılabilir.
bash, ksh, zsh, sh otomatik modül başlatma
/etc/profile.d/modules.sh gelen etc / küresel / profile.modules 3.2.10 modülleri inşa dizinindeki dosyasında.
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 dosyasını 3.2.10 modül oluşturma dizininden sistem başlatma dizinine kopyalayın :
$ sudo cp etc/global/profile.modules /etc/profile.d/modules.sh
Yukarıdaki genel adresler için bir sürüm 3.2.10 sembolik bağlantı ekleyin:
$ cd /usr/local/Modules
$ sudo ln -sT 3.2.10 default
tcsh, csh otomatik modülleri başlatma
Bir /etc/profile.d/modules.csh için sembolik bağlantı vb / küresel / profile.modules 3.2.10 modülleri inşa dizindeki dosyanın otomatik modülleri bu kullanıcılar için başlatmayla etkinleştirebilirsiniz.
Linux'ta yükleme
yum ve rpm kullanarak Linux'ta Ortam Modüllerini Kurma
Scientific Linux, CentOS ve RHEL dağıtımlarında Ortam Modülleri, aşağıdakilerle kurulabilen ortam modülleri paketindedir:
sudo yum install environment-modules
Kurulduktan sonra paket bilgileri şu şekilde görüntülenebilir:
rpm -qi environment-modules rpm -ql environment-modules
Apt ve dpkg kullanarak Linux'ta Ortam Modüllerini Kurma
Ubuntu'da veya apt-get kullanan sistemlerde, Ortam Modülleri aşağıdakilerle kurulabilir:
sudo apt-get install environment-modules
Kurulduktan sonra paket bilgileri şu şekilde görüntülenebilir:
dpkg -L environment-modules
Ortam Modüllerini Linux'a kaynaktan yükleme
Bu dağıtım güncelleme yöneticisini kullanarak bir Linux dağıtım deposundan kurulum yapmak, yazılımın kaynaktan kurulabileceği en kolay yol olsa da. Bağımlılıkları çözmek, kaynaktan yükleme için en zor görevdir. Tipik yapılandırma, oluşturma, yükleme döngüsü, her yapılandırma geliştirmesi, varsayılan ortamınızda bulunmayan başka bir bağımlılığı ortaya çıkardığından, ağrılı bir şekilde yavaşlayabilir. Bu bölüm, Tcl'nin (Araç Komut Dili) kaynaktan bir bağımlılık olarak derlenmesi dahil, Ortam Modülleri paketini kaynağa yükleme adımlarını içerir .
/usr/local/ src'den oluşturulmuş Tcl'nin (Araç Komut Dili) 8.6.1 sürümü
PCLinuxOS 64-bit depoları Tcl (Araç Komut Dili) içermesine rağmen, Linux üzerinde Kaynaktan Ortam Modülleri oluşturmak için gereken yapılandırma dosyalarını içeren bir geliştirme paketi içermez. Bina Tcl kaynağından gerekli dosyaları kullanılabilir hale getirir.
Tcl Kaynağı: http://sourceforge.net/projects/tcl/files/Tcl/
İndirdikten sonra kaynağı çıkar
cd /usr/local/src
tar -xvzf ~/Downloads/tcl8.6.1-src.tar.gz
Yapılandırın, yapın, yükleyin
cd /usr/local/src/tcl8.6.1
unix/configure
make
sudo make install
/usr/local/src'den oluşturulmuş modüllerin 3.2.10 sürümü
İndirdikten sonra kaynağı çıkar
cd /usr/local/src
tar -xvzf ~/Downloads/modules-3.2.10.tar.gz
Yapılandırın, yapın, yükleyin
cd /usr/local/src/modules-3.2.10
CPPFLAGS="-DUSE_INTERP_ERRORLINE" ./configure
make
sudo make install
Ayrıca bakınız
- Tcl#Araç Komut Dili Olarak
- Xsede Yazılım Ortamları . Aşırı Bilim ve Mühendislik Keşif Ortamı ― Ulusal Bilim Vakfı
- NICS Modülleri Açıklama ― Oak Ridge Ulusal Laboratuvarı'ndaki Ulusal Hesaplamalı Bilimler Enstitüsü ― Enerji Bakanlığı
- Lmod ― Lua tabanlı modül sistemi
- Spack ― Lawrence Livermore Ulusal Laboratuvarı'nda geliştirilen HPC Yazılımı için Paket Yöneticisi
Referanslar
Dış bağlantılar
- http://modules.sourceforge.net/ - Çevre Modülleri projesinin ana sayfası
- John L. Furlani, Modüller: Esnek Kullanıcı Ortamının Sağlanması Beşinci Büyük Kurulum Sistemleri Yönetim Konferansı Bildiriler Kitabı (LISA V) , s. 141–152, San Diego, CA, 30 Eylül - 3 Ekim 1991.
- http://lmod.sourceforge.net - Tcl yerine LUA kullanan alternatif uygulama
- http://www.lysator.liu.se/cmod/ - yalnızca C kullanan alternatif uygulama
- PennState Ortam Modülleri Kullanıcı Kılavuzu
- Modüller ile tasarım ortamınızı tekmeleyerek ve çığlık atarak 90'lara sürükleyin! - SNUB Boston 2001 - Erich Whitney, Axiowave Networks, Mark Sprague, ATI Research