文書の過去の版を表示しています。


Installation 2023

環境

  • 本体: Dell PowerEdge R630 (筐体、マザーボードをヤフオクで購入 10,980円 2023/7/1)
  • CPU: Intel Xeon E5-2660v4 x 2 at メルカリ 7,660円 2023/7/4
  • メモリ: Samsun PC4-17000P (DDR4-2133P) ECC Registered 16 GB x 8 17,960円 ヤフオク 2023/7/1
  • SSD: KIOXIA SSD 240 GB
  • NIC: Dell SFP+ Intel eBay 2023/7/1
  • OS: AlmaLinux release 9.2
    $ cat /etc/os-release 
    NAME="AlmaLinux"
    VERSION="9.2 (Turquoise Kodkod)"
    ID="almalinux"
    ID_LIKE="rhel centos fedora"
    VERSION_ID="9.2"
    PLATFORM_ID="platform:el9"
    PRETTY_NAME="AlmaLinux 9.2 (Turquoise Kodkod)"
    ANSI_COLOR="0;34"
    LOGO="fedora-logo-icon"
    CPE_NAME="cpe:/o:almalinux:almalinux:9::baseos"
    HOME_URL="https://almalinux.org/"
    DOCUMENTATION_URL="https://wiki.almalinux.org/"
    BUG_REPORT_URL="https://bugs.almalinux.org/"
    
    ALMALINUX_MANTISBT_PROJECT="AlmaLinux-9"
    ALMALINUX_MANTISBT_PROJECT_VERSION="9.2"
    REDHAT_SUPPORT_PRODUCT="AlmaLinux"
    REDHAT_SUPPORT_PRODUCT_VERSION="9.2"
  • GCC version 11.3.1
    $ gcc --version
    gcc (GCC) 11.3.1 20221121 (Red Hat 11.3.1-4)
    ...

AlmaLinux 9.2 のインストール

  • AlmaLinux 9.2 のminimal インストールイメージをダウンロード (8 GB のUSBメモリしかなかったため、これにした)
  • 以下のUSBメモリの書き込み方法のページを参考に、dd コマンドで isoイメージを書き込み。以前 boot用のUSB メモリを作ったときに、dd コマンドの出力がバッファされてisoイメージが正しく書き込まれない時があったので、おまじないの sync コマンドも打っておく。USBメモリのデバイス名 (/dev/sdX) の部分は dmesg コマンドや sudo fdisk -l コマンドなどで適宜調べる。
  • SSDを物理的にインストールしたら、まず仮想ディスクを作らないとLinuxのインストール時にディスクを認識しないようだ。https://www.dell.com/support/kbdoc/ja-jp/000139093/how-to-initialize-and-create-a-virtual-disk-with-a-dell-poweredge-raid-controller-perc あたりを参考に、仮想ディスクを作成。
  • USBメモリを挿してUSBメモリからインストーラを起動する。初めUSBメモリをBoot可能なデバイスとして認識しなかった。これはよくあることのようで Boot Settingsで Boot mode を BIOS から UEFI に変更。これで USBメモリをboot デバイスとして認識し、ここからブートできるようになった。
  • インストールは通常通りの手順を行う。インストール先として、仮想ディスクを参照したはず。パーティションの割り当ては自動。この時点でパッケージの追加インストールは行わず、後で行う。
  • root のパスワードを設定しておき、root によるログインを許可する。
  • AlmaLinuxのインストール後、再起動
  • GUIをインストール。dnf grouplist コマンドで利用可能なグループを検索し、Server with GUI グループをインストールした。
  • さらに以下を参考に GUI が立ち上がるようにした。
    • 【AlmaLinux】GUIデスクトップインストール・起動手順(Mac・VMwareFusion12)https://genchan.net/it/server/3528/
      # dnf groupinstall "Server with GUI"
      # systemctl set-default graphical.target
  • さらに、
    # dnf groupinstall "Development Tools"
    # dnf install emacs
  • nestdaq ユーザーも作っておく。sudo ユーザーにも加える
    # useradd nestdaq
    # passwd nestdaq
    Changing password for user nestdaq.
    New password:
    Retype new password: 
    # usermod -aG wheel nestdaq

