1

I have a CentOS Linux release 7.9.2009 with a daily recurring email/problem, that I don't know how to solve. I get this email once a day:

The following updates will be applied on myserver.xyz:
================================================================================
Package                 Arch   Version                      Repository    Size
================================================================================
Installing:
nodejs-libs             x86_64 1:16.14.0-2.el7              epel          14 M
     replacing  v8.x86_64 1:3.14.5.10-25.el7
Updating:
MariaDB-client          x86_64 10.6.7-1.el7.centos          mariadb-main  14 M
MariaDB-common          x86_64 10.6.7-1.el7.centos          mariadb-main  81 k
MariaDB-compat          x86_64 10.6.7-1.el7.centos          mariadb-main 2.2 M
MariaDB-server          x86_64 10.6.7-1.el7.centos          mariadb-main  25 M
MariaDB-shared          x86_64 10.6.7-1.el7.centos          mariadb-main 113 k
galera-4                x86_64 26.4.11-1.el7.centos         mariadb-main 9.9 M
java-1.8.0-openjdk-headless
                         x86_64 1:1.8.0.322.b06-1.el7_9      updates       33 M
jotta-cli               x86_64 0.13.55213-2                 jotta-cli     10 M
libsmbclient            x86_64 4.10.16-18.el7_9             updates      146 k
libwbclient             x86_64 4.10.16-18.el7_9             updates      116 k
php                     x86_64 8.1.3-1.el7.remi             remi-php81   1.9 M
php-cli                 x86_64 8.1.3-1.el7.remi             remi-php81   5.9 M
php-common              x86_64 8.1.3-1.el7.remi             remi-php81   1.2 M
php-gd                  x86_64 8.1.3-1.el7.remi             remi-php81    97 k
php-ldap                x86_64 8.1.3-1.el7.remi             remi-php81    95 k
php-mysqlnd             x86_64 8.1.3-1.el7.remi             remi-php81   244 k
php-pdo                 x86_64 8.1.3-1.el7.remi             remi-php81   149 k
php-process             x86_64 8.1.3-1.el7.remi             remi-php81    98 k
php-sodium              x86_64 8.1.3-1.el7.remi             remi-php81    93 k
polkit                  x86_64 0.112-26.el7_9.1             updates      170 k
remi-release            noarch 7.9-3.el7.remi               remi-safe     23 k
samba                   x86_64 4.10.16-18.el7_9             updates      720 k
samba-client            x86_64 4.10.16-18.el7_9             updates      646 k
samba-client-libs       x86_64 4.10.16-18.el7_9             updates      5.0 M
samba-common            noarch 4.10.16-18.el7_9             updates      216 k
samba-common-libs       x86_64 4.10.16-18.el7_9             updates      182 k
samba-common-tools      x86_64 4.10.16-18.el7_9             updates      466 k
samba-libs              x86_64 4.10.16-18.el7_9             updates      271 k
v8-devel                x86_64 2:9.4.146.24-1.16.14.0.2.el7 epel         9.5 k
Installing for dependencies:
brotli                  x86_64 1.0.7-5.el7                  epel         318 k
brotli-devel            x86_64 1.0.7-5.el7                  epel          27 k
nodejs                  x86_64 1:16.14.0-2.el7              epel         206 k
nodejs-devel            x86_64 1:16.14.0-2.el7              epel         178 k
openssl11               x86_64 1:1.1.1k-2.el7               epel         692 k
openssl11-libs          x86_64 1:1.1.1k-2.el7               epel         1.5 M

Transaction Summary
================================================================================
Install   1 Package  (+6 Dependent packages)
Upgrade  29 Packages
Updates failed to install with the following error message: 
Could not run transaction.

Could not run transaction seems to be the only error, but that does not reveal much!?

I have tried yum clean all, but same problem the following day.

The error is probably related to another error, coming as an email at the same time:

Anacron job 'cron.daily' on myserver.xyz

/etc/cron.daily/0yum-daily.cron:

Transaction couldn't start:
file /usr/lib64/libbrotlicommon.so.1 from install of brotli-1.0.7-5.el7.x86_64 conflicts with file from package libbrotli-1.0.9-1.codeit.el7.x86_64
file /usr/lib64/libbrotlidec.so.1 from install of brotli-1.0.7-5.el7.x86_64 conflicts with file from package libbrotli-1.0.9-1.codeit.el7.x86_64
file /usr/lib64/libbrotlienc.so.1 from install of brotli-1.0.7-5.el7.x86_64 conflicts with file from package libbrotli-1.0.9-1.codeit.el7.x86_64

yum repolist gives this output:

Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.netsite.dk
 * epel: mirror.netsite.dk
 * extras: mirror.netsite.dk
 * remi-php81: mirror.dk.team.blue
 * remi-safe: mirror.dk.team.blue
 * updates: mirror.netsite.dk
repo id                                                   repo name                                                                                               status
base/7/x86_64                                             CentOS-7 - Base                                                                                         10,060+12
epel/x86_64                                               Extra Packages for Enterprise Linux 7 - x86_64                                                             13,733
extras/7/x86_64                                           CentOS-7 - Extras                                                                                             500
jotta-cli                                                 Jottacloud CLI                                                                                                 24
mariadb                                                   MariaDB                                                                                                        88
mariadb-main                                              MariaDB Server                                                                                                 94
mariadb-maxscale                                          MariaDB MaxScale                                                                                                4
mariadb-tools                                             MariaDB Tools                                                                                                  15
remi-php81                                                Remi's PHP 8.1 RPM repository for Enterprise Linux 7 - x86_64                                                 285
remi-safe                                                 Safe Remi's RPM repository for Enterprise Linux 7 - x86_64                                                  4,696
updates/7/x86_64                                          CentOS-7 - Updates                                                                                        3,413+1
repolist: 32,912

yum list installed | grep brotli gives this output:

libbrotli.x86_64                    1.0.9-1.codeit.el7             @CodeIT

cat /etc/cron.daily/0yum-daily.cron gives this output:

#!/bin/bash

# Only run if this flag is set. The flag is created by the yum-cron init
# script when the service is started -- this allows one to use chkconfig and
# the standard "service stop|start" commands to enable or disable yum-cron.
if [[ ! -f /var/lock/subsys/yum-cron ]]; then
  exit 0
fi

# Action!
exec /usr/sbin/yum-cron

I assume(?) that this could be because brotli uses the @CodeIT repository, but I have no such repository listed in the yum repolist? I don't remember when I changed these repositories, but was probably related to PHP or MariaDB.

Does anyone have a hint to what this could be and how to fix it?

### UPDATE 1 ###

I have updated to question the answer proposed. This is what I get when running yum remove libbrotli-1.0.9-1.codeit.el7.x86_64:

[root@myserver ~]# yum remove libbrotli-1.0.9-1.codeit.el7.x86_64
Loaded plugins: fastestmirror, langpacks
Resolving Dependencies
--> Running transaction check
---> Package libbrotli.x86_64 0:1.0.9-1.codeit.el7 will be erased
--> Processing Dependency: libbrotlienc.so.1()(64bit) for package: httpd-2.4.51-1.codeit.el7.x86_64
--> Running transaction check
---> Package httpd.x86_64 0:2.4.51-1.codeit.el7 will be erased
--> Processing Dependency: httpd = 2.4.51-1.codeit.el7 for package: 1:mod_ssl-2.4.51-1.codeit.el7.x86_64
--> Processing Dependency: httpd = 2.4.51-1.codeit.el7 for package: httpd-manual-2.4.51-1.codeit.el7.noarch
--> Processing Dependency: httpd-mmn = 20120211x8664 for package: mod_fcgid-2.3.9-6.el7.x86_64
--> Processing Dependency: httpd-mmn = 20120211x8664 for package: mod_http2-1.15.24-2.codeit.x86_64
--> Processing Dependency: httpd-mmn = 20120211x8664 for package: php-8.1.2-1.el7.remi.x86_64
--> Processing Dependency: httpd-mmn = 20120211x8664 for package: 1:mod_ssl-2.4.51-1.codeit.el7.x86_64
--> Running transaction check
---> Package httpd-manual.noarch 0:2.4.51-1.codeit.el7 will be erased
---> Package mod_fcgid.x86_64 0:2.3.9-6.el7 will be erased
---> Package mod_http2.x86_64 0:1.15.24-2.codeit will be erased
---> Package mod_ssl.x86_64 1:2.4.51-1.codeit.el7 will be erased
--> Processing Dependency: mod_ssl for package: python2-certbot-apache-1.11.0-1.el7.noarch
---> Package php.x86_64 0:8.1.2-1.el7.remi will be erased
--> Running transaction check
---> Package python2-certbot-apache.noarch 0:1.11.0-1.el7 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

