mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-31 12:54:13 +00:00
600 lines
22 KiB
Text
600 lines
22 KiB
Text
<chapter id="getting-wine">
|
|
<title>Getting Wine</title>
|
|
<para>
|
|
If you decided that you can use and want to use Wine (e.g. after
|
|
having read the <link linkend="introduction">introductory
|
|
chapter</link>), then as a first step you need to find a good
|
|
compatible Wine version that you like and that works on your
|
|
system, and after you found one, the next step is to transfer its
|
|
files to your system somehow.
|
|
This chapter is here to tell you what you need to take care of
|
|
in order to successfully accomplish these two steps.
|
|
</para>
|
|
|
|
<sect1 id="getting-download">
|
|
<title>How to download Wine?</title>
|
|
<para>
|
|
There are three different methods of how the files
|
|
belonging to Wine may be brought (downloaded) to your system:
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
Getting a single Wine <glossterm>package</glossterm> file
|
|
(specifically adapted to your particular system), which
|
|
contains various <glossterm>binary</glossterm> files of Wine
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Getting a single compressed archive file (usually .tar.gz), which contains
|
|
all <glossterm>source code</glossterm> files of a standard Wine
|
|
release version
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Downloading from a <glossterm>CVS</glossterm> server,
|
|
which contains the very latest development source code files
|
|
of Wine
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
|
|
<sect2 id="getting-which-wine">
|
|
<title>Which Wine form should I pick?</title>
|
|
|
|
<para>
|
|
Now that we told you about the different Wine distribution
|
|
methods available, let's discuss the advantages and
|
|
disadvantages of the various methods.
|
|
</para>
|
|
|
|
<variablelist>
|
|
<title>Wine distribution methods</title>
|
|
<varlistentry>
|
|
<term><emphasis>Wine package file</emphasis></term>
|
|
|
|
<listitem>
|
|
<para>
|
|
Intended user level: Beginner to Advanced
|
|
</para>
|
|
|
|
<para>
|
|
Using Wine package files is easy for three
|
|
reasons:
|
|
They install everything else that's needed for their
|
|
operation, they usually preconfigure a lot, and you
|
|
don't need to worry about compiling anything or so.
|
|
You can get the official wine packages from
|
|
<ulink url="http://sourceforge.net/project/showfiles.php?group_id=6241">
|
|
the sourceforge.net Wine download page</ulink>
|
|
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><emphasis>Wine source code via archive file</emphasis></term>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
Intended user level: Advanced to Expert
|
|
</para>
|
|
|
|
<para>
|
|
A Wine source code archive file can be used
|
|
if you want to compile your own standard Wine release.
|
|
By using differential patch files to newer Wine versions,
|
|
you can easily upgrade your outdated Wine directory.
|
|
However, as you need to manually download patch files
|
|
and you're only able to download the most current
|
|
standard Wine release, this is not necessarily the
|
|
best method to use.
|
|
The only advantage a Wine source archive has is that it
|
|
is a standard Wine release with less development
|
|
"quirks" than current CVS code. Except for that, CVS
|
|
source code is much preferred and almost as easy.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><emphasis>Wine source code via CVS checkout</emphasis></term>
|
|
<listitem>
|
|
<para>
|
|
Intended user level: Advanced to Expert/Developer
|
|
</para>
|
|
|
|
<para>
|
|
The Wine CVS checkout offers the best way to take
|
|
part in bleeding edge Wine capabilities and
|
|
development, since you'll be able to download every
|
|
single CVS commit even <emphasis>beyond</emphasis> the
|
|
last official Wine release.
|
|
As upgrading a Wine CVS checkout tree to the latest
|
|
version is very easy, this is a recommended method
|
|
of installing Wine.
|
|
Plus, by carefully following the instructions in this
|
|
Guide, you'll be able to gain the very best Wine
|
|
environment compatibility.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
|
|
<para>
|
|
If you are running a distribution of Linux or some other
|
|
system that uses packages to keep track of installed software,
|
|
you should be in luck: A prepackaged version of Wine
|
|
should already exist for your system.
|
|
The following sections will tell you how to find the latest
|
|
Wine packages and get them installed. You should be careful,
|
|
though, about mixing system packages between different distributions,
|
|
and even from different versions of the same distribution.
|
|
Often a package will only work on the distribution which it
|
|
has been compiled for. We'll cover
|
|
<link linkend="getting-dist-debian">Debian Linux</link>,
|
|
<link linkend="getting-dist-linux">Red Hat, Mandrake, SUSE and Slackware Linux</link>,
|
|
<link linkend="getting-freebsd">FreeBSD</link>, and
|
|
<link linkend="getting-other">other</link> distributions.
|
|
</para>
|
|
<para>
|
|
If you're not lucky enough to have a package available for
|
|
your operating system, or if you'd prefer a newer version of
|
|
Wine than already exists as a package, you will need to
|
|
download the Wine source code and compile it yourself on your
|
|
own machine. Don't worry, it's not too hard to do this,
|
|
especially with the many helpful tools that come with Wine.
|
|
You don't need any programming experience to compile and
|
|
install Wine, although it might be nice to have some minor
|
|
UNIX administrative skills. Working from the source is
|
|
covered in the Wine Developer's Guide.
|
|
</para>
|
|
</sect2>
|
|
|
|
</sect1>
|
|
|
|
<sect1 id="getting-wine-package">
|
|
<title>Getting a Wine package</title>
|
|
<sect2 id="getting-dist-debian">
|
|
<title>Debian Linux</title>
|
|
|
|
<para>
|
|
In most cases on a Debian system (or any other distribution that
|
|
uses packages that use the file name ending .deb, for that
|
|
matter), you can download and install Wine with a
|
|
single command, as <glossterm>root</glossterm>:
|
|
</para>
|
|
<screen>
|
|
<prompt># </><userinput>apt-get install wine</>
|
|
</screen>
|
|
<para>
|
|
<command>apt-get</command> will connect to a Debian archive
|
|
across the Internet (thus, you must be online), then download
|
|
the Wine package and install it on your system. End of story.
|
|
You might first need to properly update your package setup,
|
|
though, by using an <glossterm>editor</glossterm> as
|
|
<glossterm>root</glossterm> to add an entry to
|
|
<filename>/etc/apt/sources.list</filename> to point to an active
|
|
package server and then running <command>apt-get
|
|
update</command>.
|
|
</para>
|
|
<para>
|
|
Once you're done with that step, you may skip the Wine
|
|
installation chapter, since apt-get has not only downloaded,
|
|
but also installed the Wine files already.
|
|
Thus you can now go directly to the <link
|
|
linkend="config-wine-main">Configuration section</link>.
|
|
</para>
|
|
|
|
<para>
|
|
However, if you don't want to or cannot use the automatic
|
|
download method for .deb packages that
|
|
<command>apt-get</command> provides, then please read on.
|
|
</para>
|
|
<para>
|
|
Of course, Debian's pre-packaged version of Wine may not be
|
|
the most recent release. If you are running the stable
|
|
version of Debian, you may be able to get a slightly newer
|
|
version of Wine by grabbing the package from the so-called
|
|
"unstable" Debian distribution, although this may be a little
|
|
risky, depending on how far the unstable distribution has
|
|
diverged from the stable one. You can find a list of Wine
|
|
binary packages for the various Debian releases using the
|
|
package search engine at <ulink
|
|
url="http://www.debian.org">www.debian.org</ulink>.
|
|
</para>
|
|
|
|
<para>
|
|
If you downloaded a separate .deb package file (e.g. a newer
|
|
Wine release as stated above) that's not part of your
|
|
distribution and thus cannot be installed via
|
|
<command>apt-get</command>, you must use <command>dpkg</command> instead.
|
|
For instructions on how to do this, please proceed to the
|
|
<link linkend="installing">Installation section</link>.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 id="getting-dist-linux">
|
|
<title>Linux Red Hat, Mandrake, SUSE, and Slackware</title>
|
|
|
|
<para>
|
|
Red Hat, Mandrake, SUSE and Slackware users can download
|
|
a wine binary from the
|
|
<ulink url="http://sourceforge.net/project/showfiles.php?group_id=6241">
|
|
sourceforge.net Wine download page</ulink>
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 id="getting-freebsd">
|
|
<title>FreeBSD</title>
|
|
|
|
<para>
|
|
In order to use Wine you need to build and install a new kernel
|
|
with options USER_LDT, SYSVSHM, SYSVSEM, and SYSVMSG.
|
|
</para>
|
|
|
|
<para>
|
|
If you want to install Wine using the FreeBSD port system, run
|
|
in a <glossterm>terminal</glossterm>:
|
|
</para>
|
|
<screen>
|
|
<prompt>$ </><userinput>su -</>
|
|
<prompt># </><userinput>cd /usr/ports/emulators/wine/</>
|
|
<prompt># </><userinput>make</>
|
|
<prompt># </><userinput>make install</>
|
|
<prompt># </><userinput>make clean</>
|
|
</screen>
|
|
<para>
|
|
This process will get wine source from the Internet,
|
|
then download the Wine package and install it on your system.
|
|
</para>
|
|
|
|
<para>
|
|
If you want to install Wine from the FreeBSD CD-ROM, run in a
|
|
<glossterm>terminal</glossterm>:
|
|
</para>
|
|
<screen>
|
|
<prompt>$ </><userinput>su -</>
|
|
<prompt># </><userinput>mount /cdrom</>
|
|
<prompt># </><userinput>cd /cdrom/packages/All</>
|
|
<prompt># </><userinput>pkg_add wine_.X.X.X.tgz</>
|
|
</screen>
|
|
<para>
|
|
</para>
|
|
<para>
|
|
These FreeBSD install instructions completely install the
|
|
Wine files on your system; you may then proceed to the <link
|
|
linkend="config-wine-main">Configuration section</link>.
|
|
</para>
|
|
<para>
|
|
You can also download a FreeBSD package of wine from the
|
|
<ulink url="http://sourceforge.net/project/showfiles.php?group_id=6241">
|
|
sourceforge.net Wine download page</ulink>
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 id="getting-other">
|
|
<title>Other systems</title>
|
|
|
|
<para>
|
|
The first place you should look if your system isn't
|
|
specifically mentioned above is the <ulink
|
|
url="http://www.winehq.org/download/">WineHQ Download
|
|
Page</ulink>. This page lists many assorted archives of
|
|
binary (precompiled) Wine files.
|
|
</para>
|
|
|
|
<para>
|
|
You could also try to use
|
|
<ulink url="http://www.google.com/search?q=wine+package+download">
|
|
Google</ulink> to track down miscellaneous distribution packages.
|
|
</para>
|
|
|
|
</sect2>
|
|
<!-- *** Add other distributions, e.g., Lindows, Lycoris, Xandros *** -->
|
|
|
|
</sect1>
|
|
|
|
<sect1 id="getting-wine-source">
|
|
<title>Getting Wine source code</title>
|
|
|
|
<para>
|
|
If you are going to compile Wine (instead of installing binary
|
|
Wine files), either to use the most recent code possible or to
|
|
improve it, then the first thing to do is to obtain a copy of
|
|
the source code. We'll cover how to retrieve and compile the
|
|
source releases from the <link
|
|
linkend="getting-source">official archives</link>, and also how
|
|
to get the cutting edge up-to-the-minute fresh Wine source code
|
|
from <link linkend="getting-source-cvs">CVS (Concurrent Versions
|
|
System)</link>.
|
|
</para>
|
|
|
|
<para>
|
|
Once you have downloaded Wine source code according to the
|
|
instructions below, there are two ways to proceed: If you want
|
|
to manually install and configure Wine, then go to the <link
|
|
linkend="compiling">Compiling</link> section. If instead you
|
|
want automatic installation, then go straight to the <link
|
|
linkend="config-wine-main">Configuration section</link> to make
|
|
use of <command>wineinstall</command> to automatically install
|
|
and configure Wine.
|
|
</para>
|
|
|
|
<para>
|
|
You may also need to know how to apply a source code patch to
|
|
your version of Wine. Perhaps you've uncovered
|
|
a bug in Wine, reported it to the
|
|
<ulink url="http://bugs.winehq.org">Wine Bugzilla</ulink>
|
|
or the
|
|
<ulink url="mailto:wine-devel@winehq.org">Wine mailing list</ulink>,
|
|
and received a patch from a developer to hopefully fix the
|
|
bug. We will show you how to
|
|
<link linkend="getting-upgrading-patch">safely apply the
|
|
patch</link> and revert it if it doesn't work.
|
|
</para>
|
|
|
|
<sect2 id="getting-source">
|
|
<title>Getting Wine Source Code from the official archives</title>
|
|
|
|
<para>
|
|
The safest way to grab the source is from one of the official
|
|
archives. An up to date listing is in the <ulink
|
|
url="http://www.winehq.org/source/ANNOUNCE">ANNOUNCE</ulink>
|
|
file in the Wine distribution (which you would have if you
|
|
already downloaded it). Here is a list
|
|
of servers carrying Wine:
|
|
</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
<ulink url="ftp://ftp.ibiblio.org/pub/Linux/ALPHA/wine/development/">
|
|
ftp://ftp.ibiblio.org/pub/Linux/ALPHA/wine/development/
|
|
</ulink>
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
<ulink url="http://sourceforge.net/project/showfiles.php?group_id=6241&package_id=77449">
|
|
sourceforge.net download page
|
|
</ulink>
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
<para>
|
|
The official releases are tagged by date with the format
|
|
"Wine-<replaceable>YYYYMMDD</>.tar.gz". Your best bet is to grab
|
|
the latest one.
|
|
</para>
|
|
<para>
|
|
I'd recommend placing the Wine archive file that you chose
|
|
into the directory where you intend to extract Wine. In this
|
|
case, let's just assume that it is your home directory.
|
|
</para>
|
|
<para>
|
|
Once you have downloaded a Wine archive file, we need to
|
|
extract the archive file. This is not very hard to do. First
|
|
switch to the directory containing the file you just
|
|
downloaded. Then extract the source in a
|
|
<glossterm>terminal</glossterm> with (e.g.):
|
|
<screen>
|
|
<prompt>$ </><userinput>tar xvzf wine-<replaceable>20030115</>.tar.gz</>
|
|
</screen>
|
|
</para>
|
|
<para>
|
|
Just in case you happen to get a Wine archive that uses
|
|
<filename>.tar.bz2</filename> extension instead of
|
|
<filename>.tar.gz</filename>:
|
|
Simply use <command>tar xvjf</command> in that case instead.
|
|
</para>
|
|
<para>
|
|
Since you now have a fully working Wine source tree by
|
|
having followed the steps above, you're now well-prepared to
|
|
go to the Wine installation and configuration steps that follow.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 id="getting-source-cvs">
|
|
<title>Getting Wine Source Code from CVS</title>
|
|
|
|
<para>
|
|
This part is intended to be quick and easy, showing the bare minimum
|
|
of what is needed to download Wine source code via CVS.
|
|
If you're interested in a very verbose explanation of CVS or
|
|
advanced CVS topics (configuration settings, CVS mirror servers,
|
|
other CVS modules on WineHQ, CVSWeb, ...), then please read
|
|
the full CVS chapter in the Wine Developer's Guide.
|
|
</para>
|
|
|
|
<sect3>
|
|
<title>CVS installation check</title>
|
|
<para>
|
|
First you need to make sure that you have <command>cvs</command>
|
|
installed.
|
|
To check whether this is the case, please run in a
|
|
<glossterm>terminal</glossterm>:
|
|
</para>
|
|
<screen>
|
|
<prompt>$ </><userinput>cvs</>
|
|
</screen>
|
|
<para>
|
|
If this was successful, then you should have gotten a nice CVS
|
|
"Usage" help output. Otherwise (e.g. an error "cvs: command
|
|
not found") you still need to install a CVS package for your
|
|
particular operating system, similar to the instructions given
|
|
in the chapters for getting and installing a Wine package on
|
|
various systems.
|
|
</para>
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Downloading the Wine CVS tree</title>
|
|
|
|
<para>
|
|
Once CVS is installed, you can now do a login on our CVS
|
|
server and checkout (download) the Wine source code.
|
|
First, let's do the server login, to connect to the US server:
|
|
</para>
|
|
<screen>
|
|
<prompt>$ </><userinput> export CVSROOT=:pserver:cvs@cvs.winehq.org:/home/wine</>
|
|
<prompt>$ </><userinput> cvs login</>
|
|
</screen>
|
|
<para>
|
|
To connect to the EU server:
|
|
</para>
|
|
<screen>
|
|
<prompt>$ </><userinput>export CVSROOT=:pserver:cvs@rhlx01.fht-esslingen.de:/home/wine</>
|
|
<prompt>$ </><userinput>cvs login</>
|
|
</screen>
|
|
<para>
|
|
If <command>cvs</command> successfully connects to the CVS server,
|
|
then you will get a "CVS password:" prompt.
|
|
Simply enter "cvs" as the password (the password is
|
|
<emphasis>case sensitive</emphasis>: no capital letters!).
|
|
</para>
|
|
|
|
<para>
|
|
After login, we are able to download the Wine source code tree.
|
|
Please make sure that you are in the directory that you want
|
|
to have the Wine source code in (the Wine source code will
|
|
use the subdirectory <filename>wine/</filename> in this
|
|
directory, since the subdirectory is named after the CVS module
|
|
that we want to check out). We assume that your current directory
|
|
might be your user's home directory.
|
|
To download the Wine tree into the subdirectory <filename>wine/</filename>, run:
|
|
</para>
|
|
<screen>
|
|
<prompt>$ </><userinput> cvs -z3 checkout wine</>
|
|
</screen>
|
|
<para>
|
|
Downloading the CVS tree might take a while (some minutes
|
|
to few hours), depending on your connection speed.
|
|
Once the download is finished, you should keep a note of
|
|
which directory the newly downloaded
|
|
<filename>wine/</filename> directory is in, by running
|
|
<command>pwd</command> (Print Working Directory):
|
|
</para>
|
|
<screen>
|
|
<prompt>$ </><userinput>pwd</>
|
|
</screen>
|
|
<para>
|
|
Later, you will be able to change to this directory by
|
|
running:
|
|
</para>
|
|
<screen>
|
|
<prompt>$ </><userinput>cd <replaceable><some_dir></></>
|
|
</screen>
|
|
<para>
|
|
where <some_dir> is the directory that
|
|
<command>pwd</command> gave you.
|
|
By running
|
|
</para>
|
|
<screen>
|
|
<prompt>$ </><userinput>cd wine</>
|
|
</screen>
|
|
<para>
|
|
you can now change to the directory of the Wine CVS tree
|
|
you just downloaded. Since you now have a fully working Wine
|
|
source tree by having followed the steps above, you're now
|
|
well-prepared to go to the Wine installation and configuration
|
|
steps that follow.
|
|
</para>
|
|
</sect3>
|
|
</sect2>
|
|
|
|
<sect2 id="getting-updating-cvs">
|
|
<title>Updating the Wine CVS tree</title>
|
|
|
|
<para>
|
|
After a while, you might want to update your Wine CVS tree to
|
|
the current version.
|
|
Before updating the Wine tree, it might also be a good idea
|
|
to run <command>make uninstall</command> as root in order to
|
|
uninstall the installation of the previous Wine version.
|
|
</para>
|
|
<para>
|
|
To proceed with updating Wine, simply <command>cd</command>
|
|
to the Wine CVS tree directory, then run, if you're using the US server:
|
|
</para>
|
|
<screen>
|
|
<prompt>$ </><userinput>make distclean</>
|
|
<prompt>$ </><userinput>cvs update -PAd</>
|
|
</screen>
|
|
<para>
|
|
The <command>make distclean</command> part is optional, but
|
|
it's a good idea to remove old build and compile configuration
|
|
files before updating to a newer Wine version. Once the CVS
|
|
update is finished, you can proceed with installing Wine again
|
|
as usual.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 id="getting-upgrading-patch">
|
|
<title>Updating Wine with a Patch</title>
|
|
<para>
|
|
If you got Wine source code (e.g. via a tar archive file), you
|
|
have the option of applying patches to the source tree to
|
|
update to a newer Wine release or to fix bugs and add
|
|
experimental features. Perhaps you've found a bug, reported
|
|
it to the <ulink url="mailto:wine-devel@winehq.org">Wine
|
|
mailing list</>, and received a patch file to fix the bug.
|
|
You can apply the patch with the <command>patch</> command,
|
|
which takes a streamed patch from <filename>stdin</>:
|
|
<screen>
|
|
<prompt>$ </><userinput>cd wine</>
|
|
<prompt>$ </><userinput>patch -p0 <<replaceable>../patch_to_apply.diff</></>
|
|
</screen>
|
|
</para>
|
|
<para>
|
|
To remove the patch, use the <parameter>-R</> option:
|
|
<screen>
|
|
<prompt>$ </><userinput>patch -p0 -R <<replaceable>../patch_to_apply.diff</></>
|
|
</screen>
|
|
</para>
|
|
<para>
|
|
If you want to do a test run to see if the patch will apply
|
|
successfully (e.g., if the patch was created from an older or
|
|
newer version of the tree), you can use the
|
|
<parameter>--dry-run</> parameter to run the patch
|
|
without writing to any files:
|
|
<screen>
|
|
<prompt>$ </><userinput>patch -p0 --dry-run <<replaceable>../patch_to_apply.diff</></>
|
|
</screen>
|
|
</para>
|
|
<para>
|
|
<command>patch</> is pretty smart about extracting
|
|
patches from the middle of a file, so if you save an email with
|
|
an inlined patch to a file on your hard drive, you can invoke
|
|
patch on it without stripping out the email headers and other
|
|
text. <command>patch</> ignores everything that doesn't
|
|
look like a patch.
|
|
</para>
|
|
<para>
|
|
The <parameter>-p0</> option to <command>patch</>
|
|
tells it to keep the full file name from the patch file. For example,
|
|
if the file name in the patch file was
|
|
<filename>wine/programs/clock/main.c</>.
|
|
Setting the <parameter>-p0</> option would apply the patch
|
|
to the file of the same name i.e.
|
|
<filename>wine/programs/clock/main.c </>.
|
|
Setting the <parameter>-p1</> option would strip off the
|
|
first part of the file name and apply
|
|
the patch to <filename>programs/clock/main.c</>.
|
|
The <parameter>-p1</> option would be useful if you named your
|
|
top level wine directory differently than the person who sent
|
|
you the patch. For the <parameter>-p1</> option
|
|
<command>patch</> should be run from the top level wine
|
|
directory.
|
|
</para>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
</chapter>
|
|
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-parent-document:("wine-user.sgml" "set" "book" "chapter" "")
|
|
End:
|
|
-->
|