Słowo wstępu
Instalacja frameworku eksperymentalnego wymaga zainstalowania oprogramowania w 3 krokach - FairSoft, FairRoota oraz właściwego oprogramowania dedykowanego danemu eksperymentowi. Tutaj zajmę się pokazaniem instalacji dwóch pierwszych frameworków. W poniższej instrukcji założę, że instalujesz jedną określoną wersję FairSoftu oraz FairRoota. Jeśli jednak planujesz używać kilku wersji warto jest wszystko jasno ponazywać tzn. np. instalować FairSoft 19 w katalogu FairSoftInst_19 a wersję 21 w FairSoftInst_21 zamiast nazywać je FairSoft, TenDrugiFairsoft.
Istotne są też pewne wymagania systemowe - sam FairSoft 19 łącznie z plikami instalacyjnymi instalowany metodą poniżej zajmuje około 40 GB, FairSoft 20 zajmuje zaś około 25 GB, do tego należy doliczyć około 1 GB FairRoota + rozmiar frameworku danego eksperymentu. Problemem może być też kompilacja ROOT'a jeśli ma się mało RAM-u, tutaj nie podam konkretnego progu - aczkolwiek 8 GB powinno wystarczyć.
No i jeszcze jedna uwaga, zwykle framework tego typu instaluje się w katalogu opt. Jest to katalog który domyślnie należy do roota, jednak nie powinno się tych frameworków instalować jako root! Najlepiej jest po prostu utworzyć katalog w katalogu opt i nadać mu odpowiednie prawa/właściciela, żeby można było kompilować/instalować kody jako zwykły użytkownik.
Instalacja w systemie Mint FairSoftu 24
FairSoft 24 to najnowsza wersja. Można go instalować na dwa sposoby. Ja wybrałem instalację w trybie "legacy". Dla tej wersji nieco zmieniła się lista zależności, aby jest zainstalować trzeba użyć następujących komend:
apt-get update
apt-get -y upgrade
apt-get -y install autoconf automake binutils \
bison build-essential bzip2 ca-certificates coreutils \
curl debianutils file findutils flex g++ gcc gfortran git gzip \
hostname libbz2-dev libcurl4-openssl-dev libgsl-dev libicu-dev \
libfftw3-dev libprotobuf-dev\
libgl1-mesa-dev libglu1-mesa-dev libgrpc++-dev \
liblzma-dev libncurses-dev libreadline-dev libsqlite3-dev libssl-dev libtool \
libx11-dev libxerces-c-dev libxext-dev libxft-dev \
libxml2-dev libxmu-dev libxpm-dev libyaml-cpp-dev libzstd-dev lsb-release make patch \
python3-dev protobuf-compiler-grpc rsync sed subversion tar unzip wget xutils-dev xz-utils
apt-get -y install cmake
apt-get -y clean
To są zależności dla systemu ubuntu, generalnie w FairSoft/legacy/ są różne pliki setup-*.sh dla różnych systemów operacyjnych.
Następnie ściągamy FairSoft np. do /opt/FairGroup/FairSoft i przy pomocy git checkout przełączamy się w wersję jan24 (możemy też obrazu wybrać konkretną wersję robiąc:
git clone -b https://github.com/FairRootGroup/FairSoft
Potem dobrze jest otworzyć plik FairSoftConfig.cmake i ustawić miejsce do którego zainstalowany zostanie FairSoft. Przykładowo jeśli chcemy instalować w /opt/FairGroup/FairSoftInst można zrobić to modyfikując linię set(CMAKE_INSTALL_PREFIX... na set(CMAKE_INSTALL_PREFIX "/opt/FairGroup/FairSoftInst" CACHE PATH "Install prefix" FORCE) do FairSoftConfig.cmake.
Następnie wywołujemy komendy:
cmake -S <path-to-source> -B <path-to-build> -C <path-to-source>/FairSoftConfig.cmake
cmake --build <path-to-build> [-j<ncpus>]
Gdzie path-to-source to miejsce gdzie ściągneliśmy FairSoft (tutaj /opt/FairGroup/FairSoft), path-to-build miejsce na tymczasowe pliki budowy (np. /opt/FairGroup/FairSoftTemp, zaś ncpus to liczba rdzeni użytych do kompilacji.
Instalacja FairROOT
Gdy zakończy się instalacja FairSoftu można przystąpić do kompilacji FairROOTa. Najpierw należy ustawić odpowiednie ścieżki środowiskowe w naszym wypadku:
export SIMPATH=/opt/FairGroup/FairSoftInst
export PATH=$SIMPATH/bin:$PATH
Następnie wychodzimy z powrotem do /opt/FairGroup, i pobieramy FairROOT:
git clone https://github.com/FairRootGroup/FairRoot.git FairRoot
cd FairRoot
git checkout X //gdzie X jest wybraną wersją
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX="miejsce gdzie będzie zainstalowane oprogramowanie" ..
make -j8 // lub make -jN gdzie N to liczba rdzeni - umożliwia to kompilację przy użyciu wielu rdzeni
make install
Zwykle na miejsce instalacji wybiera się miejsce obok FairSoft np. /opt/FairGroup/FairRootInst, ale nie jest to konieczne. Rozpocznie się proces instalacji FairROOTa który nie powinien zająć więcej niż kilkanaście minut.
Uwaga praktyczna - czasem trzeba pracować z kilkoma wersjami FairSoft'u FairRoota, to nie jest żaden problem ale można łatwo pokręcić ścieżki. Ja np. stosuję następującą konwencję, żeby uniknąć pomyłek:
- W nazwie folderów FairSoftu umieszczam numer wersji tak więc np. zamiast /opt/FairGroup/FairSoft mam /opt/FairGroup/FairSoft24 analogicznie zmieniam ściężkę do folderu gdzie instaluję paczkę oraz folderu tymczasowego
- FairRoota instaluję zaś w katalogu, który mówi mi o wersji FairSoftu i tak np. jak mam FairRoot w wersji 19.0.0 zależy od FairSoft wersja 24 to ściągam go do /opt/FairGroup/Fair24/FairRoot_19_0_0