ROOT jest biblioteką do analizy danych, statystyk, wizualizacji danych. Używany jest najczęściej w jednostkach naukowych (CERN, uczelnie itd.). Świetny opis instalacji tego frameworka znalazłam tu:
https://yannisflou.wordpress.com/2012/06/05/root-data-analysis-framework-on-ubuntu-12-04/. Instalacja ROOT jest tu naprawdę dobrze opisana.
Poniżej przedstawiam opis instalacji pod systemem Ubuntu 12.04, w języku polskim – dla absolutnych początkujących, nie znających systemu Linux.
Download
Ściągnęłam wersję ROOT 5.34/36 wybierając typ: „Source” na podstronie wersji: https://root.cern.ch/content/release-53436. (Po instalacji przedstawia się jako:
v5-34-36@v5-34-36, Apr 05 2016, 10:25:45 on linuxx8664gcc
).
Rozpakowanie
Wystarczy odpakować za pomocą tara:
d9k@Nihilia:~$ cd rootSOURCE d9k@Nihilia:~/rootSOURCE$ gunzip root_v5.34.36.source.tar.gz d9k@Nihilia:~/rootSOURCE$ tar xvf root_v5.34.36.source.tar
Miejsce docelowe instalacji
ROOT-a installować będziemy w folderze /opt/ROOT/
. Folder „opt” był używany niegdyś do instalowania oprogramowania niezwiązanego z systemem (coś jak windowsowe „Program files”). Obecnie zaleca się używać ścieżki /usr/local
, w mojej instrukcji użyję jednak „starodawnych” rozwiązań :)Stworzenie folderu:
d9k@Nihilia:~/rootSOURCE$ sudo mkdir /opt/ROOT/
Stworzenie tymczasowej zmiennej globalnej (w następnych krokach „utrwalimy” ją, aby była dostępna także po zamknięciu tej sesji terminala):
d9k@Nihilia:~/rootSOURCE$ export ROOTSYS=/opt/ROOT
Możemy sprawdzić, czy się utworzyła:
d9k@Nihilia:~/rootSOURCE$ echo $ROOTSYS /opt/ROOT
Ok.
Configure
Configure to pierwszy krok instalacji. W skrócie Configure jest to skrypt, który na bazie podanych mu opcji (i zmiennych, uwarunkowań i zależności istniejących w systemie) tworzy plik Makefile, który z kolei zostanie użyty w kolejnych krokach.Można wyświetlić sobie helpa polecenia Configure – najlepiej zrzucając go do pliku, bo opcji konfiguracji ROOT-a jest ogólnie bardzo dużo. Instalować będziemy w opcjach domyślnych, wskazując jedynie miejsce instalacji.
d9k@Nihilia:~/rootSOURCE$ cd root d9k@Nihilia:~/rootSOURCE/root$ ./configure --help > ../configure_help.txt
I wywołanie samego polecenia – ze wskazaniem mu ścieżki, gdzie ROOT ma zostać zainstalowany:
d9k@Nihilia:~/rootSOURCE/root$ ./configure --prefix=/opt/ROOT
Make
Wykonanie tego kroku trwało dość długo. Podczas tego etapu źródła są budowane za pomocą pliku Makefile, zawierającego instrukcje budowania.
d9k@Nihilia:~/rootSOURCE/root$ make
Make install
Wreszcie ostatni krok. Na tym etapie skompilowany program jest kopiowany do miejsca docelowego (podanego w parametrze „prefix” na etapie konfiguracji).
d9k@Nihilia:~/rootSOURCE/root$ sudo make install [sudo] password for d9k: ============================================================ === ROOT BUILD SUCCESSFUL. === === Run 'make install' now. === ============================================================ Installing binaries in /opt/ROOT/bin Installing libraries in /opt/ROOT/lib/root Installing headers in /opt/ROOT/include/root Installing /home/d9k/rootSOURCE/root/main/src/rmain.cxx in /opt/ROOT/include/root Installing cint/cint/include cint/cint/lib and cint/cint/stl in /opt/ROOT/lib/root/cint Installing icons in /opt/ROOT/share/root/icons Installing fonts in /opt/ROOT/share/root/fonts Installing misc docs in /opt/ROOT/share/doc/root Installing tutorials in /opt/ROOT/share/doc/root/tutorials Installing tests in /opt/ROOT/share/doc/root/test Installing macros in /opt/ROOT/share/root/macros Installing man(1) pages in /opt/ROOT/share/man/man1 Installing config files in /etc/root Installing Autoconf macro in /opt/ROOT/share/aclocal Installing Emacs Lisp library in /opt/ROOT/share/emacs/site-lisp Installing GDML conversion scripts in /opt/ROOT/lib/root d9k@Nihilia:~/rootSOURCE/root$
Udało się.
Source
Krok wymagany przez program ROOT – uruchomienie skryptu „thisroot.sh
„, ustawiającego ścieżki używane przez program ROOT, takie jak $ROOTSYS, $LD_LIBRARY_PATH, $DYLD_LIBRARY_PATH, $PATH, $LIBPATH
i wiele innych. Jego treść można oczywiście podejrzeć dowolnym edytorem:
d9k@Nihilia:~$ cat /opt/ROOT/bin/thisroot.sh
Ok, czas na wykonanie tego skryptu:
d9k@Nihilia:~$ source /opt/ROOT/bin/thisroot.sh
Uruchomienie
Nareszcie możemy uruchomić program ROOT:
d9k@Nihilia:~$ root ******************************************* * * * W E L C O M E to R O O T * * * * Version 5.34/36 5 April 2016 * * * * You are welcome to visit our Web site * * http://root.cern.ch * * * *******************************************ROOT 5.34/36 (v5-34-36@v5-34-36, Apr 05 2016, 10:25:45 on linuxx8664gcc)CINT/ROOT C/C++ Interpreter version 5.18.00, July 2, 2010 Type ? for help. Commands must be C++ statements. Enclose multiple statements between { }. root [0]
Utrwalenie zmiennych
Po wyłączeniu terminala, ustawiona w poprzednich punktach zmienna ROOTSYS zniknie. Można ją utrwalić.Jak czytamy w helpie Ubuntu:
„A suitable file for environment variable settings that affect the system is /etc/environment.
An alternative is to create a file for the purpose in the /etc/profile.d directory.”Modyfikujemy zatem plik:
d9k@Nihilia:~$ sudo gedit /etc/environment
Dodając na koniec:
ROOTSYS="/opt/ROOT"
Aby nie trzeba było za każdym włączeniem terminala uruchamiać na nowo skryptu thisroot, można ustawić, aby skrypt był uruchamiany przy starcie systemu:
d9k@Nihilia:~$ sudo gedit .bashrc
Na końcu dodając linijkę:
source /opt/ROOT/bin/thisroot.sh
Gotowe 🙂
Jeśli chcesz natomiast przeczytać, jak zainstalować moduł LHAPDF, pisałam o tym tutaj.