Free Hosting Online for WorkStations

< Previous | Contents | Next >

Multi-Arch Related Changes‌


To make multi-arch actually useful and usable, libraries had to be repackaged and moved to an architecture-specific directory so that multiple copies (targeting different architectures) can be installed alongside one another. Such updated packages contain the Multi-Arch: same header field to tell the packaging system that the various architectures of the package can be safely co-installed (and that those packages can only satisfy dependencies of packages of the same architecture).


$ dpkg -s libwine

dpkg-query: error: --status needs a valid package name but ’libwine’ is not: ambiguous

package name ’libwine’ with more than one installed instance


Use --help for help about querying packages.

$ dpkg -s libwine:amd64 libwine:i386 | grep ^Multi

Multi-Arch: same Multi-Arch: same

$ dpkg -L libgcc1:amd64 |grep .so

[...]

/usr/lib/x86_64-linux-gnu/wine/libwine.so.1

$ dpkg -S /usr/share/doc/libwine/copyright

libwine:amd64, libwine:i386: /usr/share/doc/libwine/copyright

$ dpkg -s libwine

dpkg-query: error: --status needs a valid package name but ’libwine’ is not: ambiguous

package name ’libwine’ with more than one installed instance


Use --help for help about querying packages.

$ dpkg -s libwine:amd64 libwine:i386 | grep ^Multi

Multi-Arch: same Multi-Arch: same

$ dpkg -L libgcc1:amd64 |grep .so

[...]

/usr/lib/x86_64-linux-gnu/wine/libwine.so.1

$ dpkg -S /usr/share/doc/libwine/copyright

libwine:amd64, libwine:i386: /usr/share/doc/libwine/copyright


It is worth noting that Multi-Arch: same packages must have their names qualified with their architecture to be unambiguously identifiable. These packages may also share files with other instances of the same package; dpkg ensures that all packages have bit-for-bit identical files when they are shared. Also, all instances of a package must have the same version, therefore they must be upgraded together.

Multi-Arch support also brings some interesting challenges in the way dependencies are handled. Satisfying a dependency requires either a package marked Multi-Arch: foreign or a package whose architecture matches the one of the package declaring the dependency (in this dependency res- olution process, architecture-independent packages are assumed to be of the same architecture as the host). A dependency can also be weakened to allow any architecture to fulfill it, with the package:any syntax, but foreign packages can only satisfy such a dependency if they are marked Multi-Arch: allowed.


Top OS Cloud Computing at OnWorks: