实际上,Wine的功能就是让Windows应用程序可以在Linux平台上运行。它并不完美,支持的应用程序也很有限。如果你想要记事本(Notepad)、计算器(Calculator)和纸牌游戏(Solitaire),你就随时可以使用了。
但是随后出现了值得关注的东西。随着时间的推移,越来越多的应用程序得到支持,直到Wine后来成为许多用户和企业(尤其还有Linux游戏玩家)的一款必不可少的工具。迄今为止,有数千款全面得到支持的应用程序如今可以在Wine上运行(查看应用程序数据库https://appdb.winehq.org,即可参阅完整列表),而且这份列表越来越长。诚然,Wine的工作主要侧重于游戏,但是你仍会找到相当丰富的生产力应用程序可以使用。
你可能会想,由于使用这类工具很复杂,Wine安装和使用起来会很复杂。这种假设是不成立的。实际上,Wine的开发人员不遗余力地让兼容层尽可能易于使用。这到底意味着什么呢?为了更容易阐明这个问题,不妨看看安装Wine,然后使用该工具安装并运行Windows应用程序的过程。
我将在基本 *** 作系统( Elementary OS)Freya上演示这个过程,并安装最新版本的Wine。
安装
如果你在运行Ubuntu衍生版,会在Software Center(软件中心)中找到Wine。不过,那个版本很可能过时了。正由于如此,我们应该避免提供的“默认”版本。为此,我们必须添加官方的Wine软件库。这可以通过两种方法来实现,通过命令行或通过GUI。由于我们的目的是运行Windows应用程序,不妨使用GUI方法。
具体方法如下:
1. 点击Applications(应用程序)菜单。
2. 输入software。
3. 点击Software &Updates(软件和更新)。
4. 点击Other Software(其他软件)选项卡。
5. 点击Add(添加)。
6.在APT行部分输入ppa:ubuntu-wine/ppa(见图2)。
7. 点击Add Source(添加来源)。
8. 输入你的sudo密码。
9. 点击Authenticate(验证)。
10. 点击Close(关闭)。
11. 出现提示后,点击Reload(重新装入)。
12. 打开Software Center(薯裂软件中心)。
13. 搜索Wine。
14. 点击Wine项,然后点击Install(安装)。
15. 让安装完成。
图2:添加必要的PPA(个人程序包存档),以便安装最新版本的Wine
就是这样。Wine现在已准备好帮助你安装和运行Windows应用程序了。不过切记:不是每个应用程序都能正常运行。大多数会,但是如果你期望将内部的专有解决方案安装并运行起来,可能会碰到几个障碍。
安装和运行应用程序
不妨安装一个非常受编程人员欢迎的塌手誉记事本:Notepad++。你需要从不包括第三方应用程序安装选项的位置下载文件(这可能会导致应用程序安装失败)。为了保险起见,从Filehippo(http://www.filehippo.com/zh/download_notepad)下载Notepad++安装程序。你会在Downloads目录下找到Notepad的.exe文件。右击该文件,选择Open in Wine Windows Program Loader(使用Wine Windows程序装载器打开,图3)。
图3:使用Wine运行Notepad++ .msi文件
首次运行后,~/.wine的Wine配置会被更新。这可能要花点时间,具体取决于系统的运行速度。让这个过程完成,然后再熟悉不过的Windows安装向导就会启动,逐步完成安装Notepad++的过程。
点击Next(下一步),逐步完成安装过程。第二个屏幕d出来后(见图4),你会注意到很不像Linux的Folder路径。
图4:非常不像Linux的文件夹路径
Linux不像Windows那样含有C驱动器。这有什么不对吗?没什么不对。如果你看一下~/.wine文件夹,就会注意到一个名为drive_c的文件夹。该文件夹里面有三个熟悉的子文件夹:
•Program Files
•users
•windows.
正如你预料的那样,这就是你的C驱动器。也就是说,让Folder路径在安装过程中保持原状。
你最终会进入到安装过程的Choose Components(选择组件)部分(图5)。你在这里可以选择安装选项。如果你的那种桌面环境允许桌面图标(而这是你启用应用程序的首选方法),可能应该选择Create Shortcut on Desktop(在桌面上创建快捷方式,那样就更容易启动刚安装的应用程序――这方面稍后会有更多介绍)。
图5:为Notepad++安装选择安装组件
安装完成后会显示Finish(完成)屏幕。让Run Notepad(运行记事本)方框处于被勾选的状态,点击Finish(完成)。Notepad++就会运行(图1)。
如果你不添加应用程序图标到桌面,当你想再次运行该软件时,会出现什么情况?这是很容易让用户犯难的一个问题。还记得Program Files子目录吗?如果你大胆进入到该文件夹,就会看到Notepad++的文件夹,里面含有notepad++.exe文件。你猜会怎么样?右击该文件,选择Open in Wine Windows Program Loader(使用Wine Windows程序装载器打开),Notepad++就会运行。
Notepad++这个简单的例子表明了Wine的工作原理。如果你深入探究更复杂的应用程序,结果可能不一样。最明智的做法就是回到Wine应用程序数据库,找到你想要安装的那个应用程序,点击它,检查应用程序的当前状态。你会发现每个应用程序列出了测试的Wine版本、是否可以安装、是否可以运行,并给出了评级。评级包括如下:
白金级(Platinum):直接就可以无缝运行的应用程序。
黄金级(Gold):进行一些必要的改动后才能运行的应用程序。
白银级(Silver):运行时会出现小问题的应用程序,但并不影响使用。
你还会发现有些应用程序被列为垃圾(Garbage),这意味着它们没法安装及/或没法运行。
如果你有一个Windows应用程序根本就没有对应的Linux应用程序,别担心――Wine可以帮助你。尽管不是每个Windows应用程序都可以在Wine下运行,但是确实能运行的应用程序数量确实非常多。而考虑到我们如今所做的几乎一切任务都在Web浏览器里面处理,所以只要得到Wine的一点帮助,应该能够满足你在应用程序方面的各个要求。
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中应该至少有一个软件缺陷报告。应用程序无法安装、无法启动,或者就算能启动,也有好多错误,以至于几乎没法使用。一. 安装WineWine适应于所有流行的UNIX *** 作系统,包括Ubuntu、Debian、Red Hat、SUSE、Mandriva、FreeBSD、Solaris和Mac OS X。在Ubuntu上:1. 打开Applications(应用程序)>Ubuntu Software Center(Unbuntu软件中心),打开Ubuntu软件中心。2. 然后点击Edit(编辑)>Software Sources(软件源)。选择Other Software(其他软件)选项卡,点击Add(添加)。然后输入下列apt行:ppa:ubuntu-winea3. 从左边的Get Software(取得软件)部分中选择“PPA for Ubuntu Wine Team”,然后选择Microsoft Windows Compatibility Layer(Development files) – wine1.3-dev。点击Install(安装)。这会安装最新的Wine软件包,包括开发库。提示:卸载现有的Wine软件包,以确保最大的兼容性。另外,如果想干净安装,你可以删除Wine用户目录,为此迟迟岩可以从主目录中使用命令rm -r -v .wine。二. 安装Wine支持包现在,我们需要安装非开源(但免费)的支持包。这包括微软Core Fonts、Visual C++运行时环境等软件包。不妨继续深入介绍。安装Cabextract:需要该软件包来解压缩微软.cab文件。$ sudo apt-get install cabextract下载winetricks脚本:现在我们需要下载一个很棒的脚本,名为winetricks,它会自动下载和安装必要的支持包。$ wget http://winetricks.org/winetricks现在输入下列命令,安装必要的支持包:$ sh winetricks corefonts Tahoma提示:你还可以不用任何命令行参数来运行winetricks,那样就能从漂亮的GUI界面选择需要安装的软件包。三. 安装微软Office在本例中,我们将安装微软Office 2007。插入微软Office 2007光盘,鼠标右击setup.exe,选择“Open With Windows Program Loader”。这应该会启动微软Office安装程序。以平常的方式来安装,就像你在任何Windows系统上安装那样。四. 建立库鉴于已安装好了微软Office 2007,我们要确保Wine已经过配置,可以顺利使用该应用软件。你也看到,Wine以自己的方法实施了各种Windows库,但我们可以直接使用原生的Windows库,确保应用程序有最大的兼容性。Wine随带自己的配置工具:winecfg。除了其他功能外,该工具还让我们可以在内置版本的库与原生版本的库之间切换。输入命令winecfg,即可打开Wine配置工具。进入到Libraries(库)选项卡,把riched20和usp10添加到“native, builtin”。这表明,Wine应该先试着装入原生的Windows库要是没有这些库,它会试着装入内置的库。五. 运行微软Office微软Office现在应该已出现在Ubuntu程序菜单中。可以先后进入到Application(应用程序)>Programs(程序)>Microsoft Office(微软Office)来访问它。这个过程确实相当简单。如果你只想临时运行某个Windows程序,假设兼容性很好,那么全都妥当了但是高级用户想要再深入一步的话,需要继续读下去。[NextPage]使用Winelib构建Windows应用程序 如果你想不受微软的约束,Wine确实大有帮助。这年头,连第三方的Windows应用开发人员都要受微软的支配。比如说,Windows多媒体应用开发人员处理最简单的任务都要依赖DirectX。DirectX是微软的专属财产,别人谁也无法访问不了源代码。有一天,微软可能会开发DirectX的一些独特功能,由于这些功能没有列入文档,独立软件开发商访问不了这些功能。那样的话,Windows Media Player将是该平台上最好的多媒体播放器,因为其他播放器被迫依赖DirectX,又无法完全控制它。欢迎来到Linux社区:在这里,没有什么是不可能的。不妨再以DirectX为例。Wine以自己的方法实施了DirectX(借助Transgaming Technologies而实现)。Wine实施了常见的多媒体应用编程接口(API),比如Direct3D、DirectInput、DirectSound、DirectShow及其他许多API,实施的办法就是将它们与功能强大的、开放的Linux对应API联系起来,如OpenGL、X11和ALSA/OSS API。因而,将DirectX应用程序移植到Linux时,你可以使用所有这些开放的技术。Winelib可以用作将应用程序从Windows平台取出来放到Linux系统上的第一步。然后,可以逐渐充分利用Linux提供的所有功能。Winelib能够在Linux上运行和编译Windows应用程序,不需要Windows。Winelib是Wine项目的一部分。它以开源的方式实施了Win32 API,基于Linux和X Window 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. 进入到上述目录,发出下列命令:$winemaker -lower-uppercase$./configure -with-wine=/usr/wine/$make这下大功告成了。现在你可以安装或执行构建的库了。Hello World我们不妨在常用的Hello World Visual C++应用程序上试一下Winelib:*--------hello.c ----------*/#includeint main(int argc, char** argv) { MessageBox(NULL, “Hello Readers, Welcome to Winelib.”, “Hello”, MB_OK)return 0}Compiling and executing$ winegcc hello.c -o hello$ ./hello.exe注意:需要GCC 4.5用Winelib来构建应用程序。想安装GCC 4.5,输入下列命令:$ sudo apt-get install gcc-4.5欢迎分享,转载请注明来源:内存溢出
评论列表(0条)