AlmaLinuxにArtemisをインストール

AlmaLinuxにArtemisを導入したので手順を書き残しておきます。(備忘録なのでかなり適当)

まずインストールしたAlmaLinuxのバージョンは以下の通りです。

LSB Version:    :core-4.1-amd64:core-4.1-noarch
Distributor ID: AlmaLinux
Description:    AlmaLinux release 8.8 (Sapphire Caracal)
Release:        8.8
Codename:       SapphireCaracal`

大まかな手順は以下の通りです。

  • yumでインストール可能なパッケージをインストール
  • yaml-cpp 0.7.0をインストール
  • artemisをインストール

yumでパッケージをインストール

sudo yum install root
sudo yum install cmake
sudo dnf install zlib-devel

yaml-cpp 0.7.0のインストール

yum installでもyaml-cppをインストールは可能なのですが、バージョン0.7.0に対応していないので直接入れる必要があります。ここではGitHubを使用します。リンクはここ

適当なディレクトリを用意します。

cd $HOME
mkdir Work
cd Work
mkdir Install
mkdir GitHub
cd GitHub

yaml-cpp 0.7.0のリポジトリをクローンして、make insatllします。

基本的にはREADME.md通りに実行しておけばOKです。

git clone https://github.com/jbeder/yaml-cpp.git
cd yaml-cpp.0.7.0
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=~/Work/Install ..
make
make install

artemisをインストール

yaml-cpp同様にインストールします。

cd $HOME/Work/GitHub/
git clone https://github.com/artemis-dev/artemis.git -b develop
cd artemis
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=~/install ..
make -j16
make install

make installインストールするとものすごく怒られます。

どうやら必要な共有オブジェクト等がないようで、警告通りインストールしていきます。

sudo dnf install /usr/lib64/root/libTestSupport.a
sudo dnf install /usr/lib64/root/libMinuit2.so.6.28.04
sudo dnf install /usr/lib64/root/libFumili.so.6.28.04
sudo dnf install /usr/lib64/root/libMLP.so.6.28.04
sudo dnf install /usr/lib64/root/libQuadp.so.6.28.04
sudo dnf install /usr/lib64/root/libFoam.so.6.28.04
sudo dnf install /usr/lib64/root/libSmatrix.so.6.28.04
sudo dnf install /usr/lib64/root/libSPlot.so.6.28.04
sudo dnf install /usr/lib64/root/libGenVector.so.6.28.04
sudo dnf install /usr/lib64/root/libGenetic.so.6.28.04
sudo dnf install /usr/lib64/root/libUnuran.so.6.28.04
sudo dnf install /usr/lib64/root/libFFTW.so.6.28.04
sudo dnf install /usr/lib64/root/libRtools.so.6.28.04
sudo dnf install /usr/lib64/root/libSpectrum.so.6.28.04
sudo dnf install /usr/lib64/root/libSpectrumPainter.so.6.28.04
sudo dnf install /usr/lib64/root/libUnfold.so.6.28.04
sudo dnf install /usr/lib64/root/libHbook.so.6.28.04
sudo dnf install /usr/lib64/root/libTreeViewer.so.6.28.04
sudo dnf install /usr/lib64/root/libROOTTreeViewer.so.6.28.04
sudo dnf install /usr/lib64/root/libSQLIO.so.6.28.04
sudo dnf install /usr/lib64/root/libXMLIO.so.6.28.04
sudo dnf install /usr/lib64/root/libXMLParser.so.6.28.04
sudo dnf install /usr/lib64/root/libGFAL.so.6.28.04
sudo dnf install /usr/lib64/root/libDCache.so.6.28.04
sudo dnf install /usr/lib64/root/libRootAuth.so.6.28.04
sudo dnf install /usr/lib64/root/libSrvAuth.so.6.28.04
sudo dnf install /usr/lib64/root/libRDAVIX.so.6.28.04
sudo dnf install /usr/lib64/root/libNetxNG.so.6.28.04
sudo dnf install /usr/lib64/root/libRHTTP.so.6.28.04
sudo dnf install /usr/lib64/root/libRHTTPSniff.so.6.28.04
sudo dnf install /usr/lib64/root/libGviz.so.6.28.04
sudo dnf install /usr/lib64/root/libFITSIO.so.6.28.04
sudo dnf install /usr/lib64/root/libX3d.so.6.28.04
sudo dnf install /usr/lib64/root/libRCsg.so.6.28.04
sudo dnf install /usr/lib64/root/libEve.so.6.28.04
sudo dnf install /usr/lib64/root/libRGL.so.6.28.04
sudo dnf install /usr/lib64/root/libGviz3d.so.6.28.04
sudo dnf install /usr/lib64/root/libFitPanel.so.6.28.04
sudo dnf install /usr/lib64/root/libGuiBld.so.6.28.04
sudo dnf install /usr/lib64/root/libGuiHtml.so.6.28.04
sudo dnf install /usr/lib64/root/libRecorder.so.6.28.04
sudo dnf install /usr/lib64/root/libSessionViewer.so.6.28.04
sudo dnf install /usr/lib64/root/libROOTWebDisplay.so.6.28.04
sudo dnf install /usr/lib64/root/libROOTQt5WebDisplay.so.6.28.04
sudo dnf install /usr/lib64/root/libWebGui6.so.6.28.04
sudo dnf install /usr/lib64/root/libProof.so.6.28.04
sudo dnf install /usr/lib64/root/libProofPlayer.so.6.28.04
sudo dnf install /usr/lib64/root/libProofDraw.so.6.28.04
sudo dnf install /usr/lib64/root/libProofBench.so.6.28.04
sudo dnf install /usr/lib64/root/libHtml.so.6.28.04
sudo dnf install /usr/lib64/root/libEG.so.6.28.04
sudo dnf install /usr/lib64/root/libEGPythia8.so.6.28.04
sudo dnf install /usr/lib64/root/libGeom.so.6.28.04
sudo dnf install /usr/lib64/root/libGeomBuilder.so.6.28.04
sudo dnf install /usr/lib64/root/libGeomPainter.so.6.28.04
sudo dnf install /usr/lib64/root/libGdml.so.6.28.04
sudo dnf install /usr/bin/xpdtest
sudo dnf install /usr/bin/proofserv.exe
sudo dnf install /usr/bin/rootnb.exe
sudo dnf install /usr/bin/g2root
sudo dnf install /usr/bin/h2root
sudo dnf install /usr/lib64/root/libcppyy_backend3_6.so.6.28.04
sudo dnf install /usr/lib64/root/libcppyy3_6.so.6.28.04
sudo dnf install /usr/lib64/root/libROOTTPython.so.6.28.04
sudo dnf install /usr/lib64/root/libRInterface.so.6.28.04
sudo dnf install /usr/lib64/root/libRMySQL.so.6.28.04
sudo dnf install /usr/lib64/root/libRODBC.so.6.28.04
sudo dnf install /usr/lib64/root/libPgSQL.so.6.28.04
sudo dnf install /usr/lib64/root/libRSQLite.so.6.28.04
sudo dnf install /usr/lib64/root/libTMVA.so.6.28.04
sudo dnf install /usr/lib64/root/libTMVAGui.so.6.28.04
sudo dnf install /usr/lib64/root/libPyMVA.so.6.28.04
sudo dnf install /usr/lib64/root/libRMVA.so.6.28.04
sudo dnf install /usr/lib64/root/libROOTTMVASofie.so.6.28.04
sudo dnf install /usr/lib64/root/libROOTTMVASofieParser.so.6.28.04
sudo dnf install /usr/lib64/root/libRooBatchCompute.so.6.28.04
sudo dnf install /usr/lib64/root/libRooBatchCompute_GENERIC.so.6.28.04
sudo dnf install /usr/lib64/root/libRooBatchCompute_SSE4.1.so.6.28.04
sudo dnf install /usr/lib64/root/libRooBatchCompute_AVX.so.6.28.04
sudo dnf install /usr/lib64/root/libRooBatchCompute_AVX2.so.6.28.04
sudo dnf install /usr/lib64/root/libRooBatchCompute_AVX512.so.6.28.04
sudo dnf install /usr/lib64/root/libRooFitCommon.so.6.28.04
sudo dnf install /usr/lib64/root/libRooFitCore.so.6.28.04
sudo dnf install /usr/lib64/root/libRooFit.so.6.28.04
sudo dnf install /usr/lib64/root/libRooFitMore.so.6.28.04
sudo dnf install /usr/lib64/root/libRooStats.so.6.28.04
sudo dnf install /usr/lib64/root/libHistFactory.so.6.28.04
sudo dnf install /usr/bin/hist2workspace
sudo dnf install /usr/lib64/root/libRooFitRDataFrameHelpers.so.6.28.04
sudo dnf install /usr/lib64/root/libRooFitJSONInterface.so.6.28.04
sudo dnf install /usr/lib64/root/libRooFitHS3.so.6.28.04

いくつかのオブジェクトは対応していないみたいです。

それらはあきめて、再度make installします。

今度はmake insatllできるかと思います。

root/artemisの環境

thisartemis.shに環境設定ができます。`

thisartemis.sh内にはthisroot.shを実行する箇所があるので適宜thisroot.sh`のパスを変更します。

thisroot.shの在処はrootの実行ファイルと同じ場所にあるのでwhich rootで確認します。

ここでは.zshrcthisartemis.shを実行するように書いておきます。

pushd ~/Work/Install >/dev/null; . bin/thisartemis.sh; popd >/dev/null

あとはsource ~/.zshrcを実行するだけで起動できるようになります。

試しに~/Work/GitHub/artemis/exampleartemisを起動し、zoneコマンドでTCanvasが生成されたら正しくインストールできていると思います。

その他設定

いちいちarmtemisを起動する際にvncにするのか、デスクトップに表示するのか選択するのは面倒なので自動で選んでくれるように.zshrcfunctionを設定しておきます。

vncdisplay=.vncdisplay
function a() {
    if  [ -f $vncdisplay ]; then
        DISPLAY=:`cat $vncdisplay` artemis -l $*
    else
        artemis -l $*
    fi
}

これにて.vncdisplayがある場合は.vncdisplay内にあるデスプレイ番号に描画さえるようになります。

ない場合はデスクトップに表示されます。