Hi, I’m having trouble building root from the source. I’m following the instructions here. Building ROOT from source - ROOT
The problem seems to associate with XROOTD package download.
Here are (I think) the related error messages from the log:
CMake Error at XROOTD-stamp/download-XROOTD.cmake:170 (message):
Each download failed!
error: downloading 'http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/sources/xrootd-4.10.0.tar.gz' failed
status_string: "Unsupported protocol"
--- LOG BEGIN ---
Connected to lcgpackages.web.cern.ch (126.96.36.199) port 80 (#0)
GET /lcgpackages/tarFiles/sources/xrootd-4.10.0.tar.gz HTTP/1.1
Mark bundle as not supporting multiuse
HTTP/1.1 302 Found
Connection #0 to host lcgpackages.web.cern.ch left intact
--- LOG END ---
If it’s just a package issue. I’m also wondering if I could just install it before building root to get around the problem. Thanks!
Please read tips for efficient and successful posting and posting code
Platform: Ubuntu 16.04
Compiler: cmake 3.19.3 gnu5.5.0 for C and CXX
Hi @whale ,
unless you have very specific needs we typically suggest to use one of the other installation methods listed at Installing ROOT - ROOT and only build ROOT from source if other installation means don’t fit the bill.
About the actual build error: is the machine maybe behind a firewall or a proxy of some sort?
If you don’t need xrootd (i.e. network I/O) support, you can build ROOT with
-Dxrootd=OFF. Otherwise you can also install xrootd in your system separately (e.g. as a system package) and then the ROOT build will pick up the system package instead of trying to download and build xrootd as part of the ROOT build.
I hope this helps!
Thank you @eguiraud ,
The reason I’d like to build from source is that I hope to import ROOT from python3. I used a binary 6.22 before but that seems to only support python2.
Indeed the machine I used for installation is behind a firewall!
I am not familiar with this xrootd and I’m not sure if I am going to need network I/O (possibly not?)… So here’s a dumb question. What’s the name of the package, exactly. I tried sudo apt install xrootd (or libxrootd) and the package was not found on Ubuntu 16.04.
Maybe @eguiraud can confirm, but I think installing via conda should give you Python3 support. You can find the instructions here: Installing ROOT - ROOT
You can check here: Ubuntu – Package Search Results -- xrootd.
Thank you @jalopezg
I decided to install root using conda for the sake of simplicity. Now I have a working root installation (and python seems to work)
However, some programs I’ve been using (also depend on root) now fail to compile which seems to relate with anaconda’s gcc/g++ library interfering with my /usr/lib. Not a root problem I suppose… Oh well. Since, this is not a conda forum I’ll possibly directly those questions elsewhere.
One common problem is with parts of the toolchain coming from the system and parts from conda.
If you are using cmake (or maybe even just make), make sure that’s also coming from conda and specifically frm the
conda-forge channel (same goes for the compiler).
Usually things work fine for me when I create the environment with
conda create -n cern-root -c conda-forge root cmake make and then build cmake projects that depend on ROOT.
You can also search this forum for the error message, it could be that someone already encountered a similar problem.
Thanks for your reply. I found a report with exactly the same error message here. "error: '::timespec_get' has not been declared" with conda root package - #8 by kkrizka. In my case, I suspect there are packages in the conda environment not from conda-forge. This command
conda upgrade -c conda-forge --all solves my problem. Credit to @bfontana
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.