How to Install Wine 32-bit on CentOS 7

1 12 月

Since version 7, RHEL has only x86-64 versions. The same thing happens to CentOS 7. In CentOS 7/EPEL, there is only package for Wine x86-64. However, many Windows .exe files are 32-bit. Even there are 64-bit versions for some software, their installation file is 32-bit. And for some certain software such as Office 2007, 32-bit wine is preferred.

In this post, we will check how to install 32-bit Wine on CentOS 7.

  • It is confirmed that this method works for Scientific Linux 7.2 too by Steve.
  • It is confirmed that this method works for Wine 2.0 too by Victor Schulz and gretzware.
  • It is confirmed that this method works for 2.17 development too by gretzware. Note it needs libXfixes-devel .

One single script to build and install Wine

The whole process in this post has already been written as a shell script You may download the script and run it directly as root to install wine of version such as 1.8.7, 2.0.2. Default is 1.8.7.

# [<version>]

Build and install Wine manually step by step

The following part of this post introduces what each step does.

Erase old wine versions installed

If you ever installed wine packages, erase them first as we will build wine from the source.

yum erase wine wine-*

Install packages needed to build wine

We are going to install the packages needed to build wine. These may not be sufficient depending on your base installation packages. If later steps complain that some packages are missing, you can install them.

yum install samba-winbind-clients -y
yum groupinstall 'Development Tools' -y
yum install libjpeg-turbo-devel libtiff-devel freetype-devel -y
yum install glibc-devel.{i686,x86_64} libgcc.{i686,x86_64} libX11-devel.{i686,x86_64} freetype-devel.{i686,x86_64} gnutls-devel.{i686,x86_64} libxml2-devel.{i686,x86_64} libjpeg-turbo-devel.{i686,x86_64} libpng-devel.{i686,x86_64} libXrender-devel.{i686,x86_64} alsa-lib-devel.{i686,x86_64} -y 

# ... and more ...
# Check the `` script for more packages needed.

Download and unpack the source package

Here, we use a variable $ver to specify the version we want to install. It will be used in later steps too.

ver=2.0.2 # We will use this as the example. 
vermajor=$(echo ${ver} | cut -d'.' -f1)
verurlstr=$(echo ${ver} | cut -d'.' -f1,2)

cd /usr/src
if [[ "${vermajor}" == "1" ]]; then
  wget${verurlstr}/wine-${ver}.tar.bz2 -O wine-${ver}.tar.bz2
  tar xjf wine-${ver}.tar.bz2
elif [[ "${vermajor}" == "2" ]]; then
  wget${verurlstr}/wine-${ver}.tar.xz -O wine-${ver}.tar.xz
  tar xf wine-${ver}.tar.xz

Build wine 32-bit and 64-bit versions

Make directories for building wine 32-bit and 64-bit versions.

cd wine-${ver}/
mkdir -p wine32 wine64

Build the 64-bit version first as 32-bit version building depends on it.

cd wine64
../configure --enable-win64
make -j 4

Build the 32-bit version now.

cd ../wine32
PKG_CONFIG_PATH=/usr/lib/pkgconfig ../configure --with-wine64=../wine64
make -j 4

Install wine 32-bit and 64-bit versions

Now, we can install Wine. The trick is to install 32-bit version first and then the 64-bit version.

As we are still in the win32 directory, run

make install

Install the 64-bit version:

cd ../wine64
make install

By now, if everything goes well, you have successfully installed the Wine 32-bit and 64-bit versions. You may double-check it with the file command:

$ file `which wine`
/usr/local/bin/wine: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=a83b9f0916e6c0d5427e2c38a172c93bd8023d98, not stripped
$ file `which wine64`
/usr/local/bin/wine64: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=4d8e8468402bc63bd2a72c59c57fcad332235d41, not stripped

Note the “ELF 32-bit” and “ELF 64-bit” in the file type strings.

Now you can run your 32-bit Windows application on CentOS 7. Enjoy 🙂



您的电子邮箱地址不会被公开。 必填项已用 * 标注