Instalacja ROOT

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/.

Poniżej przedstawiam opis instalacji pod systemem Ubuntu 12.04, w języku polskim – dla absolutnych początkujących, nie znających systemu Linux.

  1. 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)
  2. Rozpakowanie
    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
    
  3. 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.

  4. 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
    
  5. 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
    
  6. 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ę.

  7. 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
    
  8. 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]
    
  9. 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
    
  10. Gotowe 🙂

Jeśli chcesz natomiast przeczytać, jak zainstalować moduł LHAPDF, pisałam o tym tutaj.

2 myśli nt. „Instalacja ROOT

  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 *