Error while installing root6.08.06 on Debian 9 Stretch

I’m trying to install root on my news OS debian 9. So I downloaded the root file root_v6.08.06.source.tar.gz on root website and then I met :
sudo ./configue and then
sudo make -j4

While the setup was almost completed and get this error

g++ -O2 -DNDEBUG -pipe -m64 -std=c++11 -Wshadow -Wall -W -Woverloaded-virtual -fPIC -Iinclude -pthread -MMD -MP -I. -o hist/hist/src/G__Hist.o -c hist/hist/src/G__Hist.cxx ==> lib/ done g++ -pipe -m64 -std=c++11 -Wshadow -Wall -W -Woverloaded-virtual -fPIC -Iinclude -pthread -MMD -MP -I. -o tree/tree/src/G__Tree.o -c tree/tree/src/G__Tree.cxx ==> lib/ done g++ -shared -Wl,-soname, -m64 -O2 -DNDEBUG -Wl,--no-undefined -Wl,--as-needed -o lib/ math/physics/src/TLorentzVector.o math/physics/src/TVector3.o math/physics/src/TQuaternion.o math/physics/src/TFeldmanCousins.o math/physics/src/TRotation.o math/physics/src/TRolke.o math/physics/src/TLorentzRotation.o math/physics/src/TGenPhaseSpace.o math/physics/src/TRobustEstimator.o math/physics/src/TVector2.o math/physics/src/G__Physics.o -Llib -lCore -ldl -Llib -lMatrix -lMathCore /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libgslcblas.a(xerbla.o): relocation R_X86_64_PC32 against symbolstderr@@GLIBC_2.2.5’ can not be used when making a shared object; recompilez avec -fPIC
/usr/bin/ld : échec de l’édition de liens finale : Mauvaise valeur
collect2: error: ld returned 1 exit status
/home/orly/Documents/root/math/mathmore/ : la recette pour la cible « lib/ » a échouée
make: *** [lib/] Erreur 1
make: *** Attente des tâches non terminées…
==> lib/ done

I don’t know how to completed installation. Some idea ?

Hi, considering it has been out less than 24 hours, you might be one of the first people trying to install ROOT on Debian Stretch. There might be system compatibility problems we are not aware of (consider Debian is not an officially supported OS, although I have been running ROOT on Debian 8 with zero issues).

As a first try, you could make sure to start from a clean source directory and switch to cmake instead of configure+make, as the latter build method is deprecated. Build instructions are here (make sure you have all pre-requisites installed). In short you want to create a separate build directory for ROOT and then execute

cmake [-DCMAKE_INSTALL_PREFIX=path/to/install/dir] path/to/root
cmake --build . -- -j4 [install]

(the parts in square brackets only if you want a separate installation directory). Let us know if you encounter the same problem.

1 Like

Thanks everything is Ok with the use of cmake.
I always installed it via the ./configure and then make -j4 on debian Jessie and it always worked. I do not know why there I have to go through the cmake.
And now, the next step is to install Geant4. Usually it’s super simple but, I think I’m going to have big problem.

Good, so I’ll switch to the new stable soon as well :stuck_out_tongue:

I think something is really wrong.
my root6 installation suceed. But when I trying to compile my last program, I get some error particularly with the 2D histo. I get this

with my new root6.08.06 version instead of

with my preview root5.34.36 version
So I tried to install root5.34.36 with cmake method and I get this error

[ 33%] Linking CXX shared library …/…/lib/
[ 33%] Built target MathCore
Makefile:151 : la recette pour la cible « all » a échouée
make: *** [all] Erreur 2
This error look like the

This error is very similar to the one obtained previously by installing root6 via the ./configure method

I also tried with the ./configure then make -j4 method and I also had and error (different error).

Some idea please ?

Blank canvases are usually sign of a problem with the lifetime of the drawn object.

Without looking at the code, my best guess is that 5.34 was helping you out by doing something not completely correct under the hood. As a test, you can try to make sure that your TH2 is alive and well when you draw it on the canvas (e.g. instantiate it on the heap and never delete it). If this recovers canvas, you can then backtrack what was wrong with the TH2 lifetime in your original code.

1 Like

Thank you eguiraud for your answer that really helped me. And sorry to respond so late, I was working on another project. It was finally a trivial mistake in my program as you anticipated.
But the error obtained when installing root5.34 persists. Well, it’s not bad if I can use it without problems.

Move to ROOT 6 and don’t look back :slight_smile: It is better in every sense of the word.

I will do it when I start a new project. Because for now I tried but everything is different I have to change a lot of things in the configurations to have the same graph rendering, and I do not have too much time for that now.

For all those who have problems installing root5 on Debian 9 (Stretch).
Hello, I understand why I had problems installing root5. In fact there are several libraries in the installation of root5 which do not take into account the version of my gcc (6.3) which is the default on Debian 9 (Stretch). On the other hand, root5 works very well on debian 8 (Jessie) which uses gcc4.9. For example, I modified the $ ROOTSYS / cint / cint / file by adding options that take GCC6 into account. There is also an incompatibility with some fortran libraries, some libraries claimed by root5 no longer hesitate in the new fortran installed under debian 9. You can mitigate this by using the -Dfortran = OFF option if you do not expect to have To do at fortran.
In any case if you have to migrate on debian stretch, it will be a galley to install root5. Nothing could be simpler than using root6 as suggested by eguiraud. The better ways is to install it via cmake.
Best regards

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.