Instalacja ROOT w systemie Ubuntu

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.

2 myśli nt. „Instalacja ROOT w systemie Ubuntu

  1. rozie

    Parę uwag:
    0. Ubuntu 12.04 jest stareńkie i kończy się wsparcie właśnie – zdecydowanie warto przesiąść się na nowsze.
    1. Jak już się przesiądziesz, to jest szansa, że nie trzeba walczyć z ręczną kompilacją – w Debianie stable jest w repozytoriach pakiet root-system w wersji 5.34.19+dfsg-1.2, więc współczesnej. W Ubuntu podobnie – od wersji 14.04 już jest.
    2. W liniach z kodem wkradły Ci się kody html (szukaj po &).
    3. Rola /opt się nie zmieniła, nadal jest wykorzystywany do dodatkowego oprogramowania, w szczególności niezwiązanego z systemem, z własnymi bibliotekami itp. IIRC korzysta z tego i chef, i gitlab. IMO bardzo dobre miejsce na rzeczy kompilowane z ręki.
    4. Nie ma potrzeby rozpakowywania najpierw gz, potem archiwum tar. Program tar doskonale sobie radzi z tar.gz, wystarczy dodać opcję z, czyli będzie tar zxvf root_v5.34.36.source.tar.gz

    Odpowiedz
  2. d9k Autor wpisu

    0. Nope, z pewnych powodów musi zostać jak jest.
    1. Jw.
    2. Dziękować. Nie znoszę obrabiać kodu na WordPressie 🙂
    3. O, to bardzo dobrze!
    4. A, coś mi świta w głowie z dawnych czasów, faktycznie. Thx.
    Dzięki za komcia 🙂

    Odpowiedz

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *