On Friday 16 November 2012, Michael Schroeder wrote:
On Thu, Nov 15, 2012 at 06:36:59PM +0100, Ruediger Meier wrote:
On Thursday 15 November 2012, Michael Schroeder wrote:
On Thu, Nov 15, 2012 at 03:59:26PM +0100, Ruediger Meier wrote:
even I've noticed that zypper seems to install with "rpm --force". This means that it does not abort if 2 packages have conflicting files and this results in having random files installed.
(not random, but last one wins)
The last one regarding alphabetical order? Since package names are randomly choosen it is still random.
No, the last one from the transaction.
## see $ zypper in quickfix-1.12.4-0.rudi.6.x86_64.rpm libquickfix10-1.12.4-17.1.x86_64.rpm $ md5sum /usr/lib64/libquickfix.so.10.0.0 bc43e6e877d710a9a40cbdac23562fcb /usr/lib64/libquickfix.so.10.0.0
## and $ zypper in libquickfix10-1.12.4-17.1.x86_64.rpm \ quickfix-1.12.4-0.rudi.6.x86_64.rpm $ md5sum /usr/lib64/libquickfix.so.10.0.0 bc43e6e877d710a9a40cbdac23562fcb /usr/lib64/libquickfix.so.10.0.0
## But rpm would respect the order of packages given in the commandline.
In gerneral rpm doesn *not* respect the given order, it does a topolocical sort so that packages that depend on other to-be-installed packages are installed last.
$ rpm -Uvh --force quickfix-1.12.4-0.rudi.6.x86_64.rpm libquickfix10-1.12.4-17.1.x86_64.rpm warning: libquickfix10-1.12.4-17.1.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID b611872d: NOKEY Preparing... ########################################### [100%] 1:libquickfix10 ########################################### [ 50%] 2:quickfix ########################################### [100%] $ md5sum /usr/lib64/libquickfix.so.10.0.0 187d807f0bcc50633b35c31b28274927 /usr/lib64/libquickfix.so.10.0.0
$ rpm -Uvh --force libquickfix10-1.12.4-17.1.x86_64.rpm quickfix-1.12.4-0.rudi.6.x86_64.rpm warning: libquickfix10-1.12.4-17.1.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID b611872d: NOKEY Preparing... ########################################### [100%] 1:quickfix ########################################### [ 50%] 2:libquickfix10 ########################################### [100%] $ md5sum /usr/lib64/libquickfix.so.10.0.0 bc43e6e877d710a9a40cbdac23562fcb /usr/lib64/libquickfix.so.10.0.0
I guess in that example quickfix can go first because libquickfix10 was already installed.
No, I always uninstalled both ones between the runs.
How could I avoid that?
You currently can't avoid it, it's one of the missing features in zypper. The underlying libsolv library already supports it, it "just" needs to be added to libzypp.
(Note that zypper will nevertheless install with --force, at that time in the transaction it's too late to check for file conflicts. They need to get checked right after all packages are downloaded. This also means that conflict checking will not work with the old "DownloadAsNeeded" mode.)
I understand that it can't resolve these conflicts before downloading but I'd rather would like to see zypper aborting the installation after downloading than just using --force.
No, it can only use --force if all the packages are installed in a single rpm transaction. If you do multiple calls to rpm, you have to - check for file conflicts before starting the transaction - use --force for every element in the transaction.
Why not installing in a single rpm transaction? Or couldnt't it only use explicitely --replacepkgs,--replacefiles or --oldpackage in case it is really wanted/needed? Probably --replacefiles is never wanted by default
What worth is the rpm database if "rpm --verify" does not show me broken files and "rpm -qa" is not comparable between two machines. I mean to compare two systems you would need to diff all installed files rather than the package list only.
Yeah, I've always considered this to be a bug in rpm. (And I think this is fixed in rpm upstream.) rpm marks overwritten files as "replaced" and doesn't show them in rpm --verify.
How can I list all "replaced" files?
The current behavior only works at all because we have nice official repositories without conflicting packages. But isn't it one of rpm's key feature to protect our installation against broken repos and packages?
Well yes, that's why file conflicts will be supported in libzypp in some upcoming version.
It's nice that libzypp wants to solve it but IMO rpm should have the final word about it's database.
(Note that the debian folks don't support file conflicts at all and they still manage to survive somehow.)
Yeah, I could also survive with make install but I want to live easy. cu, Rudi -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org