LWN.net Logo

Getting multiarch dpkg into Debian

Getting multiarch dpkg into Debian

Posted Mar 7, 2012 16:28 UTC (Wed) by walex (subscriber, #69836)
Parent article: Getting multiarch dpkg into Debian

RPM and other packaging systems have not had this limitation EVER. Indeed RPM can also handle having library packages of different versions too, something that Debian mishandles by putting the version in the base package name too.

It is very sad that Debian is based on such a weak technical foundation, but it all goes to prove that putting in a lot of extra effort can make even poor technical choices work up to a point.

It is also sad that there is no popular community based distribution that can compete with Debian and has better technical foundations (and less bizarre policies).


(Log in to post comments)

Getting multiarch dpkg into Debian

Posted Mar 7, 2012 20:24 UTC (Wed) by Cyberax (✭ supporter ✭, #52523) [Link]

So that's probably why RPM packages often require using the --force hammer to make a package work.

Also, RPMs are supposed to be relocatable. Even though it doesn't work in practice since nobody tests it. Then there are questions of foreign architectures - how do I install an ARM version of libxml.so so I can use qemu to run my binary without full-system emulation?

Getting multiarch dpkg into Debian

Posted Mar 7, 2012 20:44 UTC (Wed) by vonbrand (subscriber, #4458) [Link]

Haven't used --force for untold ages here... forcing the installation of something without the proper dependencies will brew trouble.

Yes, the RPM format allows relocatable packages; in practice making something relocatable is a major undertaking, for very little use (so almost nobody hops through all the required hoops). Small wonder.

Yes, just installing some random arch's libraries and executables and then having the whole thing magically run would be nice... if you are into that. If the software is open source, a native (and thus presumably much more performant) package is at the end of your fingertips, so this point is moot for most of the user population anyway.

Getting multiarch dpkg into Debian

Posted Mar 7, 2012 22:53 UTC (Wed) by Cyberax (✭ supporter ✭, #52523) [Link]

>Yes, just installing some random arch's libraries and executables and then having the whole thing magically run would be nice... if you are into that. If the software is open source, a native (and thus presumably much more performant) package is at the end of your fingertips, so this point is moot for most of the user population anyway.
Nope. Quite a significant part of 'regular' Linux population uses bi-arch support every day. And it's going to get even more complex with the new x32 architecture.

And it'll mostly 'just work' in Debian.

Getting multiarch dpkg into Debian

Posted Mar 8, 2012 2:27 UTC (Thu) by rahulsundaram (subscriber, #21946) [Link]

Most users who use bi-arch use it to run 32 bit binaries on a x86_64 system which has been supported in RPM for ages already and works fine. Debian has addressed a larger design and in a more generic way and has taken longer to do it. Just a different design goal and choice which is understandable. No need to bring silly things --force (which I have never used in over a decade with RPM systems and there are really zero reasons to do it) and relocatable RPM packages( haven't come across any in the real world) into the discussion.

Getting multiarch dpkg into Debian

Posted Mar 9, 2012 20:19 UTC (Fri) by mlankhorst (subscriber, #52260) [Link]

Yes, the rpm packages don't need --force, unless you start actually using any -devel and then you have to use it all the time, which is annoying if you actually want to upgrade packages, since there is no yum --force..

Getting multiarch dpkg into Debian

Posted Mar 9, 2012 20:49 UTC (Fri) by rahulsundaram (subscriber, #21946) [Link]

Just so that you know, I maintain over 100 RPM packages and never had to use --force even though I routinely use -devel packages.

Getting multiarch dpkg into Debian

Posted Mar 12, 2012 13:24 UTC (Mon) by mpr22 (subscriber, #60784) [Link]

It seems to me that if a -devel package has to be --force'd, you should examine why - then either fix the cause if it's at your end, or file a bug report if the cause is at the package maintainer's end.

Getting multiarch dpkg into Debian

Posted Mar 13, 2012 12:00 UTC (Tue) by mlankhorst (subscriber, #52260) [Link]

oh but then I look it up and it's already been a bug for the past 3 releases of fedora with nothing that has been done to fix it. llvm devel packages have the same issue, also not fixed.

Getting multiarch dpkg into Debian

Posted Mar 13, 2012 13:18 UTC (Tue) by mathstuf (subscriber, #69389) [Link]

Mind linking to said bug?

Getting multiarch dpkg into Debian

Posted Mar 19, 2012 21:38 UTC (Mon) by ibukanov (subscriber, #3942) [Link]

Getting multiarch dpkg into Debian

Posted Mar 7, 2012 20:58 UTC (Wed) by Tobu (subscriber, #24111) [Link]

So far we have three design choices: package states keyed by a name, by a (name, arch) tuple, and by a (name, arch, version) tuple.

Keying by name is simple and robust: packages with different names must agree not to own the same file names.

Keying by version is tricky and bug-prone: if versions are to be parallel installable, different versions of a package either need to not own the same files, or to keep identical contents in files that didn't move. This doesn't seem compatible with shipping changelogs or common resources.

Keying by arch while requiring that the versions stay locked, on the other hand, is safe: the files were built from the same source, so files that are shared across architectures will easily be identical; architecture-dependent files will need to use paths that embed the architecture name.

Getting multiarch dpkg into Debian

Posted Mar 8, 2012 1:49 UTC (Thu) by smoogen (subscriber, #97) [Link]

From a Fedora/RPM person.. I don't think you are correct on this. THere is actually some magic that was added in RPM to allow for multiple files being owned by the same package and then using directory packaging to make sure needed files don't conflict.

RPM packaging chose a way to do this via policy that I believe dpkg could ahve done.. but it would not have met other goals of theirs to make sure it worked on N+1 architectures. So lets not try to start a "my packaging system is better than yours" because those never convince anyone of anything.

Getting multiarch dpkg into Debian

Posted Mar 16, 2012 1:53 UTC (Fri) by jjs (guest, #10315) [Link]

Debian handles multiple versions just fine. In fact, during a transition (say gcc4.5 - gcc4.6), both packages are installed, along with their dependencies. Once the transition was done (no more dependencies on gcc4.5), that set of packages is automatically removed, unless you have marked them as manual install or pinned them. No weak technical foundation at all.

In this case, Debian is going beyond biarch to multi-arch. Not just have x86-32 and x86-64 (amd64) installed, but say have ARM, SPARC64, x86-32, and x86-64 simultaneously installed, to ease cross-development. That's hard, But Debian is working to get it right.

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds