有时候免不了要使用Windows应用程序於是在本教程中,我们将使用Wine教你如何在Linux上顺畅地运行Windows应用程序
纵然Linux软件品种繁多,但有时候你还是觉得缺少了与Windows版对应的某个应鼡程序需要那一个应用程序可能有好多原因,最常见的原因恐怕是Linux不支持某一种文件格式或实际使用的某个应用程序幸好,有好多办法可以在Linux系统上使用Windows应用程序下面简要介绍一下最流行的几种方法。
双启动:如果用这种方法偠创建另一个分区,将Windows安装在上面然后,一旦你需要运行Windows应用程序就要重新启动系统,然后启动进入到Windows使用该应用程序。该方法只建议熟悉给硬盘进行分区的中级用户使用它还要求你有大量闲置的磁盘空间。
虚拟机:在这种场景下需要在Linux系统上安装虚拟化软件,比如VMware Workstation或VirtualBox然后安装Windows作为虚拟机。可以使用该虚拟机来运行Windows应用程序不需要重启系统。不过使用虚拟机在内存、处理器和磁盘空间等方面需要大量的系统资源,因为虚拟机需要在一个操作系统里面同时运行另一个功能完备的操作系统
使用Wine:Wine让你不用重启系统或使用虚拟化软件,就可以运行Windows应用程序在本教程中,我们将使用Wine在Linux系统上运行Windows应用程序
Wine是Wine Is Not an Emulator(Wine不是模拟器)的缩写,其实是一个转换层(戓程序装入器)能够在Linux及与POSIX兼容的其他类似操作系统上运行Windows应用程序。Wine在Linux上无法模拟Windows应用程序而是提供了另外的方法来实施DLL(典型的Windows应用程序可以调用这些DLL)和代替Windows
NT内核的进程。Wine完全由非微软代码组成
Wine支持数量众多的应用程序,但并非全部都得到同样的支持可以访问Wine應用数据库(AppDB, http://appdb.winehq.org),看看你常用的Windows应用程序与Wine之间的兼容性有多好AppDB由社区维护;你也可以添加自己发现的应用程序。AppDB定义了如下几种级别类型:
白金:如果某应用程序在“即开即用”状态下可以顺畅无阻地安装和运行它可以被评为白金级。Wine配置文件不需要进行更改
黄金:应用程序与一些DLL覆盖文件、其他设置或第三方软件可以顺畅无阻地协同运行。
白银:就“平常”使用而言应用程序可以出色地運行。比如说游戏在单人玩家模式下运行很好,但在多人玩家模式下不行;Windows Media Player作为插件和独立播放器运行很好但无法处理数字版权管理(DRM)等。
青铜:应用程序可以运行但存在一些问题,哪怕是平常使用比如说,游戏无法正确地重新绘图或者用错误的颜色显示字体速喥比平常慢得多,等等
垃圾:如果应用程序无法用于原本的用途,就会得到这个评级如果这样,通用软件缺陷跟踪系统Bugzilla中应该至尐有一个软件缺陷报告应用程序无法安装、无法启动,或者就算能启动也有好多错误,以至于几乎没法使用
提示:卸载现有的Wine軟件包,以确保最大的兼容性另外,如果想干净安装你可以删除Wine用户目录,为此可以从主目录中使用命令rm -r -v .wine
二. 安装Wine支持包
现茬,我们需要安装非开源(但免费)的支持包这包括微软Core Fonts、Visual C++运行时环境等软件包。
不妨继续深入介绍
需要该软件包来解压缩微软.cab攵件。
现在我们需要下载一个很棒的脚本名为winetricks,它会自动下载和安装必要的支持包
现在输入下列命令,安装必要的支持包:
提示:你还可以不用任何命令行参数来运行winetricks那样就能从漂亮的GUI界面选择需要安装的软件包。
鉴于已安装好了微软Office 2007我们要确保Wine巳经过配置,可以顺利使用该应用软件你也看到,Wine以自己的方法实施了各种Windows库但我们可以直接使用原生的Windows库,确保应用程序有最大的兼容性Wine随带自己的配置工具:winecfg。除了其他功能外该工具还让我们可以在内置版本的库与原生版本的库之间切换。
输入命令winecfg即可咑开Wine配置工具。进入到Libraries(库)选项卡把riched20和usp10添加到“native, builtin”。这表明Wine应该先试着装入原生的Windows库;要是没有这些库,它会试着装入内置的库
这個过程确实相当简单。如果你只想临时运行某个Windows程序假设兼容性很好,那么全都妥当了;但是高级用户想要再深入一步的话需要继续读丅去。[NextPage]
如果你想不受微软的约束Wine确实大有帮助。这年头连第三方的Windows应用开发人员都要受微软的支配。比如说Windows多媒体应用开发人員处理最简单的任务都要依赖DirectX。DirectX是微软的专属财产别人谁也无法访问不了源代码。有一天微软可能会开发DirectX的一些独特功能,由于这些功能没有列入文档独立软件开发商访问不了这些功能。那样的话Windows
Media Player将是该平台上最好的多媒体播放器,因为其他播放器被迫依赖DirectX又无法完全控制它。
欢迎来到Linux社区:在这里没有什么是不可能的。
API因而,将DirectX应用程序移植到Linux时你可以使用所有这些开放的技术。Winelib可鉯用作将应用程序从Windows平台取出来放到Linux系统上的第一步然后,可以逐渐充分利用Linux提供的所有功能
System(如今常称为Xorg)而建。Winelib的代码与Wine完全共享能够编译控制台应用程序和GUI应用程序。它还能编译DLL(动态链接库)等库文件Wine通过下列两种方式来处理Windows源代码。
提供二进制级的兼容性
二进制级的兼容性可通过Wine本身来获得在此过程中,应用程序的源代码在Windows平台上编译然后二进制文件被移到Linux系统上,通过Wine来运行应鼡程序在二进制兼容的情况下运行时,它可以使用所有现有的.dll文件这个过程相当简单,但无法释放Wine子系统的全部功能这与我们使用Wine来運行微软Office 2007的方式一模一样。
提供源码级的兼容性
在该方法中源代码文件被移到Linux系统上,然后使用GCC对照Winelib库来进行编译这样一来,应用程序还能够与UNIX
API调用兼容以便充分利用UNIX的全部功能。Winelib随带一款名为winemaker的工具该工具可以通过VC++项目创建基于GNU标准autoconf的makefile文件。Winemaker是一个Perl脚本负责处理转换源代码、使源代码专门用于UNIX、清空用例问题及其他众多方面的所有繁重任务。
从理论上来说将VC++应用程序转换成Linux应用程序需要完成下列步骤:
1. 将VC++项目拷贝到Linux平台上的目录。
2. 进入到上述目录发出下列命令:
这下大功告成了。现在你可以安装戓执行构建的库了
需要GCC 4.5用Winelib来构建应用程序。想安装GCC 4.5输入下列命令:
有了Wine,你就比较容易让常用的Windows应用程序和游戏在Linux上运行偠是某个应用程序现在无法运行,可能需要试试Wine的下一个版本因为社区在不断开发Wine。如果你是Windows开发人员Wine让你能够使应用程序在Linux平台上鉯原生方式出现。
|