个人工具

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

来自Ubuntu中文

跳转至: 导航, 搜索
(新页面: {{From|https://help.ubuntu.com/community/BuildingWineFromSource}} {{Languages|UbuntuHelp:BuildingWineFromSource}} Reasons why one would need to build from source rather than relying on re...)
 
 
(未显示同一用户的8个中间版本)
第2行: 第2行:
 
{{Languages|UbuntuHelp:BuildingWineFromSource}}
 
{{Languages|UbuntuHelp:BuildingWineFromSource}}
 
Reasons why one would need to build from source rather than relying on repositories:
 
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
 
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.36
+
 
+
 
* Ubuntu 6.06 (Dapper Drake), using Wine 0.9.21
 
* Ubuntu 6.06 (Dapper Drake), using Wine 0.9.21
 
 
* Ubuntu 5.10 (Breezy Badger), 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.
 
WARNING: The authors of this howto give no guarantees, your mileage may vary.
 
 
The process for building Wine from source is as follows:
 
The process for building Wine from source is as follows:
 
 
=== Enable the relevant source repository ===
 
=== Enable the relevant source repository ===
 
 
Using synaptic, add the following custom repository.
 
Using synaptic, add the following custom repository.
 
 
'''Dapper:'''
 
'''Dapper:'''
 
<pre><nowiki>
 
<pre><nowiki>
 
deb-src http://wine.budgetdedicated.com/apt dapper main
 
deb-src http://wine.budgetdedicated.com/apt dapper main
 
</nowiki></pre>
 
</nowiki></pre>
 
 
'''Breezy:'''
 
'''Breezy:'''
 
<pre><nowiki>
 
<pre><nowiki>
 
deb-src http://wine.budgetdedicated.com/apt breezy main
 
deb-src http://wine.budgetdedicated.com/apt breezy main
 
</nowiki></pre>
 
</nowiki></pre>
 
 
'''Feisty:'''
 
'''Feisty:'''
 
<pre><nowiki>
 
<pre><nowiki>
 
deb-src http://wine.budgetdedicated.com/apt feisty main
 
deb-src http://wine.budgetdedicated.com/apt feisty main
 
</nowiki></pre>
 
</nowiki></pre>
 
 
(see https://wiki.ubuntu.com/AddingRepositoriesHowto for help)
 
(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 ===
 
=== Install the Wine build dependencies ===
 
 
The purpose of this step is to install any dependencies necessary to the build process.
 
The purpose of this step is to install any dependencies necessary to the build process.
 
 
<pre><nowiki>
 
<pre><nowiki>
 
sudo apt-get build-dep wine
 
sudo apt-get build-dep wine
 
sudo apt-get install fakeroot
 
sudo apt-get install fakeroot
 
</nowiki></pre>
 
</nowiki></pre>
 
 
=== Download the Wine source ===
 
=== 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.  
Create a directory for the build process (wine-0.9.17), and download the source into it. You'll need at least 1.4Gig of free disk to install and build successfully.  
+
 
+
 
<pre><nowiki>
 
<pre><nowiki>
mkdir wine-0.9.36
+
mkdir wine-0.9.39
  
cd wine-0.9.36
+
cd wine-0.9.39
  
 
apt-get source wine
 
apt-get source wine
 
</nowiki></pre>
 
</nowiki></pre>
 
 
cd to the directory containing the source code, as that's where we'll be working from.
 
cd to the directory containing the source code, as that's where we'll be working from.
 
 
'''Dapper:'''
 
'''Dapper:'''
 
<pre><nowiki>
 
<pre><nowiki>
 
cd wine-0.9.21~winehq0~ubuntu~6.06
 
cd wine-0.9.21~winehq0~ubuntu~6.06
 
</nowiki></pre>
 
</nowiki></pre>
 
 
'''Breezy:'''
 
'''Breezy:'''
 
<pre><nowiki>
 
<pre><nowiki>
 
cd wine-0.9.21~winehq0~ubuntu~5.10
 
cd wine-0.9.21~winehq0~ubuntu~5.10
 
</nowiki></pre>
 
</nowiki></pre>
 
 
'''Feisty:'''
 
'''Feisty:'''
 
<pre><nowiki>
 
<pre><nowiki>
cd wine-0.9.36~winehq0~ubuntu~7.04
+
cd wine-0.9.39~winehq0~ubuntu~7.04
 
</nowiki></pre>
 
</nowiki></pre>
 
=== Apply patches, if necessary ===
 
=== 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)
 
Sometimes the reason you're building from source is because you need to patch the stock release. (eg to apply the WoW patch)
 
 
<pre><nowiki>
 
<pre><nowiki>
 
patch -p1 < wine-patch#1.patch
 
patch -p1 < wine-patch#1.patch
第89行: 第64行:
 
etc.
 
etc.
 
</nowiki></pre>
 
</nowiki></pre>
 
 
eg. Applying the WoW patch
 
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.
 
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.
 
 
<pre><nowiki>
 
<pre><nowiki>
 
patch -p0 < ~/wow-patch-0.9.21.patch
 
patch -p0 < ~/wow-patch-0.9.21.patch
 
</nowiki></pre>
 
</nowiki></pre>
 
 
=== Install additional libraries ===
 
=== Install additional libraries ===
 
 
Add the recommended packages from: http://wiki.winehq.org/Recommended_Packages
 
Add the recommended packages from: http://wiki.winehq.org/Recommended_Packages
 
 
'''Breezy:'''
 
'''Breezy:'''
 
<pre><nowiki>  
 
<pre><nowiki>  
 
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
 
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
 
</nowiki></pre>
 
</nowiki></pre>
 
 
'''Dapper:'''
 
'''Dapper:'''
 
There's a script written by Dan Kegel that will do all the work:
 
There's a script written by Dan Kegel that will do all the work:
 
 
Download and run the script
 
Download and run the script
 
<pre><nowiki>
 
<pre><nowiki>
第116行: 第83行:
 
sudo ./dapper.sh
 
sudo ./dapper.sh
 
</nowiki></pre>
 
</nowiki></pre>
 
 
'''Feisty:'''
 
'''Feisty:'''
 
Run this command:
 
Run this command:
 
<pre><nowiki>
 
<pre><nowiki>
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
+
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
 
</nowiki></pre>
 
</nowiki></pre>
 
 
=== Build Wine ===
 
=== Build Wine ===
 
 
<pre><nowiki>
 
<pre><nowiki>
 
dpkg-buildpackage -rfakeroot -uc -b
 
dpkg-buildpackage -rfakeroot -uc -b
 
</nowiki></pre>
 
</nowiki></pre>
 
 
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.
 
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 ===
 
=== 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.
 
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.
 
First remove the old Wine package.
 
 
<pre><nowiki>
 
<pre><nowiki>
 
sudo dpkg --purge wine
 
sudo dpkg --purge wine
第142行: 第101行:
 
cd ..
 
cd ..
 
</nowiki></pre>
 
</nowiki></pre>
 
 
Now, install the new Wine package.
 
Now, install the new Wine package.
 
 
'''Dapper:'''
 
'''Dapper:'''
 
<pre><nowiki>
 
<pre><nowiki>
 
sudo dpkg -i wine_0.9.21~winehq0~ubuntu~6.06-1_i386.deb
 
sudo dpkg -i wine_0.9.21~winehq0~ubuntu~6.06-1_i386.deb
 
</nowiki></pre>
 
</nowiki></pre>
 
 
'''Breezy:'''
 
'''Breezy:'''
 
<pre><nowiki>
 
<pre><nowiki>
 
sudo dpkg -i wine_0.9.21~winehq0~ubuntu~5.10-1_i386.deb
 
sudo dpkg -i wine_0.9.21~winehq0~ubuntu~5.10-1_i386.deb
 
</nowiki></pre>
 
</nowiki></pre>
 
 
'''Feisty:'''
 
'''Feisty:'''
 
<pre><nowiki>
 
<pre><nowiki>
sudo dpkg -i wine_0.9.36~winehq0~ubuntu~7.04-3_i386.deb
+
sudo dpkg -i wine_0.9.39~winehq0~ubuntu~7.04-3_i386.deb
 
</nowiki></pre>
 
</nowiki></pre>
 
 
=== Clean up ===
 
=== 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.
 
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:'''
 
'''Dapper:'''
 
<pre><nowiki>
 
<pre><nowiki>
第170行: 第122行:
 
make distclean
 
make distclean
 
</nowiki></pre>
 
</nowiki></pre>
 
 
'''Breezy:'''
 
'''Breezy:'''
 
<pre><nowiki>
 
<pre><nowiki>
第178行: 第129行:
 
</nowiki></pre>
 
</nowiki></pre>
 
----
 
----
[[category:CategoryDocumentation]]
 
  
 
[[category:UbuntuHelp]]
 
[[category:UbuntuHelp]]

2010年5月19日 (三) 21:47的最新版本

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