A quick overview of architecture names for x86 systems:

  • i386: The 80386 CPU has historically been the bare minimum for running Linux on a PC-compatible system. Consequently, a package for “i386? is designed for maximum compatibility and can run on any x86-like system; a system that describes itself as “i386? is either ancient or exotic, and can only be counted on to run i386 packages.

  • i485, i586: Rarely-seen, these refer to the 80486 and Pentium (80586) CPUs. Almost nobody builds packages specifically for them, targeting either i386 or i686 instead.

  • i686: This is the “P6? microarchitecture, used by Intel for the Pentium Pro and newer. It’s generally considered the baseline for “modern” 32-bit x86 systems. An “i686? package is designed to run on these systems (and will usually perform better than a “i386? version); an “i686? system can run any i386, i486, i586, or i686 package.

  • x86_64: This is the 64-bit instruction set for x86 CPUs. An “x86_64? package can only run on x86_64 systems; an “x86_64? system requires special kernel and library support (which almost all mainstream Linux distros provide) to run packages from the i*86 family.

Mario Loria is a builder of diverse infrastructure with modern workloads on both bare-metal and cloud platforms. He's traversed roles in system administration, network engineering, and DevOps. You can learn more about him here.