Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I am wanting to install an RPM package, but I'm not sure whether to install the x86_64 or i386 version. WHM says CENTOS 6.5 i686 virtuozzo at the top.

How can I determine which version to install?

share|improve this question

closed as off-topic by ewwhite, Ward, warren, Falcon Momot, Jenny D Jul 29 at 9:12

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions must demonstrate a minimal understanding of the problem being solved. Try including attempted solutions, why they didn't work, and the expected results. See How can I ask better questions on Server Fault? for further guidance." – ewwhite, Ward
If this question can be reworded to fit the rules in the help center, please edit the question.

4 Answers 4

up vote 10 down vote accepted

In this case, use the i386 (or 32-bit) package.

share|improve this answer
1  
Why? You answer ought to provide support or reasoning. –  ArtB Jul 25 at 21:07
6  
@ArtB Well, this is because the x86_64 package (64-bit) won't run on a 32-bit platform. –  ewwhite Jul 25 at 21:11
    
Correct me if I'm wrong, but isn't this why it's x86? For the various numbers that could go in the x position? –  jpmc26 Jul 25 at 23:37
    
@jpmc26 but the choices are i386 and x86_64, note the _64 meaning "64 bit". He's running i686 which is not 64-bit so i386 is the proper choice. –  Josh Jul 26 at 3:32
    
@Josh ?? I think you misunderstood my comment. I was saying that x86 describes the series of processors architectures than end in 86. So i386 is one of them, where the x is filled in by the 3. –  jpmc26 Jul 26 at 3:36

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.

You've got an "i686" system, so given the choice between "i386" and "x86_64", you want the "i386" version.

share|improve this answer
    
And you should add this list is read from the bottom up: you start the bottom until you hit your system's architecture, and you go up until you hit a package architecture. Kind of. –  Calimo Jul 27 at 7:50

You can simply use the "arch" command in order to have your answer.

share|improve this answer
    
It says i686, but that RPM package isn't available (only x86_64 and i386). –  Nate Jul 25 at 17:11
3  
@Nate They mean exactly the same thing for this purpose. –  Michael Hampton Jul 25 at 17:14
2  
As ewwhite says, in that case go for i386 version. –  Zatarra Jul 25 at 17:18

You need the 32-bit (i.e. the i386) package as the "i686" report shows that you're running a 32-bit platform.

As a general rule, if you're not sure of the destination platform, get the 32-bit build, as a 64-bit platform can run a 32-bit image, but not the other way around.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.