インストール

  • 2023年6月9日(日)現在、NestDAQのインストール方法に関するドキュメントはいくつかある。本家の GitHub のリポジトリの以下のインストール方法が公式と思われるが、CMAKE_PREFIX_PATHの指定が不要なところもあり、新しめのインストール方法のメモを見るのが良さそう。
  • 新しいインストール方法のメモとしては、e50server01 のインストールログを見るのが良い。
  • 内部ネットワークなので、firewall をひとまずdisableにする。systemctl status でfirewalld がdisable になっていることを確認。
    $ su
    Password: 
    # systemctl stop firewalld
    # systemctl disable firewalld
    Removed "/etc/systemd/system/multi-user.target.wants/firewalld.service".
    Removed "/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service".
    # systemctl status firewalld
    ○ firewalld.service - firewalld - dynamic firewall daemon
         Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; prese>
         Active: inactive (dead)
           Docs: man:firewalld(1)
    ...
  • redis のインストール
    • git でソースをダウンロードしてコンパイル
      $ pwd
      /home/nestdaq
      $ mkdir -p nestdaq/src
      $ cd nestdaq/src
      $ git clone https://github.com/redis/redis.git
      $ cd redis
      $ git checkout -b 6.0.16 6.0.16
      $ make PREFIX=$HOME/nestdaq
      $ make PREFIX=$HOME/nestdaq install
    • 設定ファイルを $HOME/nestdaq/etc にコピー
      $ mkdir $HOME/nestdaq/etc
      $ cp $HOME/nestdaq/src/redis/redis.conf $HOME/nestdaq/etc
    • daemon mode をオンにする。
      $ emacs $HOME/nestdaq/etc/redis.conf
      #daemonize no
      daemonize yes
  • RedisTimeSeries をインストール
    $ cd $HOME/nestdaq/src
    $ git clone --recursive https://github.com/RedisTimeSeries/RedisTimeSeries.git
    $ cd RedisTimeSeries
    $ git checkout -b v1.4.9 v1.4.9
    $ make
    $ mkdir $HOME/nestdaq/lib
    $ cp $HOME/nestdaq/src/RedisTimeSeries/bin/linux-x64-release/redistimeseries.so $HOME/nestdaq/lib/
    • 最初 make した時に
      $ make
      deps/readies/mk/main:49: *** Cannot find python3 interpreter.
      You can install one by running 'make setup'..  Stop.

      と言われた。

      $ ./deps/readies/bin/getpy3

      を実行すればよい? (参考: https://github.com/RedisLabsModules/readies/issues/101 ) ただ、sudo になれず失敗した気もする。getpy3 を実行したり、sudoers に nestdaq を追加したり、ログアウトしてログインしなおしたりと色々したらエラーなく make できるようになった。何が効いたかよくわからない。

  • Boot をインストール
    • Boost をインストールする前に FileSink で使用する zstd を入れておきたいところだが、すでに入っていた。
      $ su
      Password:
      # dnf install zstd libzstd-devel
      ...
      Package zstd-1.5.1-2.el9.x86_64 is already installed.
      Package libzstd-devel-1.5.1-2.el9.x86_64 is already installed.
      ...
    • Boost をダウンロードしてきてmake
      $ su
      Password:
      # dnf install python python3-devel
      # exit
      $ cd $HOME/nestdaq/src
      $ git clone https://github.com/boostorg/boost.git
      $ cd boost
      $ git checkout -b boost-1.80.0 boost-1.80.0
      $ git submodule update --init --recursive
      $ time ./bootstrap.sh
      $ time ./b2 install \
       link=static,shared \
       threading=single,multi \
       cxxstd=17 \
       variant=release,debug \
       --layout=tagged \
       -j50 \
       --prefix=$HOME/nestdaq
      ...
      ...updated 20718 targets...
      
      real	8m22.452s
      user	104m50.154s
      sys	8m11.127s
    • ./b2 のとき 以下のメッセージが気になったので、# dnf install python としたら直った。
      ...
          - Has Large File Support   : yes [4]
          - Has attribute init_priority : yes [4]
      warning: No python installation configured and autoconfiguration
      note: failed.  See http://www.boost.org/libs/python/doc/building.html
      note: for configuration instructions or pass --without-python to
      note: suppress this message and silently skip all Boost.Python targets
          - libbacktrace builds      : no [4]
          - libbacktrace builds      : no [6]
      ...
    • ./b2 のとき以下のエラーが出たが、# dnf install python3-devel としたら直った。
      ...
      ./boost/python/detail/wrap_python.hpp:57:11: fatal error: pyconfig.h: No such file or directory
    • ./b2 のとき $HOME/nestdaq/lib というファイル (ディレクトリではなく) というファイルが間違って生成されていたため、以下のエラーが出ていた。
      ...
      ...
      mkdir: cannot create directory ‘/home/nestdaq/nestdaq/lib’: Not a directory
      ...
  • ZeroMQをインストール
    • cmake をインストール
      $ su
      Password:
      # dnf install cmake
      # cmake --version
      cmake version 3.20.2
      ...
      # exit
    • ZeroMQ を持ってきてコンパイル
      $ cd $HOME/nestdaq/src
      $ git clone https://github.com/zeromq/libzmq.git
      $ cd libzmq
      $ mkdir build
      $ cmake \
       -DCMAKE_INSTALL_PREFIX=$HOME/nestdaq \
       -DCMAKE_CXX_STANDARD=17 \
       -B ./build \
       -S .
      $ cd build
      $ time make -j50
      ...
      real	0m9.800s
      user	4m16.739s
      sys	0m30.115s
      $ make install
  • fmtlib をインストール
    $ cd $HOME/nestdaq/src
    $ git clone https://github.com/fmtlib/fmt.git
    $ cd fmt
    $ mkdir build
    $ cmake \
     -DCMAKE_INSTALL_PREFIX=$HOME/nestdaq \
     -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE \
     -DCMAKE_CXX_STANDARD=17 \
     -B build \
     -S .
    $ cd build
    $ time make -j50
    $ make install
  • FairLogger をインストール
    $ cd $HOME/nestdaq/src
    $ git clone https://github.com/FairRootGroup/FairLogger.git
    $ cd FairLogger
    $ mkdir build
    $ cmake \
       -DCMAKE_INSTALL_PREFIX=$HOME/nestdaq \
       -DCMAKE_CXX_STANDARD=17 \
       -DUSE_EXTERNAL_FMT=OFF \
       -B build \
       -S .
    
    $ cd build
    $ time make -j50
    ...
    real	0m21.608s
    user	1m2.594s
    sys	0m2.767s
    $ make install
  • FairMQ をインストール (v1.4.55)
    $ cd $HOME/nestdaq/src
    $ git clone https://github.com/FairRootGroup/FairMQ.git
    $ cd FairMQ
    $ git checkout -b v1.4.55 v1.4.55
    $ mkdir build
    $ cmake \
       -DCMAKE_INSTALL_PREFIX=$HOME/nestdaq \
       -DCMAKE_CXX_STANDARD=17 \
            -DCMAKE_PREFIX_PATH="$HOME/nestdaq" \
            -B build \
            -S .
    $ cd build
    $ time make -j50
    ...
    real	1m41.157s
    user	14m14.481s
    sys	0m42.518s
    $ make install
  • hiredis のインストール (v1.1.0)
    $ cd $HOME/nestdaq/src
    $ git clone https://github.com/redis/hiredis.git
    $ cd hiredis
    $ time make PREFIX=$HOME/nestdaq install
    ...
    real	0m2.300s
    user	0m2.123s
    sys	0m0.173s
  • redis-plus-plus のインストール (1.3.6)
    $ cd $HOME/nestdaq/src
    $ git clone https://github.com/sewenew/redis-plus-plus.git
    $ cd redis-plus-plus
    $ mkdir build
    $ cmake \
        -DCMAKE_INSTALL_PREFIX=$HOME/nestdaq \
        -DCMAKE_BUILD_TYPE=Release \
        -DCMAKE_PREFIX_PATH=$HOME/nestdaq \
        -DREDIS_PLUS_PLUS_CXX_STANDARD=17 \
        -DREDIS_PLUS_PLUS_BUILD_TEST=OFF \
        -B ./build \
        -S .
    $ cd build
    $ time make install
    ...
    real	0m57.939s
    user	0m54.182s
    sys	0m3.452s
  • nestdaq のインストール
    $ cd $HOME/nestdaq/src
    $ git clone https://github.com/spadi-alliance/nestdaq.git
    $ cd nestdaq
    $ mkdir build
    $ cmake \
        -DCMAKE_INSTALL_PREFIX=$HOME/nestdaq \
        -DCMAKE_PREFIX_PATH=$HOME/nestdaq \
        -B ./build \
        -S .
    $ cd build
    $ time make -j50 install
    ...
    real	0m18.452s
    user	2m23.000s
    sys	0m9.292s
  • redisinsight のインストール
    $ cd $HOME/nestdaq/bin
    $ wget https://downloads.redisinsight.redislabs.com/latest/redisinsight-linux64
    $ chmod +x redisinsight-linux64
    $ ./redisinsight-linux64
  • RUN スクリプトなどの設定
    • run ディレクトリ作成
      $ mkdir $HOME/run
    • 初期設定ファイル nestdaq.sh を /home/nestdaq/run に作成
      $ cd $HOME/run
      $ emacs nestdaq.sh

      中身は以下。

      #!/bin/sh
      export NESTDAQ=$HOME/nestdaq
      export PATH=$NESTDAQ/bin:$PATH

      さらに、.bashrc に以下の行を追記。

      # For NestDAQ 2023/06/09                                                       
      source $HOME/run/nestdaq.sh
softwares/nestdaq/installation2023.1688863053.txt.gz · 最終更新: 2023/07/09 09:37 by kobayash
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0