-
Building
32-bit
Wine
on
a
64-bit
(x86-64)
system
If you just want to
use
Wine, there is no need
to compile it using the instructions here. Just
go to the
downloads
page
and click the link for your
distribution.
If you want to run
64-bit Windows programs, see
Wine64
.
If you
want to build Wine on a 32-bit system, see
Recommended Packages
.
目录
1.
Building
32-bit Wine on a 64-bit (x86-64) system
1.
Ubuntu
2.
Debian
Testing
3.
Debian Unstable (Sid)
1.
Troubleshooting
4.
Gentoo
5.
openSUSE
6.
Fedora
16
7.
Fedora 17
8.
CentOS
5
9.
EL6 (RHEL6 and SL6)
Ubuntu
You will need to
create a 32-bit chroot. For more information on
chroot and Ubuntu, see
/community/BasicChroot
and
/community/DebootstrapChroot
First, install the dchroot and
debootstrap packages and create /var/chroot:
sudo apt-get install dchroot
debootstrap
sudo mkdir /var/chroot
Add the following to /etc/schroot/,
replacing your_username and the Ubuntu version
accordingly:
[precise]
description=Ubuntu Precise
directory=/var/chroot
users=your_username
groups=sbuild
root-
groups=root
Create a working
installation of Ubuntu inside the chroot. Replace
version and
/ubuntu/
with an appropriate
mirror from
/ubuntu/+archivemirrors
:
sudo debootstrap --variant=buildd
--arch i386 precise /var/chroot/
/ubuntu/
Make apt-get work
from within the chroot:
sudo cp
/etc/apt/ /var/chroot/etc/apt/
Enter
the chroot:
sudo chroot /var/chroot
Once inside the chroot, install the
build dependencies:
apt-get update
apt-get build-dep wine
Download the Wine source tree into your
chroot:
apt-get install git
git clone git:///git/wine
Compile:
cd wine
./configure
make
To be able to use Wine from outside the
chroot, Wine's dependencies must be installed
outside
the chroot. The easiest way is
to exit the chroot and install a prepackaged copy
of Wine:
exit
sudo apt-get
install wine
After all this you can
run a Windows program from outside the chroot
using your new build. For
example:
/var/chroot/wine/wine notepad
Debian Testing
1.
apt-get the following packages:
o
ia32-libs (you
need version 1.18 at least)
o
libc6-dev-i386
o
lib32z1-dev
o
ia32-libs-dev
(it has the /usr/lib32/, which seems to be
required when
installing TTF fonts)
o
optionally, a
bunch of other libraries: libxcursor-dev
libfontconfig1-dev
libldap2-dev
libxslt-dev
libgl1-mesa-dev
libglu1-xorg-dev
libgnutls-
dev
libxi-dev
lib32ncurses5-dev libxrandr-dev
libxxf86vm-dev
2.
Make symlinks (see below, in the Debian
SID section, for the full list of symlinks):
cd /usr/lib32 ln -s .3
This is required as of 2008/05/20 to
prevent Wine warning that HAL cannot be found. See
/cgi-bin/?bug=473586
1.
Download the
wine source and assuming gcc and all needed
development packages are
installed (see
Recommended Packages
) you
can compile wine using (you shouldn't need
--prefix=... or --x-libraries=... with
the latest Debian Unstable AMD64):
2.
./configure
3.
make
make install
4.
If the configure command fails with
executables
5.
Run wine by executing
/emul/ia32-linux/usr/bin/wine (you can add the
directory to the
path or make a
script). If wine complains that it can't find .1
make sure
/emul/ia32-linux/usr/lib is
part of the LD_LIBRARY_PATH or run ldconfig -v.
Debian Unstable (Sid)
The
build dependencies in the released Wine have most
of what you need:
sudo apt-get build-
dep wine
On Debian you may need to add
some more, or run the build-dep command after
adding the
APT
Repository
.
To
get Direct X working with nvidia, install the
32-bit drivers:
sudo apt-get install
nvidia-glx-ia32
To add pulseaudio
support, install the package lib32asound2-plugins:
sudo aptitude install
lib32asound2-plugins
Run configure
with:
CC=
-m32
LDF
LAGS=
-L/lib32
-L/usr/lib32
-Wl,-rpath,/lib32
-Wl,-rpath,/usr/lib32
It's
likely that you will get some missing library
warnings. To fix this, you need to hunt down
the 32-bit development files for each
missing library. It is not crucial to get rid of
all the
missing library warnings, but
you should try to minimize them.
For
example,
configure: libv4l 32-bit
development files not found.
is fixed
by:
sudo aptitude install lib32v4l-dev
If
all
needed
libraries
are
present
there
will
be
no
missing-library
warnings
or
errors
anywhere.
If you find that
this process misses a library, then it means we
are either missing a link or
the
ia32-libs package is missing the 32-bit version of
the library. In either case, contact the
Ubuntu package maintainer,
Scott Ritchie
, so things can
be fixed.
We explicitly set
CC=
or earlier. Newer version of gcc
also work. Update version of gcc as needed. Also,
the LDFLAGS
explicitly set 32-bit mode.
Now build and install with:
make
sudo make install
Troubleshooting
If you have
problems with libjpeg, there is a
confirmed bug
. The work
around is:
You need to remove the
version 0.62 and create a symbolic link to the
version 0.8, probably both
are
installed into /usr/lib, in my case (i'm using
debian amd64) are installed in /usr/lib32,
i just type: $$ ls | grep libjpeg, i've
located the both libjpeg, deleted the 62 typing: #
rm
-f ./.62 ./.62.0.0 and create the
two symlinks from version 0.8 typing: #
ln -s ./.8 ./.62 and # ln -s ./.8
./.62.0.0 and just
compiled
the
wine
again
and
problem
solved,
to
assure
that
is
the
correct
version
of
libjpeg
just
type: ./configure | grep jpeg before
the make.
I found that ./configure
still gave me a libjpeg error, but programs that
used libjpeg worked
well.
Gentoo
NOTE: This will
compile wine
and
install it
into your system. It is a really
bad
idea to install
stuff
manually
into
your
gentoo
system.
If
you
want
to
be
on
the
safe
side,
omit
the
install
command.
You can still run wine from the source directory
using the wine wrapper found at the
root of the directory.
1.
Emerge wine
and wine should install fine, if on the other hand
you want to compile wine
by hand follow
the steps below.
2.
Install the x86 compatibility libraries
(emul-linux-x86-xlibs,
emul-
linux-x86-soundlibs, ..)
3.
Download the wine source and assuming
gcc and all needed development packages are
installed (see
Recommended
Packages
) you can compile wine using:
configure
--prefix=/emul/linux/x86/usr
--x-libraries=/emul/linux/x86/usr/lib/X11 (in case
of
xorg 7.0, else
*/usr/X11R6/lib
), make
depend && make, make install
4.
Run
wine
by
executing
/emul/linux/usr/bin/wine
(you
can
also
make
a
symlink
/usr/bin/wine
->
/emul/linux/usr/bin/wine and the same for
wineserver, then you can just type wine).
If wine complains that it can't find .1
make sure /emul/linux/usr/lib is part
of the LD_LIBRARY_PATH or run ldconfig
-v.
If nothing seems to work try using
ebuild to compile it once and copy the source from
/var/tmp/portage/wine-9999/work/wine
somewhere. Ebuild
/usr/portage/app-
emulation/wine/ fetch unpack compile. To update
CVS add clean
to the beginning.
openSUSE
Make
sure
you
have
the
following
32
bit
development
packages
installed
in
addition
to
Recommended
Packages
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
capi4linux-32bit
cups-
libs-32bit
fontconfig-devel-32bit
freeglut-devel-32bit
freetype2-devel-32bit
gcc-32bit
giflib-
devel-32bit
glibc-devel-32bit
hal-32bit
libjpeg-
devel-32bit
liblcms-devel-32bit
libpng-devel-32bit
libxml2-devel-32bit
libxslt-devel-32bit
Mesa-
devel-32bit
ncurses-devel-32bit
openldap2-devel-32bit
openssl-devel-32bit
sane-32bit
unixODBC-
devel-32bit
xorg-x11-devel-32bit
xorg-x11-libICE-32bit
xorg-x11-libICE-devel-32bit
xorg-x11-libSM-devel-32bit