wistaria / MateriAppsInstaller

Install script collection for open-source software
https://www.pasums.issp.u-tokyo.ac.jp/mainstaller/
11 stars 14 forks source link

cmakeインストールエラーについて #130

Open tktakeda opened 1 year ago

tktakeda commented 1 year ago

(英語推奨でしたら訳のうえ再投稿致します)いつもMateriAppsを活用させて頂いております。 ・Ubuntu 22.04(Kernel 5.15.0-58-generic) ・Intel CPU(i5-10400F) ・MateriAppsInstaller: v1.1.0(git cloneによりダウンロード) 上記環境でgccをインストール、source env.shを実行後にcmakeのインストールを実行しようとしたところ、下記のエラーメッセージにより完了できませんでした。なお、先にopensslをインストールした後でもエラーは発生しました。

user01@desktop02:~/MateriAppsInstaller/tools/cmake$ sh install.sh
Error: openssl not found

以下はinstall.shの成否判定を与えるMA_HAVE_OPENSSLを出力するfind.shのシェルスクリプトを実行したログです。 env.shによるPATH設定は上手くいっているとみられますが、 MA_OPENSSL_VERSIONがEmpty、MA_HAVE_OPENSSL=noになるためにインストール時にエラーが出るのではないかと推察しました。(which iccが空=iccのPATHが通っていないことが原因でしょうか?)

user01@desktop02:~/materiapps$ source env.sh
user01@desktop02:~/materiapps$ echo ${PATH}
/home/user01/materiapps/openssl/openssl-3.0.1-1/bin:/home/user01/materiapps/gcc/gcc-10.2.0-1/bin:/home/user01/materiapps/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
user01@desktop02:~/materiapps$ cd ../MateriAppsInstaller/tools
user01@desktop02:~/MateriAppsInstaller/tools/openssl$ source find.sh
#Even executed find.sh directly, variable MA_OPENSSL_VERSION was empty. Because of that, MA_HAVE_OPENSSL was not changed to "yes" successfully and failed to install cmake.
user01@desktop02:~/MateriAppsInstaller/tools/openssl$ echo ${MA_HAVE_OPENSSL}
no
user01@desktop02:~/MateriAppsInstaller/tools/openssl$ echo ${MA_OPENSSL_VERSION}

#Check compiler PATH.  For cc, gcc and icc, icc seemed not to be detected.
user01@desktop02:~/MateriAppsInstaller/tools/openssl$ which cc
/home/user01/materiapps/gcc/gcc-10.2.0-1/bin/cc
user01@desktop02:~/MateriAppsInstaller/tools/openssl$ which gcc
/home/user01/materiapps/gcc/gcc-10.2.0-1/bin/gcc
user01@desktop02:~/MateriAppsInstaller/tools/openssl$ which icc
user01@desktop02:~/MateriAppsInstaller/tools/openssl$

もし手順に誤り等がございましたら、ご指摘いただけますと幸いです。

yomichi commented 1 year ago

ありがとうございます、少し調べてみます。

ちなみに、Ubuntu のパッケージ (apt) を使わない理由はありますか?もし特に理由がない場合は、cmake などはそちらで入れた方が楽かと思います。 物性アプリなどについても apt で使えるパッケージが用意されているのでチェックしてみてください。 https://github.com/cmsi/MateriAppsLive/wiki/UsingMateriAppsInDebian

tktakeda commented 1 year ago

yomichi様

ご確認頂き、ありがとうございます。また、当方の投稿のログ周りの書式修正、ありがとうございました。 実はこれらのツール類(fftw3やeigen3等も含)はaptにてインストールできているのですが、その状態で今回目的としたOpenMXをインストールしようとしたところ、makeにおいてエラーを解決できない問題に直面しました。 そこでMateriAppsInstallerであればビルドできるかもしれないと考え、トライさせて頂きました。 その中で、まずは使い方を学ぶためにもマニュアル通りに一通りツールをmateriappsディレクトリへインストールしてみようとしたところ、今回のIssueに遭遇した次第です。 ご紹介頂いたアプリのaptについても試してみたいと思います。

k-yoshimi commented 4 months ago

@tktakeda その後、OpenMXのインストールについてはうまくできたでしょうか? できたようでしたら、解決方法について共有していただけると助かります。

tktakeda commented 1 week ago

@k-yoshimi 本件、お返事が遅れてしまい誠に申し訳ございません。

まず、当時MateriAppsInstallerによるOpenMX(Ver3.9)のインストールは完了できず、MateriAppsLiveにより計算を実行いたしました。 その直後に同ソフトを使用する現場から離れて当時は試せなかったのですが、当時OpenMXをビルドできなかった直接の理由はgccのバージョンに関するエラー(※)だった模様です。 ※make時、-fallow-argument-mismatchを追加する必要があった。以下参照。 https://www.openmx-square.org/forum/patio.cgi?mode=view&no=2704

先日、Ubuntu22.04に対し以下の2環境でインストールを実行したところ、エラーなくインストールを完了しました。 (環境1)VMBox上の仮想OSとしてUbuntu22.04上(クリーンインストール状態)へのインストール プロセッサ:AMD Ryzen 7 3700X 8-Core Processor OS:Ubuntu22.04(クリーンインストール状態)(Windows11(64bit)上に、Oracle VMBoxにより仮想OSとして導入)

(環境2)Ubuntu22.04(64bit、クリーンインストール状態)へのインストール プロセッサ:Intel Core-i5(10400F) OS:Ubuntu22.04

インストールしたパッケージ・ライブラリや手順は下記の通りです。 再現こそ取れましたが、不得手なうえ調べながら実施したため整頓できていない点、ご容赦ください。

(手順1)数値ライブラリ等のインストール $ sudo apt upgrade $ sudo apt update $ sudo apt install build-essential $ sudo apt install gfortran $ sudo apt install libblas-dev $ sudo apt install liblapack-dev $ sudo apt install libfftw3-mpi-dev $ sudo apt install libfftw3-3 $ sudo apt install libfftw3-doc $ sudo apt install libscalapack-openmpi-dev $ sudo apt install libopenmpi-dev openmpi-bin openmpi-doc

(手順2)OpenMX3.9.9のインストール手順に従い、解凍、ファイルのコピーを実行。 (手順3)hoge\openmx3.9\source\makefile のCC,FC,LIBに関わる行を以下の通り書き換え。 CC = mpicc -O3 -fopenmp -march=native -fcommon FC = mpif90 -O3 -fopenmp -march=native -fallow-argument-mismatch LIB= -lscalapack-openmpi -lblas -llapack -lfftw3 -lgfortran -lmpi_mpifh (手順4)make cleanを実行し、make all実行。 (※この後、PATHを通しました)

ソフト同梱のテストファイル(workディレクトリ)の実行にて、挙動が問題ないことを確認いたしました。 当時、ここまで気づけていたらお手数をお掛けしていなかったとみられます。 無知からご迷惑をお掛けし、誠に申し訳ございません。