民间简介
Wine民间版名目由 Bob Amstadt 于1993年建议,旨在谋求一种在 Linux 上运行Windows3.1挨次的措施。不久之后,Alexandre Julliard 开始接手向导Wine的开拓,日后由他规画这个名目。 多年以来,随着Windows API以及运用为了顺应新硬件及软件而不断演化,Wine也不断不断睁开来反对于新的特色,移植到更多其余零星,而且愈加晃动,提供着更好的用户体验。
经由建树一个巍峨的目的,在2008年名目抵达 v1.0 以前,Wine 不断安妥地不断了 15 年之久,那是第一个晃动版。 多个版本之后,尽管尚有良多使命要做,但明天 Wine 依然在沉闷地开拓着。 而且有约莫数以百万人计的人们运用 Wine 在他们所抉择的零星上运行 Windows 软件。
功能介绍
可能做甚么
本文中,咱们品评辩说的是Wine电脑版在纯 Linux 上的装置,不任何 Windows 分区。
1. Windows可实施文件:
Wine 残缺反对于 Windows可实施文件( .exe 以及 DLL)的二进制加载。
2. DLL:
Wine 有多少百个 Windows DLL 的外部实现 -- 不外,其中不多少多是残缺的实现。好比,搜罗实用户界面相关函数的 userd32.dll 在凋谢源代码的 Wine 中实现为了 92%。
3. COM:
这是一种简直被所有的大型 Windows运用挨次所运用的 Windows 技术,它反对于诸如将一个 Excel 电子数据表嵌入到 Word 文档中等功能。这一技术患上到了 Wine 的很好的反对于。
4. 注册表:
这是另一个简直任何一个 Windows运用挨次都市运用的关键技术,Wine 实现为了约莫 90% 的 Windows 注册表规画 API。
5. 中间功能:
中间零星功能也患上到了特意好的反对于。如前面提到的,尽管 Linux 以及 Windows 之间存在差距,可是根基的条理上尚有良多相似之处,因此与历程、线程、文件以及新闻行排队伍相关的中间零星 API 患上到了近乎欠缺的反对于。
6. 音频以及视频:
Wine 反对于 Windows 音频以及视频文件的运行(还可能运用 Windows媒体播放器)。
7. 打印:
也患上到了反对于,可能从一个在 Wine 中运行的 Windows运用挨次妨碍打印。
8. ODBC:
Wine 反对于那些需要经由 ODBC 碰头数据库的 Windows 运用挨次。
9. 调试:
Wine中文版有一个颇为健壮以及强盛的内置调试器,除了反对于尺度的调试功能外,它还为调试运行于 Linux 上的 Windows 二进制挨次妨碍了定制。它是 Wine 为其开拓者提供的最紧张工具之一。Wine 尚有一个妄想残缺的追踪以及记实日志的模块,可能辅助调试。咱们之以是夸张这一点,原因在于,尽管框架是健壮的,可是,当在 Wine 中装置以及运行 Windows运用挨次时有良多不断定因素,在运用凋谢源代码的 Wine 时早晚会停下来妨碍调试。
不能做甚么
可怜的是,良多用户发现 Wine 难于运用。尽管,在 Linux 上运用相似于 MS Office 这样的运用挨次可能是难题的;在这里咱们来看一些原因,为甚么简直是这样。在开始以前,咱们理当指出,CodeWeavers 提供的商用 Wine (CrossOver)已经处置了大部份此类下场(参阅参考质料以取患上链接)。假以光阴,这些下场将可能在凋谢源代码的 Wine 中同样患上到处置。
1. 运用命令行(早期版本)
与大部份 Linux 中的运用挨次同样,在开拓早期 Wine 必需在命令行中装置。用户必需回到命令行中来在 Wine 下运行运用挨次。好比,要运行Internet Explorer,用户个别需要在 shell 中输入 wine IEXPLORE.EXE 。尽管履历丰硕的用户喜爱这样做,但初学者会发现这比力难题,而且不太可能清晰起又名等快捷方式。不外,在较新的版本中用户也可能直接双击EXE文件运行(假如妨碍了分割关连)。尽管这样会给魔难过错信息带来难题,但这无疑极大天时便了用户的运用。
2. 配置装备部署
Wine 的配置装备部署较为重大。除了命令行,较新的版本已经有了简体中文的界面,对于初学者来说,配置装备部署重大了良多。
3. 作废对于潜在文件的潜在
假如挂载 CDROM 时不运用特意的 unhide 选项,那末装置 CD 上的潜在文件可能会无奈找到,从而导致装置失败。
4. 格外的调解历程
Wine 装置很少能直接运用(对于它来说也便是从 tarfile 解开)。个别需要妨碍周全的调解;好比,一个挨次的装置可能与您在配置装备部署文件中配置的 Windows 版本不相容;而更正那个版本又可能会影响一些已经装置的运用挨次。对于良多 DLL 来说也是如斯。为此,Wine 提供了一个怪异的修复,让您可能配置特定于运用挨次的属性,不外,艰深的用户可能不会像咱们同样知足。
5. 格外的装置步骤
大部份运用挨次的装置历程都不是尺度的。好比当咱们装置 Internet Explorer 6 时,必需跳过一些步骤,好比 DCOM98 的定位与装置。对于用户来说,这种使命可能是最大的拦阻。
留意,这些并非症状,而是举例剖析了是哪些种类的使命导致对于艰深用户来说 Wine 看起来重大而且难题。
更多 Wine 所不能做的
看完 Wine 的可用性下场后,让咱们来总结在试验运用 Wine 时一些罕有的技术下场。
1. 缺少 DLL
这可能是最罕有的下场:良多装置由于缺少 DLL 而失败,这时需要熟练运用调试器来抉择下一步(稍后将深入品评辩说调试器)。处置下场的最佳措施是由过错信息追寻到所需的DLL,并妨碍装置。这些都可能难倒初学者。
2. DLL 版本下场
一些装置挨次在开始以前会魔难现有的零星 DLL。Wine 处置这一下场的措施是,建树假 DLL 以知足装置挨次的需要。不外,有一些装置挨次会更进一步并深入魔难 DLL 以取患上它们的版本。这对于假的 DLL 来说要求过高了,会导致装置失败。
3. DLL 加载秩序
Wine 有对于良多 Windows DLL 的实现,而且假如可用,它还可能运用原始的 Windows DLL。假如两种 DLL 均可用,在初学者看来理当抉择总是运用 Windows 自己的 DLL,但实际上 Windows DLL 无意会搜罗不能被知足的依赖。要判断是更理当运用 Wine 的 DLL 仍是理当运用本机 DLL,仅有的措施是,基于各个运用挨次一再妨碍试验。
4. DLL 中的函数
当一个 Wine DLL 不实现 Windows 中响应的 DLL 的全副功能时,运用挨次可能会蒙受函数调用失败。由于 DLL 是动态加载的,可能不措施当时知道会爆发这样的使命。这是一个重大的下场,有一些可做的使命,但最终实际来说它只是取决于运用挨次的代码若何编写。
有一些因素会减轻这些下场。一方面,您可能会一个一个地碰着这些下场,而不是一次碰着全副属场,这样处置起来要简略些。此外,您碰着的那些下场可能其余人曾经碰着过并已经处置(而且处置妄想已经宣告进去)。Wine 用户组颇为沉闷,会提供良多辅助,每一周一次的 Wine 时事通讯(参阅 参考质料)是极好的信息资源。
Wine 中尚未实现的 Win32 API
在 Wine 中,良多 Win32 API5 的函数是残缺不全的。最罕有的原因是,至关多的 Win32 API 并无被文档化。这就象征着一个特意的运用挨次可能会调用某个函数,而残缺不对于此函数的可用质料。好比,咱们在运行一个重大的 RPC 挨次时发现了 RtlAnsiCharToUnicodeChar 这个函数。在 MSDN 上的搜查服从展现不对于这个函数的质料,而且不对于所有 RtlXXXX 种别函数的质料。因此,假如它们在 Wine 中的实现对于一些运用挨次来说至关紧张,那末人们可能惟独去预料它们的行动了。
运用措施
Wine可能在绝大少数的Unix/Linux版本下使命,但其如今仍不能残缺运行所有的Windows挨次。不外由于简直每一个月都有新版本,越来越多的Windows挨次已经能在Wine的帮手下在Linux中运行。
一、直接运行挨次
运用命令 wine
[root@localhost root]#wine <挨次名>
二、运用挨次规画器
[root@localhost root]#progman
启动规画器窗口,从菜单中抉择 文件(F)-实施(X),就会弹出一个目录浏览器,抉择挨次即可。
三、直接双击 EXE 挨次
一些刊行版装置WINE时会自动分割关连EXE挨次,这样直接双击可能运行。
某些重大挨次可直接运行,而不需要装置。大部份Windows软件的装置,请由Wine掀开装置包(exe文件)而后以及Windows下以同样的措施装置挨次即可。这样装置的挨次理当会在桌面情景的挨次列表中自动添减速捷方式(以及Windows下的快捷方式相似),抉择即可运行挨次。
▲留意:Wine运行某些挨次,如MS Office、迅雷、QQ、某些游戏等的兼容性仍不美满。要个别运用此类软件,可能以残缺的伪造机替换(如Virtualbox、VMWare),概况在网上搜查查找已经知的处置措施或者针对于特定软件的装置包。