Error compiling Root from source on Ubuntu 14.04

As far as I know I followed thoroughly the guide: I downloaded “ROOT 6.02.04 complete source tree for all systems”, then on the terminal:

$ gunzip root_v6.02.04.source.tar.gz $ tar -xvf root_v6.02.04.source.tar
I made sure that all the needed packages were properly installed:

$ sudo apt-get install git dpkg-dev make g++ gcc binutils libx11-dev libxpm-dev \ libxft-dev libxext-dev
(actually i was overzealous and I even installed all the optional ones)
Then I proceeded with the compilation of Root libreries:

$ cd cd root-6.02.04 $ ./configure linuxx8664gcc --prefix=/usr/local --enable-soversion $ make
So far so good: no error or problems whatsoever. My troubles come with the proper installation, i.e.:

After typing my password I get this output:

Installing binaries in /usr/local/bin Installing libraries in /usr/local/lib/root Installing headers in /usr/local/include/root Installing /home/loghe0n/Scaricati/root-6.02.04/main/src/rmain.cxx in /usr/local/include/root Installing icons in /usr/local/share/root/icons Installing fonts in /usr/local/share/root/fonts Installing misc docs in /usr/local/share/doc/root Installing tutorials in /usr/local/share/doc/root/tutorials Installing tests in /usr/local/share/doc/root/test Installing macros in /usr/local/share/root/macros Installing man(1) pages in /usr/local/share/man/man1 Installing config files in /usr/local/etc/root Installing Autoconf macro in /usr/local/share/aclocal Installing Emacs Lisp library in /usr/local/share/emacs/site-lisp Installing GDML conversion scripts in /usr/local/lib/root /usr/local/bin/root.exe: error while loading shared libraries: libCore.so.6.02: cannot open shared object file: No such file or directory
Of course I tried leaving out the -soversion flag, but it didn’t work out … I fear my mistake is something rather stupid, but still I really don’t know what that is.

I also tried searching for that libCore.so.6.02 library and it is found right away!

$ sudo find / -name libCore.so.6.02
/home/user/Download/root-6.02.04/lib/libCore.so.6.02
/usr/local/lib/root/libCore.so.6.02

Thus I really don’t understand that “no such file or directory” error, I’ve really got no clue on what this is all about, any help in this matter would really really be appreciated!

I tip it’s a bug in ROOT’s installation procedure (I tip the “LD_LIBRARY_PATH” is not properly set before calling “root” when it tries to process the “hsimple.C” tutorial in the end, so you probably do not really need to worry about it that much).
Try the [url=https://root-forum.cern.ch/t/missing-canvas/17664/17 ROOTSYS based method[/url] (in case anything goes wrong you’ll have additional “configure.out.txt” and “make.out.txt” files to look into): [code]cd root-6.02.04

first get rid of “old” installed files

sudo make uninstall

and make the source code “clean”

make maintainer-clean

then build everything from scratch

note: the “ROOTSYS=/Where/You/Want/To/Install/root” subdirectory must

be different from the “/Where/You/Unpacked/The/Source/Code/Of/root”

subdirectory (i.e. in which you will build ROOT)

export ROOTSYS=/usr/local/root-6.02.04
./configure --enable-soversion --all > configure.out.txt 2>&1
make > make.out.txt 2>&1
sudo ROOTSYS=${ROOTSYS} make install >> make.out.txt 2>&1[/code]

Thank you for your attention!

So … Should I report this bug then?

Moreover I don’t understand whether you are suggesting that the installation actually worked out.

Lastly I’ve read that interesting post of yours you linked, and I must say that I do understand your point, but I’m not using root for anything but my personal enjoyment, so I don’t see me having version compatibility issues any time soon. Were I ever to use Root in a research/working environment I’ll remember it, I promise! Thus for curiosity’s sake I’d rather install the libraries at fixed location.

Well, I cannot guarantee it but, I think your ROOT installation is quite o.k. (even though you got this error).

However, remember that, if you install it with the “/usr/local” prefix then, you will need to “uninstall” it before you try to configure and build another (e.g. a newer) ROOT version, otherwise you may end up with a broken build (this would not be needed if you installed ROOT in a “version specific” subdirectory, of course).

BTW. If you use “–prefix”, remember to “unset ROOTSYS” in advance (before calling “configure” and “make”).

Actually I get the very same essor message as I try to run programs which include Root libraries, whilst compiling works just fine.

$ g++ main.C -o mine-histo -std=c++11 `root-config --cflags` `root-config --libs` $ ./mine-histo ./mine-histo: error while loading shared libraries: libCore.so.6.02: cannot open shared object file: No such file or directory

In your current (x)terminal, try to execute: . /usr/local/bin/thisroot.sh or try to: export LD_LIBRARY_PATH="/usr/local/lib/root:${LD_LIBRARY_PATH}" and then try to run “./mine-histo” again.

P.S. Well, you might also try to build your ROOT from scratch again using “–enable-soversion --rpath --all” configure flags (then you should not have any problems related to the “LD_LIBRARY_PATH” and everything that’s possible should be built).

Ok,

I am trying to compile and install ROOT 6.02.05 on UBUNTU 14.04. I use the “CMake” build system with the following options:

The following make command also runs without problems, however, when I do make install, I get the following message:

[code]CMake Error at core/rint/cmake_install.cmake:46 (FILE):
file INSTALL cannot find “/cern/root-6.02.05-build/lib/libRint.so”.
Call Stack (most recent call first):
core/cmake_install.cmake:58 (INCLUDE)
cmake_install.cmake:164 (INCLUDE)

make: *** [install] Error 1[/code]

In fact, the file /cern/root-6.02.05-build/lib/libRint.so does not exist (any more…). If I redo make, the file is there, and it seems to me it gets deleted during the make install procedure. I had a quick look at the core/rint/cmake_install.cmake file, but I am not expert enough on Cmake to fully understand what it is doing. However, if I commented the lines 42 - 44

FILE(RPATH_CHECK FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libRint.so" RPATH ""),
the /cern/root-6.02.05-build/lib/libRint.so was not deleted during the make install procedure (but then another .so-file was missing, and I would have to comment out all the relevant lines in all the cmake-files, not really knowing what I was doing and whether I break something by commenting the lines).

I don’t know if it is a bug in the ROOT install mechanism or if I am doing something wrong, but in any case I find it strange that after the make install, apparently libRint.so disappears.

Cheers,

Stefan

OK,

I just tried with version 6.06/02 on Ubuntu 14.04, and this time the installation seems to have worked.

Stefan