I am trying to install root 6.28.04 from source on ubuntu 20.04 but I get this error:
error: expected nested-name-specifier before ‘TBufferMergerFile
and installation terminates
The reason why I am installing root from source and not a precompiled distribution is because libdelphes is not installed in the precompiled dist and I get this error:
fatal error: ‘libDelphes’ file not found
Hi @ymahmoud ,
Our precompiled binaries work on ubuntu20.04, I am not sure what libDelphes has to do with it. Irrespective of that, you could always install ROOT via conda Installing ROOT - ROOT (see this post for a faster installation).
Cheers,
Vincenzo
Thank you @vpadulan !
The problem is I get an error when using mamba or conda that looks like this when I run root:
error: unsupported option ‘–ptrcheck’
Warning in cling::IncrementalParser::CheckABICompatibility():
Possible C++ standard library mismatch, compiled with GLIBCXX ‘20200808’
Extraction of runtime standard library version was: ‘20220628’
terminate called after throwing an instance of ‘std::logic_error’
what(): basic_string::_M_construct null not valid
Dear @ymahmoud ,
I think you are using a different conda/Python environment when using ROOT w.r.t. the conda/Python environment you used to install ROOT.
This is how I installed and used ROOT on a fresh ubuntu 20.04 docker image:
$: docker run --rm -it ubuntu:20.04
$: apt-get update && apt-get install curl
$: curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-$(uname)-$(uname -m).sh"
$: bash Mambaforge-$(uname)-$(uname -m).sh -b
$: source /root/mambaforge/bin/activate
$: mamba create -n myenv root
$: conda activate myenv
$: python
>>> import ROOT
[ some unexpected warning here, but not breaking ROOT functionality ]
/root/mambaforge/envs/myenv/etc/cling/std.modulemap:257:29: warning: unknown attribute 'optional' [-Wignored-attributes]
>>> ROOT.RDataFrame(100).Count().GetValue()
100
I wasn’t expecting the warning from cling, and I opened a github issue to track it, but it should definitely not tell you about the standard C++ library mismatch.
Cheers,
Vincenzo
As I said, are you sure you are using the same environment for both installing and using ROOT? This is really something generic, for every package you use you should make sure you have the same environment.
Cheers,
Vincenzo