CERN Accelerating science

Unable to install eos-client on the Ubuntu Bionic

Hi there,
Added two repos for apt as described in Debian/Ubuntu installation — EOS CITRINE documentation

deb [arch=amd64] http://storage-ci.web.cern.ch/storage-ci/debian/xrootd/ bionic release
deb [arch=amd64] http://storage-ci.web.cern.ch/storage-ci/debian/eos/citrine/ bionic tag

but could not install eos-client likely due to the broken dependencies:

$ sudo apt-get install eos-client
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 eos-client : Depends: libxrootd-client-dev (= 4.12.8) but 5.1.1 is to be installed
              Depends: xrootd-plugins (= 4.12.8) but 5.1.1 is to be installed
E: Unable to correct problems, you have held broken packages.

I tried to set explicit version to it, and it resolved dependencies then:

$ sudo apt-get install eos-client=4.8.39
...

But something remains broken though:

$ sudo apt-get upgrade 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  eos-client
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.

UPD and now, eos client just doesn’t work:

$ eos
eos: error while loading shared libraries: libXrdPosix.so.2: cannot open shared object file: No such file or directory

I also found that libxrdposix2 installed those files (v3 instead of v2):

/usr/lib/x86_64-linux-gnu/libXrdPosix.so -> libXrdPosix.so.3
/usr/lib/x86_64-linux-gnu/libXrdPosix.so.3 -> libXrdPosix.so.3.0.0
/usr/lib/x86_64-linux-gnu/libXrdPosix.so.3.0.0

The full list of missed libs:

$ ldd /usr/bin/eos | grep 'not found' | sort | uniq
	libXrdCl.so.2 => not found
	libXrdPosix.so.2 => not found
	libXrdUtils.so.2 => not found

That’s likely due to it installed libxrd* packages of version 5.1.1 (dependency rule for eos client 4.8.39 is xrootd-plugins (>= 4.12.7) and so on), and I’m not sure the libxrd-*/xrootd-* of 5.x version were assumed here…

Hello Timur, yout got it right, it comes from xrootd version mismatches.

Could you prune the machine from eos and xrootd packages first, and start from scratch?
Then proceed as follows:

  1. Configure APT repositories to install the software:

echo “deb [arch=(dpkg --print-architecture)] http://storage-ci.web.cern.ch/storage-ci/debian/xrootd/ (lsb_release -cs) release” | sudo tee -a /etc/apt/sources.list.d/cerneos-client.list > /dev/null

echo “deb [arch=(dpkg --print-architecture)] http://storage-ci.web.cern.ch/storage-ci/debian/eos/citrine/ (lsb_release -cs) tag” | sudo tee -a /etc/apt/sources.list.d/cerneos-client.list > /dev/null
curl -sL http://storage-ci.web.cern.ch/storage-ci/storageci.key | sudo apt-key add -

  1. Since xrootd5 has been released, you need to version-lock xrootd packages to 4.12.<x> (apt is designed to always install the lastest version available). This will we softened in future releases, sorry for the temporary inconvenience. e.g. You may want to:

echo -e “Package: xrootd* libxrd* libxrootd*\nPin: version 4.12.8\nPin-Priority: 1000” > /etc/apt/preferences.d/xrootd.pref

Note: Alternatively, to lock on xrootd versions 4.12.*, you may want to replace the xrootd ‘release’ repository with the ‘stable’ xrootd repository. e.g.:

echo “deb [arch=(dpkg --print-architecture)] http://storage-ci.web.cern.ch/storage-ci/debian/xrootd/ (lsb_release -cs) stable-4.12.x” | sudo tee -a /etc/apt/sources.list.d/cerneos-client.list > /dev/null

  1. Then, install the required packages

apt update
apt install eos-client eos-fusex

Let us know it this works out,

Cheers,
Fabio

echo “deb [arch=(dpkg --print-architecture)] http://storage-ci.web.cern.ch/storage-ci/debian/xrootd/ (lsb_release -cs) stable-4.12.x” | sudo tee -a /etc/apt/sources.list.d/cerneos-client.list > /dev/null

Yeah, that’s exactly what I’ve tried at first, but libxrd* of 4.12.8 versions don’t seem to be listed in the appropriate Packages file. Confirming that eos.list’s content is correct:

deb [arch=amd64] http://storage-ci.web.cern.ch/storage-ci/debian/eos/citrine/ bionic tag
deb [arch=amd64] http://storage-ci.web.cern.ch/storage-ci/debian/xrootd/ bionic stable-4.12.x

Let’s go on

$ sudo apt install eos-client
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 eos-client : Depends: libxrootd-client-dev (= 4.12.8) but it is not going to be installed
              Depends: xrootd-plugins (= 4.12.8) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Hi Timur,

I realize now that the xrootd repo at

deb [arch=amd64] http://storage-ci.web.cern.ch/storage-ci/debian/xrootd/ bionic stable-4.12.x

actually is not containing tagged releases; I will ping the xrootd devs to know more about it.
Would you mind trying again the first one instead?

deb [arch=amd64] http://storage-ci.web.cern.ch/storage-ci/debian/xrootd/ bionic release

Note “release” vs “stable-4.12.x” .

You may want to clean the apt cache before proceeding

apt clean

Just in case, I tried to reproduce it in a fresh ubuntu bionic machine, the following script worked smooth for me:

# clean apt cache
apt clean

# install utilities
apt update
apt install sudo nano curl lsb-release gnupg

# config xrootd and eos repos
echo "deb [arch=$(dpkg --print-architecture)] http://storage-ci.web.cern.ch/storage-ci/debian/xrootd/ $(lsb_release -cs) release" | sudo tee -a /etc/apt/sources.list.d/cerneos-client.list > /dev/null
echo "deb [arch=$(dpkg --print-architecture)] http://storage-ci.web.cern.ch/storage-ci/debian/eos/citrine/ $(lsb_release -cs) tag" | sudo tee -a /etc/apt/sources.list.d/cerneos-client.list > /dev/null
curl -sL http://storage-ci.web.cern.ch/storage-ci/storageci.key | sudo apt-key add -

# Pin xrootd version
echo -e "Package: xrootd* libxrd* libxrootd*\nPin: version 4.12.8\nPin-Priority: 1000" > /etc/apt/preferences.d/xrootd.pref

# install the eos client
apt update
apt install eos-client eos-fusex
1 Like