🌐
Debian
wiki.debian.org › Multiarch › HOWTO
Multiarch/HOWTO - Debian Wiki
September 23, 2025 - Multiarch lets you install library packages from multiple architectures on the same machine. This is useful in various ways, but the most common is installing both 64 and 32-bit software on the same machine and having dependencies correctly resolved automatically.
🌐
Debian
wiki.debian.org › Multiarch
Multiarch - Debian Wiki
May 1, 2025 - Multiarch is a significant and powerful development, and affects many processes and aspects of the system. The immediate practical effects are getting rid of the ia32-libs package, and allowing proper cross-architecture dependencies for cross-building. It was first working in Ubuntu Natty and Debian Wheezy as well as used for the arm64 and mips64el port bootstraps.
🌐
Debian
wiki.debian.org › Multiarch › Implementation
Multiarch/Implementation - Debian Wiki
October 15, 2025 - Multiarch names (sometimes called triplets or multiarch tuples) refer to architectures by their ISA, OS and ABI. Unlike normal Debian architecture names, these are unambiguous within Debian and between distributions with compatible naming schemes.
🌐
Debian
wiki.debian.org › MultiArch › Hints
MultiArch/Hints - Debian Wiki
It should be safe to add Multi-Arch: same to the binary package's debian/control section. Check that any maintainer scripts work correctly when co-installing the package for multiple architectures at once. If future changes might make this change inappropriate, make a note somewhere to revert the change when the time comes. Ignore this report if your package exists to prevent co-installation of other packages. For more information, see Multiarch/Implementation.
🌐
Debian
wiki.debian.org › Multiarch › Tuples
Multiarch/Tuples - Debian Wiki
Multiarch specifies a method of making libraries for multiple, mutually-incompatible architectures installable on a single filesystem in a manner that ensures the same binaries can be used without modification on any system. To accomplish this, we require unique identifiers for each architecture ...
🌐
Debian
wiki.debian.org › Multiarch › LibraryPathOverview
Multiarch/LibraryPathOverview - Debian Wiki
In order to support this, platform-specific versions of a multiarch package must have the property that for each file, it is either 100% identical across platforms, or else it must be installed to separate locations in the file system.
🌐
Ubuntu
help.ubuntu.com › community › MultiArch
MultiArch - Community Help Wiki
July 29, 2013 - If you have any need for 32-bit programs on a 64-bit system, then lots of library packages need to be installed for 32-bit support (denoted by "(i386)" in the package name) in addition to their native 64-bit versions. Multi-arch is a new way of handling this developed by Debian. The need for ...
🌐
Raspberry Pi Forums
forums.raspberrypi.com › board index › software › raspberry pi os
experimental support for multiarch with Raspbian and Debian arm64 - Raspberry Pi Forums
You are running into one of the "design limitations" of Debian's multiarch. Debian has (and has had for a very long time, long before multiarch existed) a concept of architecture independent (aka arch "all") binary packages. In multi-arch such packages are treated as packages of the system's native architecture.
🌐
Debian
wiki.debian.org › Multiarch › CrossDependencies
Multiarch/CrossDependencies - Debian Wiki
For this to work, packages must be marked Multi-Arch: foreign or Multi-Arch: same (or occasionally Multi-Arch: allowed) - see the discussion in Multiarch/Implementation for details. bootstrap.debian.net provides lists of packages which need multiarch attention, updated weekly:
🌐
HowtoForge
howtoforge.com › home › multiarch: how to use 32bit packages on a 64bit system (debian 7 wheezy)
Multiarch: How To Use 32bit Packages On A 64bit System (Debian 7 Wheezy)
On Debian Wheezy, it is now possible to run a i386-linux-gnu application on an amd64-linux-gnu system. This is called Multiarch and refers to the capability of a system to install and run applications of multiple different binary targets on the same system.
Find elsewhere
🌐
LWN.net
lwn.net › Articles › 482952
FOSDEM: Multiarch on Debian and Ubuntu [LWN.net]
February 22, 2012 - In practice, you can easily add a new architecture to your machine's Debian or Ubuntu installation. For instance, when you have an amd64 installation and you want to install some i386 libraries, you can add the latter architecture with a simple "dpkg --add-architecture i386" command. Use "dpkg --print-foreign-architectures" to get a list of the foreign architectures you have added, and "dpkg-architecture -qDEB_HOST_MULTIARCH" to see the multiarch pathname for your system's native architecture.
🌐
Debian
packages.debian.org › buster › multiarch-support
Debian -- Details of package multiarch-support in buster
two or more packages specified (multiarch-support buster) See our contact page to get in touch. Content Copyright © 1997 - 2026 SPI Inc.; See license terms. Debian is a trademark of SPI Inc. Learn more about this site.
Top answer
1 of 1
3

