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  TFile* ipf = TFile::Open("root://hostname:port/path/file.root")
dlopen error: dlopen(/Users/jgennaro/root/lib/libNetx.so, 9): Library not loaded: /lib/libXrdClient.so
Referenced from: /Users/jgennaro/root/lib/libNetx.so
Reason: image not found
Load Error: Failed to load Dynamic link library /Users/jgennaro/root/lib/libNetx.so
Error in <TCint::AutoLoad>: failure loading library libNetx.so 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 http://xrootd.slac.stanford.edu/dload.html 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.