RockyLinuxへのmoduleコマンドインストール
| 登録日 | :2024/07/24 20:49 |
|---|---|
| カテゴリ | :SLURM |
moduleコマンドは、デフォルトでは入っていないかもしれない。
インストールは以下のようにできる。
[root@headnode ~]# sudo dnf install environment-modules
Rocky Linux 8 - AppStream 2.4 kB/s | 4.8 kB 00:01
Rocky Linux 8 - AppStream 970 kB/s | 11 MB 00:11
Rocky Linux 8 - BaseOS 4.7 kB/s | 4.3 kB 00:00
Rocky Linux 8 - BaseOS 1.0 MB/s | 5.0 MB 00:05
Rocky Linux 8 - Extras 3.1 kB/s | 3.1 kB 00:00
Rocky Linux 8 - Extras 12 kB/s | 14 kB 00:01
依存関係が解決しました。
=============================================================================================
パッケージ Arch バージョン リポジトリー サイズ
=============================================================================================
インストール:
environment-modules x86_64 4.5.2-4.el8 baseos 421 k
依存関係のインストール:
tcl x86_64 1:8.6.8-2.el8 baseos 1.1 M
トランザクションの概要
=============================================================================================
インストール 2 パッケージ
ダウンロードサイズの合計: 1.5 M
インストール後のサイズ: 6.2 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/2): environment-modules-4.5.2-4.el8.x86_64.rpm 418 kB/s | 421 kB 00:01
(2/2): tcl-8.6.8-2.el8.x86_64.rpm 952 kB/s | 1.1 MB 00:01
---------------------------------------------------------------------------------------------
合計 750 kB/s | 1.5 MB 00:02
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
準備 : 1/1
インストール中 : tcl-1:8.6.8-2.el8.x86_64 1/2
scriptletの実行中: tcl-1:8.6.8-2.el8.x86_64 1/2
インストール中 : environment-modules-4.5.2-4.el8.x86_64 2/2
scriptletの実行中: environment-modules-4.5.2-4.el8.x86_64 2/2
検証 : environment-modules-4.5.2-4.el8.x86_64 1/2
検証 : tcl-1:8.6.8-2.el8.x86_64 2/2
インストール済み:
environment-modules-4.5.2-4.el8.x86_64 tcl-1:8.6.8-2.el8.x86_64
完了しました!
[root@headnode ~]#
moduleコマンドを使うには
[root@headnode ~]# module avail
bash: module: コマンドが見つかりませんでした...
[root@headnode ~]# module --version
bash: module: コマンドが見つかりませんでした...
[root@headnode ~]# vi /etc/profile.d/modules.sh
[root@headnode ~]# module --version
Modules Release 4.5.2 (2020-07-30)
[root@headnode ~]# module avail
------------------------------ /usr/share/Modules/modulefiles -------------------------------
dot module-git module-info modules null use.own
[root@headnode ~]#
moduleコマンドをインストールするだけでは、結局ソフトウェアのモジュールを読み込めるわけではない。モジュールファイルも自分で作成することとなる。
[root@headnode ~]# module avail
------------------------------ /usr/share/Modules/modulefiles -------------------------------
dot module-git module-info modules null use.own
[root@headnode ~]#
この出力は、module avail コマンドを実行した結果、現在利用可能なモジュールファイルが表示されている状態です。以下は各項目の意味です:
dot:
特別なモジュールで、通常は現在の環境をリセットするために使用されます。
module-git:
Environment Modulesシステムの内部で使用されるモジュールで、特定のバージョン管理や設定に関連しています。
module-info:
モジュールシステムに関する情報を提供するモジュールです。
modules:
モジュールシステム自体に関連する設定や情報を提供するモジュールです。
null:
特別なモジュールで、通常は何も行わないか、環境変数をクリアするために使用されます。
use.own:
ユーザーが自分のモジュールファイルを使用するための設定を行うモジュールです。
この出力の意味
この出力は、現在のモジュールパス(/usr/share/Modules/modulefiles)にあるデフォルトのモジュールファイルを示しています。これらは主にモジュールシステムの管理や設定に関連するもので、実際のソフトウェアパッケージ(例:gcc, python, mpiなど)は含まれていません。
次のステップ
追加のモジュールファイルを設定する:
実際に使用したいソフトウェアのモジュールファイルを作成し、適切なディレクトリに配置します。例えば、/usr/share/Modules/modulefiles または /etc/modulefiles に配置します。
モジュールパスを拡張する:
必要に応じて、MODULEPATH 環境変数を設定して、追加のモジュールファイルディレクトリを指定します。
export MODULEPATH=$MODULEPATH:/path/to/your/modulefiles
モジュールファイルの作成:
各ソフトウェアのモジュールファイルを作成します。例えば、gcc のモジュールファイルは以下のようになります。
#%Module1.0
proc ModulesHelp { } {
puts stderr "This module loads GCC 9.3.0"
}
module-whatis "GCC 9.3.0"
prepend-path PATH /opt/gcc/9.3.0/bin
prepend-path LD_LIBRARY_PATH /opt/gcc/9.3.0/lib64
モジュールの再読み込み:
新しいモジュールファイルを追加した後、module avail コマンドを再度実行して、利用可能なモジュールを確認します。
これにより、実際に使用したいソフトウェアパッケージのモジュールを管理し、必要に応じてロードできるようになります。
結果的に、moduleコマンドでCFXの問題を解決するのは難しそうだという印象である。