You don't need to create separated packages name to get multiarch. Just type:

Package: foo-amd64
Version: 1.0-1
Section: base
Priority: optional
Maintainer: [email protected]
Architecture: any
Multi-Arch: same
Depends: foo, libgcc1, gcc-4.6-base, libstdc++5, libstdc++6, libsasl2-2, libgstreamermm-0.10-2, libfreetype6,
 libfontconfig1, libX11-6, libXrender1, libice6, libxext6, libsm6
Description: foo is awesome
 Foo is really awesome
Installed-Size: 71140

That should build both, amd64 and i386 packages depending your build environment variable. There are various ways you can convert your packages to multiarch if you use the recipes instead:

dh(1) and autotools

The simplest package to convert is one that uses autoconf upstream and dh(1) in the Debian packaging.

  1. Build-depend on debhelper (>= 9).
  2. Add Pre-Depends: ${misc:Pre-Depends} to any package listed in debian/control that provides a shared library.
  3. Update debian/compat to '9'.
  4. Replace occurrences of /usr/lib/ in debian/*.install with /usr/lib/*/.
  5. If /usr/lib (or a subdirectory) is listed as an installation target in debian/*.install, or the target of a link in debian/*.links, you will need to substitute the value of $(DEB_HOST_MULTIARCH) into this file. See `Dynamic debian/* files below.
  6. Any occurrences of /usr/lib in debian/rules should be replaced with /usr/lib/$(DEB_HOST_MULTIARCH).
  7. If you needed to use $(DEB_HOST_MULTIARCH) in debian/rules in either of the two preceding steps, set DEB_HOST_MULTIARCH in debian/rules by calling: DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH).
  8. Once you have built the package and verified that the shared library package contains only the expected files, and that your -dev package still works, mark this shared library package Multi-Arch: same in debian/control.
  9. Mark the common package(which is "all") Multi-Arch: foreign in debian/control, if it may be needed by the shared library package.

If you have overridden debhelper commands in debian/rules, despite using dh(1) for the rest of the build, you may need to follow the instructions below for classic debhelper to modify mv, cp or rm commands used by your override rules.

There are more examples in the Debian packaging implementation guide https://wiki.debian.org/Multiarch/Implementation. You may also use lithian to make sure your package in completely compliance.

🌐
Debian
wiki.debian.org › Multiarch › Issues
Multiarch/Issues - Debian Wiki
For example, the debian dpkg version 1.16.0.3 does not allow the multiarch configuration variable to be set, whereas the Ubuntu version 1.16.0.3ubuntu3) and versions >= 1.16.0~ubuntu4 do allow the variable to be set.
🌐
Debian
packages.debian.org › buster › amd64 › multiarch-support › download
multiarch-support_2.28-10+deb10u2_amd64.deb
JavaScript is disabled in your browser · Please enable JavaScript to proceed · A required part of this site couldn’t load. This may be due to a browser extension, network issues, or browser settings. Please check your connection, disable any ad blockers, or try using a different browser
🌐
Debian
wiki.debian.org › CategoryMultiarch
CategoryMultiarch - Debian Wiki
June 14, 2025 - Multiarch is the ability to install and run packages for multiple binary targets on the same system (usually i386-linux-gnu packages on amd64-linux-gnu systems).
🌐
Debian
cdimage.debian.org › cdimage › archive › 11.1.0 › multi-arch › iso-cd
Index of /cdimage/archive/11.1.0/multi-arch/iso-cd
These are files containing the installer and other software for the Debian GNU/Linux operating system. The files in this directory are designed to work on both 32-bit and 64-bit PCs (i386 and amd64) · The files here are complete ISO images, ready to use
🌐
Zugschlus
blog.zugschlus.de › archives › 972-How-to-amd64-an-i386-Debian-installation-with-multiarch.html
How to amd64 an i386 Debian installation with multiarch | Zugschlusbeobachtungen
In wheezy, many library packages are multiarch capable. This means that you can have those library packages installed for more than one architecture. This is a technical must for this way of crossgrade, so never use that for an older-than-wheezy system. It won't work, it needs at least Debian ...