Dependency hell. This is ridicuylous

Red Squirrel

No Lifer
May 24, 2003
71,313
14,085
126
www.anyf.ca
A dependency depends on... ITSELF. WTF?

Code:
[root@appdev mysql++]# yum install mysql-devel
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: mirror.csclub.uwaterloo.ca
 * centosplus: centos.mirror.netelligent.ca
 * extras: centos.mirror.rafal.ca
 * updates: centos.mirror.rafal.ca
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package mysql-devel.x86_64 0:5.1.73-3.el6_5 will be installed
--> Processing Dependency: mysql = 5.1.73-3.el6_5 for package: mysql-devel-5.1.73-3.el6_5.x86_64
--> Finished Dependency Resolution
Error: Package: mysql-devel-5.1.73-3.el6_5.x86_64 (base)
           Requires: mysql = 5.1.73-3.el6_5
           Installed: mysql-5.5.38-1.el6.remi.x86_64 (@remi)
               mysql = 5.5.38-1.el6.remi
           Available: mysql-5.1.73-3.el6_5.x86_64 (base)
               mysql = 5.1.73-3.el6_5
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest
[root@appdev mysql++]# 
[root@appdev mysql++]# 
[root@appdev mysql++]# yum install mysql-devel --skip-broken
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: mirror.csclub.uwaterloo.ca
 * centosplus: centos.mirror.netelligent.ca
 * extras: centos.mirror.rafal.ca
 * updates: centos.mirror.rafal.ca
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package mysql-devel.x86_64 0:5.1.73-3.el6_5 will be installed
--> Processing Dependency: mysql = 5.1.73-3.el6_5 for package: mysql-devel-5.1.73-3.el6_5.x86_64

Packages skipped because of dependency problems:
    mysql-devel-5.1.73-3.el6_5.x86_64 from base
[root@appdev mysql++]#

So let me get this straight, mysql-devel needs to be installed so I can install... mysql-devel. What in the world? They seriously need to fix this bull crap.

Is there any way around this? OS is CentOS 6.5. I'm trying to get Mysql++ to work. I think I'm just going to rewrite my program to write queries to a php file and execute them through php and then get the result, or write my own mysql connector. It's ridiculous how hard they make this.
 

dealcorn

Senior member
May 28, 2011
247
4
76
I am not familiar with Yum. Does Yum say mysql-devel.x86_64 0:5.1.73-3.el6_5 is compatible with mysql-5.1.73-3.el6_5 but is not compatible with your installation of mysql-5.5.38-1.el6.remi.x86_64? Do you want to regress mysql to the compatible 5.1.73-3.el6_5 version?
 

Skaendo

Senior member
Sep 30, 2014
339
0
76
If mysql is not already installed it must be installed first.
I believe mysql-devel is just development header files and libraries.
 

mundane

Diamond Member
Jun 7, 2002
5,603
8
81
Another 'not familiar with Yum' voice here, but agreed, it looks as if you've installed a non-standard version of the base mysql package, while the version mysql-dev from your main repository requires an older version.

A quick google returns a ServerFault question, which suggests

yum --enablerepo=remi,remi-test install mysql-devel

may get you what you need.
 

Red Squirrel

No Lifer
May 24, 2003
71,313
14,085
126
www.anyf.ca
Yeah mysql is installed. I have whatever comes with CentOs, so nothing really non standard.

The command:

yum --enablerepo=remi,remi-test install mysql-devel

Did work though, thanks! Though, it also installed mysql... does this mean I will have two mysqls? This could get problematic. Everything seems to be ok though... all my databases are still there.
 

Scarpozzi

Lifer
Jun 13, 2000
26,392
1,780
126
Error: Package: mysql-devel-5.1.73-3.el6_5.x86_64 (base)
Requires: mysql = 5.1.73-3.el6_5
Installed: mysql-5.5.38-1.el6.remi.x86_64 (@remi)
mysql = 5.5.38-1.el6.remi
Available: mysql-5.1.73-3.el6_5.x86_64 (base)
mysql = 5.1.73-3.el6_5

Notice the parenthesis... (base) and (@remi). Those are the repos. CentOS has a few repos that they maintain for their code. When you installed mysql, you installed it from (@remi). More than likely, this was because you needed a newer version than what came with the version of CentOS you're on.

When CentOS and RedHat are packaged, they come with base versions: Example.... mysql 5.1 or 5.5.... When CentOS goes from version 6 to 6.1 to 6.2 to 6.5, etc the package versions provided with those versions change. So you'll go from mysql 5 to 5.1 to 5.5... The versions of php, apache, ssl, just about everything will change.....whatever's available and stable at the time. The only thing the repos then do is maintain THOSE @release versions for security patches and bug fixes. As you run yum update, you'll get the security patches, but will stay on the same major/minor version.

So....for your mysql 5.5 installation. If you did the install yourself, you installed it from the (@remi) repo by following a guide somewhere....or you installed an application that required a newer mysql version than what (base) provided....

I rarely have dependency issues with yum that can't be worked through. The old days of using straight rpm got a little scary when dealing with vendor software that relied on antiquated packages that weren't provided in the base RedHat repos. Mostly, it was to provide backwards compatibility to some old core Unix systems... The worst part was having to document the packages and their dependencies in a way that I could reinstall them in the future if I ever needed to. Things have been much better since RedHat/CentOS 5. Most vendors have adopted support for RedHat and rely on prepackaged standards.
 
Last edited:

Red Squirrel

No Lifer
May 24, 2003
71,313
14,085
126
www.anyf.ca
So is best bet to disable all other repositories then? It sounds like this can be a pretty big screw up. Did not even know there was more than one.
 

TheRyuu

Diamond Member
Dec 3, 2005
5,479
14
81
Obligatory post complaining about rpm package management and metapackage hell.

(P.S. Debian 4 life)
 

mv2devnull

Golden Member
Apr 13, 2010
1,539
169
106
One can live with RPM/YUM (and die by "did not know"). Well, that implies that not knowing the Debian way is a form of slow, gruesome death ...


Yes, the use of third-party repositories requires the "know what you are doing" and keeping them disabled by default is usually a good thing. Depends on what they provide.

RedHat/CentOS 6 includes mysql 5.1.

Software Collections (SCL) from RedHat (available for CentOS as "scl" repo; not part of base) has mysql55 and mariadb55 that can be co-installed with the base mysql-5.1. The SCL is relatively new.