===========================================================================================================================================================================
 Package                                         Arch                            Version                                        Repository                            Size
===========================================================================================================================================================================
Removing:
 libbrotli                                       x86_64                          1.0.9-1.codeit.el7                             @CodeIT                              768 k
Removing for dependencies:
 httpd                                           x86_64                          2.4.51-1.codeit.el7                            @CodeIT                              4.3 M
 httpd-manual                                    noarch                          2.4.51-1.codeit.el7                            @CodeIT                              7.2 M
 mod_fcgid                                       x86_64                          2.3.9-6.el7                                    @base                                228 k
 mod_http2                                       x86_64                          1.15.24-2.codeit                               @CodeIT                              535 k
 mod_ssl                                         x86_64                          1:2.4.51-1.codeit.el7                          @CodeIT                              254 k
 php                                             x86_64                          8.1.2-1.el7.remi                               @remi-php81                          5.7 M
 python2-certbot-apache                          noarch                          1.11.0-1.el7                                   @epel                                578 k

Transaction Summary
===========================================================================================================================================================================
Remove  1 Package (+7 Dependent packages)

I will for sure not remove the httpd 2.4.51-1 and the php 8.1.2-1, as I need those. As they are the latest-and-greatest versions, then I assume they are not included in the RHEL repo?

So I expect I will not easily be able to fix this problem, unless I want to go back to the older versions for these?

### UPDATE 2 WITH MY SOLUTION ###

I am not sure this is a general fix, but it solved it for me. I may have had a repo misconfiguration.

First I checked my active repos with yum repolist and I could see that I was missing the CodeIT repo so I reinstalled it with this solution from How to Install The Latest Apache Server (httpd) on Centos 7:

cd /etc/yum.repos.d && wget https://repo.codeit.guru/codeit.el`rpm -q --qf "%{VERSION}" $(rpm -q --whatprovides redhat-release)`.repo

I then tried a yum update and to my surpise it worked and it could update without problems.

I then noticed that my PHP was not updating, so I also reinstalled the repo for that, as seen from here, How To Install PHP 8.1 on CentOS 7|RHEL 7:

yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --disable 'remi-php*'
yum-config-manager --enable remi-php81

And then again I did another yum update and suddenly it updated the PHPO to the newest 8.1 version :-)

Maybe others can use this for inspiration for what to check.

1 Answer 1

2

The package 'brotli-1.0.7-5.el7.x86_64' is from the EPEL repository: https://centos.pkgs.org/7/epel-x86_64/brotli-1.0.7-5.el7.x86_64.rpm.html

Based on the yum update output, this dependency being pulled in by the 'v8-devel' package, which pulls in 'nodejs-devel' and then 'brotli-devel'.

'libbrotli-1.0.9-1.codeit.el7.x86_64' is from the repository hosted by CodeIT: https://repo.codeit.guru/packages/centos/7/x86_64/

The repository seems to provide special builds of web servers - Apache HTTPD & Nginx.

Both packages provide the conflicting shared libraries: libbrotlicommon.so.1 libbrotlidec.so.1, libbrotlienc.so.1. yum is unable to resolve this conflict, so it errors out.

As far as I am aware, there is no easy way to solve a situation like this. You will have to remove the existing package to install the EPEL one. Of course, that will also force the removal of any packages that depend on it. yum remove libbrotli-1.0.9-1.codeit.el7.x86_64 will show you the impacted packages (it won't actually remove the package until you confirm).

3
  • Please view my updated post. Do you think this can this be solved?
    – Beauvais
    Feb 21, 2022 at 16:20
  • @Beauvais Among the 7 dependent packages, 4 are from the CodeIT repo. I don't see a way to retain them. The remaining 3 are from other repos, that have a dependency on the brotli libraries. Those could be fixed with a reinstall - they can fulfil the dependency using the EPEL version of the brotli library. Though as you have noted, this may mean going back to an earlier version of the package.
    – Haxiel
    Feb 22, 2022 at 15:28
  • As a more general note, RHEL (and CentOS) are both distros catering to enterprise needs, so they have a focus on long-term stability. Fixes are usually backported, but new features and latest versions are made available very rarely. If you want to stay on the newest versions and features, you can also consider looking at another distro.
    – Haxiel
    Feb 22, 2022 at 15:37

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .