个人工具

“UbuntuHelp:BuildingWineFromSource”的版本间的差异

来自Ubuntu中文

跳转至: 导航, 搜索
第4行: 第4行:
 
1. One needs a more up to date version of Wine
 
1. One needs a more up to date version of Wine
 
2. One needs to apply a patch to the stock Wine release
 
2. One needs to apply a patch to the stock Wine release
 
 
This guide works for:
 
This guide works for:
 
* Ubuntu 7.04 (Feisty Fawn), Using Wine 0.9.39
 
* Ubuntu 7.04 (Feisty Fawn), Using Wine 0.9.39
第37行: 第36行:
 
<pre><nowiki>
 
<pre><nowiki>
 
mkdir wine-0.9.39
 
mkdir wine-0.9.39
 
 
cd wine-0.9.39
 
cd wine-0.9.39
 
 
apt-get source wine
 
apt-get source wine
 
</nowiki></pre>
 
</nowiki></pre>
第59行: 第56行:
 
<pre><nowiki>
 
<pre><nowiki>
 
patch -p1 < wine-patch#1.patch
 
patch -p1 < wine-patch#1.patch
 
 
patch -p1 < wine-patch#2.patch
 
patch -p1 < wine-patch#2.patch
 
 
etc.
 
etc.
 
</nowiki></pre>
 
</nowiki></pre>
第98行: 第93行:
 
<pre><nowiki>
 
<pre><nowiki>
 
sudo dpkg --purge wine
 
sudo dpkg --purge wine
 
 
cd ..
 
cd ..
 
</nowiki></pre>
 
</nowiki></pre>
第119行: 第113行:
 
<pre><nowiki>
 
<pre><nowiki>
 
cd wine-0.9.21/wine-0.9.21~winehq0~ubuntu~6.06
 
cd wine-0.9.21/wine-0.9.21~winehq0~ubuntu~6.06
 
 
make distclean
 
make distclean
 
</nowiki></pre>
 
</nowiki></pre>
第125行: 第118行:
 
<pre><nowiki>
 
<pre><nowiki>
 
cd wine-0.9.21/wine-0.9.21~winehq0~ubuntu~5.10
 
cd wine-0.9.21/wine-0.9.21~winehq0~ubuntu~5.10
 
 
make distclean
 
make distclean
 
</nowiki></pre>
 
</nowiki></pre>

2010年5月19日 (三) 16:56的版本

Reasons why one would need to build from source rather than relying on repositories: 1. One needs a more up to date version of Wine 2. One needs to apply a patch to the stock Wine release This guide works for:

  • Ubuntu 7.04 (Feisty Fawn), Using Wine 0.9.39
  • Ubuntu 6.06 (Dapper Drake), using Wine 0.9.21
  • Ubuntu 5.10 (Breezy Badger), using Wine 0.9.21

WARNING: The authors of this howto give no guarantees, your mileage may vary. The process for building Wine from source is as follows:

Enable the relevant source repository

Using synaptic, add the following custom repository. Dapper:

deb-src http://wine.budgetdedicated.com/apt dapper main

Breezy:

deb-src http://wine.budgetdedicated.com/apt breezy main

Feisty:

deb-src http://wine.budgetdedicated.com/apt feisty main

(see https://wiki.ubuntu.com/AddingRepositoriesHowto for help) Also, see http://www.winehq.org/site/download-deb for most current repository adding method.

Install the Wine build dependencies

The purpose of this step is to install any dependencies necessary to the build process.

sudo apt-get build-dep wine
sudo apt-get install fakeroot

Download the Wine source

Create a directory for the build process (wine-0.9.38), and download the source into it. You'll need at least 1.4Gig of free disk to install and build successfully.

mkdir wine-0.9.39
cd wine-0.9.39
apt-get source wine

cd to the directory containing the source code, as that's where we'll be working from. Dapper:

cd wine-0.9.21~winehq0~ubuntu~6.06

Breezy:

cd wine-0.9.21~winehq0~ubuntu~5.10

Feisty:

cd wine-0.9.39~winehq0~ubuntu~7.04

Apply patches, if necessary

Sometimes the reason you're building from source is because you need to patch the stock release. (eg to apply the WoW patch)

patch -p1 < wine-patch#1.patch
patch -p1 < wine-patch#2.patch
etc.

eg. Applying the WoW patch Wine needs to be patched for WoW to work properly. Download the 0.9.21 patch from http://appdb.winehq.org/appview.php?versionId=5109 to your home folder and apply the patch to the Wine code.

patch -p0 < ~/wow-patch-0.9.21.patch

Install additional libraries

Add the recommended packages from: http://wiki.winehq.org/Recommended_Packages Breezy:

 
sudo apt-get install libasound2-dev  libarts1-dev libartsc0-dev libaudiofile-dev libesd0-dev libaudio-dev libcapi20-dev liblcms1-dev libcupsys2-dev libsane-dev freeglut3-dev libc6-dev libexpat1-dev libfontconfig1-dev libfreetype6-dev libgcrypt11-dev libglib1.2-dev libglib2.0-dev libgnutls11-dev libgpg-error-dev libice-dev libieee1284-3-dev libjpeg62-dev libldap2-dev libltdl3-dev libmad0-dev libmng-dev libncurses5-dev libogg-dev libopencdk8-dev libpng12-dev libqt3-mt-dev libsm-dev libtasn1-2-dev libusb-dev libvorbis-dev libx11-dev libxcursor-dev libxext-dev libxft-dev libxi-dev libxml2-dev libxmu-dev libxrandr-dev libxrender-dev libxslt1-dev libxt-dev libxv-dev render-dev unixodbc-dev x-dev   zlib1g-dev xlibs-dev libxxf86dga-dev libxxf86vm-dev libjack0.80.0-dev libicu28-dev libungif4-dev libssl-dev

Dapper: There's a script written by Dan Kegel that will do all the work: Download and run the script

wget  http://kegel.com/wine/dapper.sh
chmod +x dapper.sh
sudo ./dapper.sh

Feisty: Run this command:

sudo apt-get install libasound2-dev libaudiofile-dev libesd0-dev libaudio-dev libcapi20-dev liblcms1-dev libcupsys2-dev libsane-dev libhal-dev libdbus-1-dev freeglut3-dev libc6-dev libexpat1-dev libfontconfig1-dev libfreetype6-dev libgcrypt11-dev libglib1.2-dev libglib2.0-dev libgpg-error-dev libice-dev libieee1284-3-dev libjpeg62-dev libldap2-dev libltdl3-dev libmad0-dev libmng-dev libncurses5-dev libogg-dev libopencdk8-dev libpng12-dev libqt3-mt-dev libsm-dev libusb-dev libvorbis-dev libx11-dev libxcursor-dev libxext-dev libxft-dev libxi-dev libxml2-dev libxmu-dev libxrandr-dev libxrender-dev libxslt1-dev libxt-dev libxv-dev render-dev unixodbc-dev x-dev zlib1g-dev xlibs-dev libxxf86dga-dev libxxf86vm-dev libjack0.100.0-dev libicu34-dev libungif4-dev libssl-dev lib32ncurses5-dev

Build Wine

dpkg-buildpackage -rfakeroot -uc -b

The build will take a LONG time, even with a fast machine. An hour or so would be average on a 2 GHz CPU with 1 GB of Ram, so go have a sandwich.

Install the new Wine deb

The build process, once it's complete, will create a .deb in the parent directory. This is your new Wine package. First remove the old Wine package.

sudo dpkg --purge wine
cd ..

Now, install the new Wine package. Dapper:

sudo dpkg -i wine_0.9.21~winehq0~ubuntu~6.06-1_i386.deb

Breezy:

sudo dpkg -i wine_0.9.21~winehq0~ubuntu~5.10-1_i386.deb

Feisty:

sudo dpkg -i wine_0.9.39~winehq0~ubuntu~7.04-3_i386.deb

Clean up

Once you're satisfied that Wine is working properly, you can now clean up the files used for building Wine, as this frees up quite a bit of disk. Of course, deleting make's working files will mean that if you need to rebuild, make will have to start right from the beginning. Dapper:

cd wine-0.9.21/wine-0.9.21~winehq0~ubuntu~6.06
make distclean

Breezy:

cd wine-0.9.21/wine-0.9.21~winehq0~ubuntu~5.10
make distclean