Re: Bug in yum-skip-broken (was : yum doesn't look for provides on packages to be installed)
Tim Lauridsen <[email protected]>
| Newsgroups | gmane.linux.rpm.yum |
|---|---|
| Message-ID | <[email protected]> |
Fajar A. Nugraha wrote: > Tim Lauridsen wrote: > >> On Wed, 2007-10-10 at 09:10 +0700, Fajar A. Nugraha wrote: >> >> >>> However, with skip-broken activated : >>> >>> # yum --skip-broken install MySQL-shared MySQL-shared-compat >>> MySQL-client MySQL-server >>> Loading "priorities" plugin >>> Loading "installonlyn" plugin >>> Loading "skip-broken" plugin >>> logos 100% |=========================| 951 B 00:00 >>> dag 100% |=========================| 951 B 00:00 >>> centos 100% |=========================| 951 B 00:00 >>> testing 100% |=========================| 951 B 00:00 >>> base 100% |=========================| 1.1 kB 00:00 >>> updates 100% |=========================| 1.1 kB 00:00 >>> mysql 100% |=========================| 951 B 00:00 >>> local 100% |=========================| 951 B 00:00 >>> 3670 packages excluded due to repository priority protections >>> Setting up Install Process >>> Parsing package install arguments >>> Resolving Dependencies >>> **** Checking packages for dependency problems >>> **** Checking for dep problems : MySQL-client - 5.0.45-0.glibc23.x86_64 >>> --> Running transaction check >>> ---> Package MySQL-client.x86_64 0:5.0.45-0.glibc23 set to be updated >>> --> Processing Dependency: libmysqlclient.so.15()(64bit) for package: >>> MySQL-client >>> --> Processing Dependency: perl(DBI) for package: MySQL-client >>> --> Processing Dependency: >>> libmysqlclient.so.15(libmysqlclient_15)(64bit) for package: MySQL-client >>> --> Running transaction check >>> ---> Package mysql.x86_64 0:5.0.22-2.1.0.1 set to be updated >>> ---> Package perl-DBI.x86_64 0:1.52-1.fc6 set to be updated >>> --> Finished Dependency Resolution >>> **** OK : mysql.x86_64 0-5.0.22-2.1.0.1 - u >>> **** OK : perl-DBI.x86_64 0-1.52-1.fc6 - u >>> **** OK : MySQL-client.x86_64 0-5.0.45-0.glibc23 - u >>> **** Checking for dep problems : MySQL-shared-compat - >>> 5.0.45-0.glibc23.x86_64 >>> --> Running transaction check >>> ---> Package MySQL-shared-compat.x86_64 0:5.0.45-0.glibc23 set to be updated >>> --> Finished Dependency Resolution >>> **** OK : MySQL-shared-compat.x86_64 0-5.0.45-0.glibc23 - u >>> **** Checking for dep problems : MySQL-server - 5.0.45-0.glibc23.x86_64 >>> --> Running transaction check >>> ---> Package MySQL-server.x86_64 0:5.0.45-0.glibc23 set to be updated >>> --> Processing Dependency: libmysqlclient.so.15()(64bit) for package: >>> MySQL-server >>> --> Processing Dependency: >>> libmysqlclient.so.15(libmysqlclient_15)(64bit) for package: MySQL-server >>> --> Processing Dependency: perl(DBI) for package: MySQL-server >>> --> Running transaction check >>> ---> Package mysql.x86_64 0:5.0.22-2.1.0.1 set to be updated >>> ---> Package perl-DBI.x86_64 0:1.52-1.fc6 set to be updated >>> --> Processing Conflict: mysql conflicts MySQL >>> --> Finished Dependency Resolution >>> **** Failed >>> **** mysql conflicts with MySQL >>> **** Packages with dependency resolving errors >>> **** MySQL-server - 5.0.45-0.glibc23.x86_64 >>> **** 2 >>> **** End Checking packages for dependency problems >>> --> Running transaction check >>> ---> Package mysql.x86_64 0:5.0.22-2.1.0.1 set to be updated >>> ---> Package perl-DBI.x86_64 0:1.52-1.fc6 set to be updated >>> ---> Package MySQL-client.x86_64 0:5.0.45-0.glibc23 set to be updated >>> ---> Package MySQL-shared-compat.x86_64 0:5.0.45-0.glibc23 set to be updated >>> --> Finished Dependency Resolution >>> >>> Dependencies Resolved >>> >>> ============================================================================= >>> Package Arch Version Repository Size >>> ============================================================================= >>> Installing: >>> MySQL-client x86_64 5.0.45-0.glibc23 mysql >>> 350 k >>> Installing for dependencies: >>> MySQL-shared-compat x86_64 5.0.45-0.glibc23 mysql >>> 3.1 M >>> mysql x86_64 5.0.22-2.1.0.1 updates 3.0 M >>> perl-DBI x86_64 1.52-1.fc6 base 605 k >>> >>> Transaction Summary >>> ============================================================================= >>> Install 4 Package(s) >>> Update 0 Package(s) >>> Remove 0 Package(s) >>> >>> >>> Adding --skip-broken --exclude mysql gives the same result as I posted >>> earlier, in which it works, but MySQL-shared was also installed (It >>> shouldn't have, since MySQL-shared-compat also provides MySQL-shared, >>> but apparently no harm done) >>> >>> Regards, >>> >>> Fajar >>> _______________________________________________ >>> Yum mailing list >>> [email protected] >>> https://lists.dulug.duke.edu/mailman/listinfo/yum >>> >>> >> Weird, what skip-broken does is run the yum depsolve with each package >> in the transaction, skip the ones there don't depsolve without errors. >> >> I this case i looks like MySQL-server don't desolve alone. >> >> So 'yum install MySQL-server' should fail to. >> >> >> > You are correct. I didn't look closely at the packages being installed > with --skip-broken. MySQL-server was indeed not there. Regardless, the > problem is the same : > > - without --skip-broken, installation succeeded > - with --skip-broken, MySQL-server was automatically removed from > transaction, but installation still failed > - with --skip-broken and --exclude mysql, installation succeeded > > I believe the problem is, as you say, "what skip-broken does is run the > yum depsolve with each package in the transaction". Meaning : > - skip-broken sees MySQL-client, try to depsolve it > - skip-broken sees requirement for libmysqlclient.so.15()(64bit), try to > find a package that provides it, found mysql. HOWEVER, > - skip-broken didn't see that I also want to install > MySQL-shared-compat, which also provides libmysqlclient.so.15()(64bit) > and would've been able to be installed nicely, because it runs on each > package without looking at the entire line of package to be installed. > > Is there a fix for this? > > Regards, > > Fajar > Maybe, skip-broken should test if the whole transactions resolves fine and only do the checking of each package if it fails. But normally user only use '--skipbroken' if there is something rotten in the state of Denmark :) But the main issue here is: MySQL-server libmysqlclient.so.15()(64bit) that is provided by mysql & MySQL-shared-compat Then the shortest one 'mysql' is selected, but that is a problem because MySQL-server conflict with mysql. This will not work. yum install MySQL-server This should work. yum install MySQL-shared-compat MySQL-server Maybe the yum depsolver should check for conflicts in case of multiple provides of the same dep ?. Tim _______________________________________________ Yum mailing list [email protected] https://lists.dulug.duke.edu/mailman/listinfo/yum