CentOS 7 Yum Dependency Error – How to Interpret

centoscentos7dependenciesxrdpyum

I'm trying to install XRDP and I'm hitting the following:

[root@box ~]# yum -y install xrdp
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: centos.serverspace.co.uk
 * epel: mirrors.coreix.net
 * extras: mirror.sov.uk.goscomb.net
 * updates: mirror.sov.uk.goscomb.net
Resolving Dependencies
--> Running transaction check
---> Package xrdp.x86_64 1:0.9.10-1.el7 will be installed
--> Processing Dependency: xrdp-selinux = 1:0.9.10-1.el7 for package: 1:xrdp-0.9.10-1.el7.x86_64
--> Processing Dependency: xorgxrdp for package: 1:xrdp-0.9.10-1.el7.x86_64
--> Running transaction check
---> Package xorgxrdp.x86_64 0:0.2.10-4.el7 will be installed
--> Processing Dependency: xorg-x11-server-Xorg(x86-64) = 1.20.4 for package: xorgxrdp-0.2.10-4.el7.x86_64
---> Package xrdp-selinux.x86_64 1:0.9.10-1.el7 will be installed
--> Finished Dependency Resolution
Error: Package: xorgxrdp-0.2.10-4.el7.x86_64 (epel)
           Requires: xorg-x11-server-Xorg(x86-64) = 1.20.4
           Installed: xorg-x11-server-Xorg-1.20.1-5.6.el7_6.x86_64 (@updates)
               xorg-x11-server-Xorg(x86-64) = 1.20.1-5.6.el7_6
           Available: xorg-x11-server-Xorg-1.20.1-3.el7.x86_64 (base)
               xorg-x11-server-Xorg(x86-64) = 1.20.1-3.el7
           Available: xorg-x11-server-Xorg-1.20.1-5.el7.x86_64 (updates)
               xorg-x11-server-Xorg(x86-64) = 1.20.1-5.el7
           Available: xorg-x11-server-Xorg-1.20.1-5.1.el7.x86_64 (updates)
               xorg-x11-server-Xorg(x86-64) = 1.20.1-5.1.el7
           Available: xorg-x11-server-Xorg-1.20.1-5.2.el7_6.x86_64 (updates)
               xorg-x11-server-Xorg(x86-64) = 1.20.1-5.2.el7_6
           Available: xorg-x11-server-Xorg-1.20.1-5.3.el7_6.x86_64 (updates)
               xorg-x11-server-Xorg(x86-64) = 1.20.1-5.3.el7_6
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

Now, I get that it's missing a dependency, however, it appears to be saying it requires xorg-x11-server-Xorg version 1.20.4.

It then continues to say version 1.20.1-5.6.el7_6 is installed.

From where I'm sitting, 4 is in the range 1-5 so I'm unclear what the issue is. They all seem to be for the right architecture.

Is 1-5 a version string in and of itself as opposed to a range, or -if not- what am I missing?

Solution: Thanks to @zigam's comment, here's a workaround:

Having the same issue, I installed manually archived xorgxrdp
yum -y install https://archive.fedoraproject.org/pub/archive/epel/7/x86_64/Packages/x/xorgxrdp-0.2.9-1.el7.x86_64.rpm
then
yum -y install xrdp and it works

Best Answer

The version of xorgxrdp currently in EPEL was built against RHEL 7.7, specifically against (among other packages) the xorg-x11-server-Xorg package version shipped in RHEL 7.7, but you are running CentOS 7.6.

It is not currently possible for you to install this package, until CentOS 7.7 is released. EPEL does not generally keep older versions of packages, so there is no older version of xorgxrdp to fall back on.

The last word I have seen (from yesterday) is that CentOS 7.7 is expected out "likely some time between 29 August to 6 September 2019." If you want to get early access, you can enable the CentOS CR repo, where the packages will be staged for a week or so prior to release. They should land in CR "early next week". See the comments in /etc/yum.repos.d/CentOS-CR.repo for an explanation of this repo.


How I figured out that the package was built on RHEL 7.7? I saw that the dependency it required had a higher version than any you had available. Based on this I suspected that the package needed a later RHEL version, as I have seen this sort of thing happen before in the weeks between a RHEL release and the corresponding CentOS release.

To confirm it, I looked on my nearest CentOS 7.6 system and saw the version number of xorg-x11-server-Xorg there was the same as that you had installed, and when I looked on a RHEL 7.7 system I saw the version number there was the same as the one it wanted as a dependency.