This guide will teach you to Install Wine 32bit Wine 1.8 On Centos 7
Since version 7, RHEL has only x86-64 version. The same for CentOS 7. In CentOS 7/EPEL, there is only package for Wine x86-64. However, many Windows .exe files are 32bit. Even there are 64bit versions for some software, their installation file is 32bit. And for some certain software such as Office 2007, 32bit wine is preferred.
In this post, i will try to install Wine 32bit 1.8 on CentOS 7. I will use Wine 1.8.5 as the example.
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 2>&1 >>$log
yum groupinstall 'Development Tools' -y 2>&1 >> $log
yum install libjpeg-turbo-devel libtiff-devel freetype-devel -y 2>&1 >> $log
yum install libgcc.i686 libX11-devel.i686 freetype-devel.i686 gnutls-devel.i686 libxml2-devel.i686 libjpeg-turbo-devel.i686 libpng-devel.i686 libXrender-devel.i686 -y 2>&1 >> $log
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=1.8.5
cd /usr/src
wget http://dl.winehq.org/wine/source/1.8/wine-${ver}.tar.bz2 -O wine-${ver}.tar.bz2
tar xjf wine-${ver}.tar.bz2
Build wine 32bit and 64bit versions
Make directories for building wine 32bit and 64bit 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 32bit version now.
cd ../wine32
../configure --with-wine64=../wine64
make -j 4
Install wine 32bit and 64bit 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 🙂
Installation Script
If you need Installation Script, you can copy paste code bellow or from Github
#!/bin/bash
# Download, build and install wine 32-bit on CentOS 7
# For details of this script, please check
# http://www.systutorials.com/239913/install-32-bit-wine-1-8-centos-7/
# Author: Eric Zhiqiang Ma (zma@ericzma.com)
set -o errexit
log=`mktemp -t install-wine.XXXXXX.log`
# Install
ver=1.8.4
echo "Hello there. Start to download, build and install wine $ver 32-bit and 64-bit versions..." | tee $log
echo "Logs are in $log" | tee -a $log
echo "Uninstall old wine64 if you have installed it. Please select yes..." | tee -a $log
yum erase wine wine-*
echo "Install wine building tools..." | tee -a $log
yum install samba-winbind-clients -y 2>&1 >>$log
yum groupinstall 'Development Tools' -y 2>&1 >> $log
yum install libjpeg-turbo-devel libtiff-devel freetype-devel -y 2>&1 >> $log
yum install libgcc.i686 libX11-devel.i686 freetype-devel.i686 gnutls-devel.i686 libxml2-devel.i686 libjpeg-turbo-devel.i686 libpng-devel.i686 libXrender-devel.i686 -y 2>&1 >> $log
echo "Download and unpack the wine source package..." 2>&1 | tee -a $log
cd /usr/src 2>&1 >> $log
wget http://dl.winehq.org/wine/source/1.8/wine-${ver}.tar.bz2 -O wine-${ver}.tar.bz2 2>&1 >> $log
tar xjf wine-${ver}.tar.bz2 2>&1 >> $log
echo "Build wine..." 2>&1 | tee -a $log
cd wine-${ver}/ 2>&1 >> $log
mkdir -p wine32 wine64 2>&1 >> $log
echo " build wine64..." 2>&1 | tee -a $log
cd wine64 2>&1 >> $log
../configure --without-x --enable-win64 2>&1 >> $log
make -j 4 2>&1 >> $log
echo " build wine32..." 2>&1 | tee -a $log
cd ../wine32 2>&1 >> $log
../configure --without-x --with-wine64=../wine64 2>&1 >> $log
make -j 4 2>&1 >> $log
echo "Install wine..." 2>&1 | tee -a $log
echo " install wine32..." 2>&1 | tee -a $log
make install 2>&1 >> $log
echo " install wine64..." 2>&1 | tee -a $log
cd ../wine64 2>&1 >> $log
make install 2>&1 >> $log
echo "Congratulation! All are done. Enjoy!" 2>&1 | tee -a $log
rm -f $log
# # Uninstall
cd /usr/src/wine-${ver}/wine32
make uninstall
cd /usr/src/wine-${ver}/wine64
make uninstall
Many Thanks!
To compile the 32-bit version, I also needed
yum install -y glibc-devel.i686 libstdc++-devel.i686
…or you can just use my wine32 repo.
sudo yum -y install https://harbottle.gitlab.io/wine32/7/i386/wine32-release.rpm
sudo yum -y install wine.i686
More details here:
https://gitlab.com/harbottle/wine32