KnowHow

技術的なメモを中心にまとめます。
検索にて調べることができます。

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の問題を解決するのは難しそうだという印象である。