Opening root file over network


I’d like to be able to open a root file over the network. I am able on some machines to get this working using a rootd server and accessing TFile’s using statements such as:

On other machines, I encounter this kind of error:

root [0] TFile* ipf = TFile::Open("root://hostname:port/path/file.root") dlopen error: dlopen(/Users/jgennaro/root/lib/, 9): Library not loaded: /lib/ Referenced from: /Users/jgennaro/root/lib/ Reason: image not found Load Error: Failed to load Dynamic link library /Users/jgennaro/root/lib/ Error in <TCint::AutoLoad>: failure loading library for class TXNetSystem Error in <TPluginHandler::SetupCallEnv>: class TXNetSystem not found in plugin Netx Error in <TPluginHandler::SetupCallEnv>: class TXNetFile not found in plugin Netx

The error arises because the libXrdClient library is not installed on this machine. This particular error is on the following machine:

So now I’m seeking some advice.

Should I try to get this setup working by somehow installing the libXrdClient library locally? (If so, how can I do this? I’ve been to and downloaded the source, however I’m not familiar with cmake (the only configure method described in the documentation that I’ve found), and it doesn’t seem to come with OS X Lion. I’m guessing this server-level installation is more than would be required just to get a simple client-side library.

Alternatively, is there a way to get this working without having to use xrootd libraries on the client side? As I said I haven’t gotten xrootd running on my server (though I haven’t tried); starting the rootd daemon was fast and easy. I would like my colleagues to be able to use my software without having to install extra libraries as much as possible. If I reconfigure root using the option --disable-xrootd will I still be able to open TFile’s over the network from a rootd server?

How do you recommend I proceed? I’m not worried right now about high-performance or scalability - I just want to avoid needlessly duplicating ~100GB data files just to display events.



Hi Joe,



Thanks Philippe. I just wanted to come back and say, if anyone has a similar question to what I had, yes the right answer is to install xrootd. It was easy to install (for server and client), and so far works on every client machine I’ve tried.