Welcome to my testing room.

wine(转)

上一篇 / 下一篇  2008-11-14 11:38:12 / 个人分类:Debian configure

Yo3b1p X*Gm5r!j0概述  

)D~6P9?&L051Testing软件测试网T#G*MFV

    刚刚步入Linux,难免要有时利用一下Windows的程序资源,Wine提供了一个用来运行Windows程序的平台。51Testing软件测试网 q+l+I i+C/[.?*u(eH
51Testing软件测试网KRE;faw y-@I%J

  Wine (Wine Is Not an Emulator)[即Wine不仅仅是一个模拟器]是一个在X和UNIX之上的,Windows 3.x 和 Windows APIs的实现.它是一个Windows兼容层,用通俗的话说,就是一个Windows模拟器,这个层即提供了一个用来从Windows源进出到UNIX的开发工具包(Winelib),也提供了一个程序加载器,该加载器允许不用任何修改Windows 3.1/95/NT的二进制文件,就可以运行在Intel Unix及其衍生版本下.Wine可以工作在绝大多数的UNIX版本下,包括Linux, FreeBSD, 和 Solaris. Wine不需要Microsoft Windows, 因为这是一个完全由百分之百的免费代码组成的,可以选择的实现,但是它却可以随意地使用本地系统的DLLs,如果它们是可以被利用的话.Wine的发布是完全公开源代码的,并且是免费发行的。
l9|2si;g#^0
  目前 Wine 仍在发展阶段,但是较新的版本可以运行一些著名软件,甚至是 Photoshop CS3!
/a m%sJ'cTP?cJ0
  Wine的官方站点是http://www.winehq.com/,虽然你可以在它的官方站点下载源代码,自己配置编译,不过这个过程可是比较繁琐的!

编辑本段编译安装

  如果你安装了编译所需要的软件(如 gcc flex bison fontforge ),就可以进行编译了!51Testing软件测试网2]I2anqxI UM&P:b1`
  首先,访问 http://www.winehq.com/ 下载最新版本的 wine,解压到一个目录51Testing软件测试网2A`W)i` }1c*d1BK
  打开终端("Terminal"),输入以下命令:51Testing软件测试网-^5ZuO}.m4]/Qs#j
  cd <你解压的目录> #进入目录51Testing软件测试网v5a u OM;SH$V0|&y
  ./configure # 检查编译环境51Testing软件测试网;DzN Xc%j
  make #若上一步成功的话,即可进行编译
6I$MR0?%^E o0
  make install #安装51Testing软件测试网"Qi"@YJXrA
  即可完成 Wine 的编译。
?y:l!Y]/U#pa e0
  注意:编译 WINE 一般需要一个小时(视机器性能而定),若你是刚刚接触 Linux 不久的人,最好不要进行编译。

编辑本段下载及安装

  若你使用 Debian 或者 Ubuntu 之类的发行版,只需要一个命令即可完成安装:
T2K iyF,pI Q1n0
  apt-get install wine51Testing软件测试网q!F#G-Q3B{
  若你使用的为其他发行版,请访问 http://winehq.org/site/download 查询安装方法

编辑本段Wine 的配置

  运行 winecfg 即可,里面有详尽的配置。
Mp2f-QD?eB0
  注意:Wine 1.1.4 以上版本的 winecfg 已经是中文界面了。

编辑本段Wine 中文乱码的解决

  Wine 1.1.4 以上版本的中文支持得到了极大改善。如果您在使用较低版本的WINE或者对WINE的中文支持不满意,可以把下面文字保存为 zh.reg 文件,运行 regedit 导入它即可51Testing软件测试网I tJ${!z
  REGEDIT451Testing软件测试网}hpu+?)j
  [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]
Ab:m;xt y0
  "Arial"="WenQuanYi Zenhei"51Testing软件测试网6x(v+{K(w{g*J"tR
  "Arial CE,238"="WenQuanYi Zenhei"
4EXD:L q R0
  "Arial CYR,204"="WenQuanYi Zenhei"51Testing软件测试网C ?i`)N#Pz1po
  "Arial Greek,161"="WenQuanYi Zenhei"
Ldo&sm+y0
  "Arial TUR,162"="WenQuanYi Zenhei"51Testing软件测试网 `9b_3t'~ tb`w
  "Courier New"="WenQuanYi Zenhei"51Testing软件测试网akL5S4tuK R
  "Courier New CE,238"="WenQuanYi Zenhei"
H5KGd#w0
  "Courier New CYR,204"="WenQuanYi Zenhei"51Testing软件测试网%abD2m&t:|%LOP
  "Courier New Greek,161"="WenQuanYi Zenhei"
gU\^2Lf F&}m0
  "Courier New TUR,162"="WenQuanYi Zenhei"
3A6t7L9t&]7ur0
  "FixedSys"="WenQuanYi Zenhei"51Testing软件测试网gN?u*gs9_-[,ZW
  "Helv"="WenQuanYi Zenhei"
D:KP.|s;Sg0
  "Helvetica"="WenQuanYi Zenhei"
4m5|C\@g)u0
  "MS Sans Serif"="WenQuanYi Zenhei"
X Ofnk_R%{#Y0
  "MS Shell Dlg"="WenQuanYi Zenhei"51Testing软件测试网:d9{+Adlt}f
  "MS Shell Dlg 2"="WenQuanYi Zenhei"
s0a-k)~.v&Rh M^ uN0
  "System"="WenQuanYi Zenhei"
:U3R6h`4P'`,v0
  "Tahoma"="WenQuanYi Zenhei"51Testing软件测试网SCkG:r8M
  "Times"="WenQuanYi Zenhei"51Testing软件测试网i%~Og{;P-ESBK
  "Times New Roman CE,238"="WenQuanYi Zenhei"
4m*E7A&_A@"~ i0
  "Times New Roman CYR,204"="WenQuanYi Zenhei"51Testing软件测试网!mhj3P YZ\$V
  "Times New Roman Greek,161"="WenQuanYi Zenhei"51Testing软件测试网x,?J6A/]:_W
  "Times New Roman TUR,162"="WenQuanYi Zenhei"51Testing软件测试网+W,q0a q C'iG7k v
  "Tms Rmn"="WenQuanYi Zenhei"

编辑本段官方介绍

  Wine is an Open Source implementation of the Windows API on top of X, OpenGL, and Unix.51Testing软件测试网5O3Xi#t I0O3Lus
  Think of Wine as a compatibility layer for running Windows programs. Wine does not require Microsoft Windows, as it is a completely free alternative implementation of the Windows API consisting of 100% non-Microsoft code, however Wine can optionally use native Windows DLLs if they are available. Wine provides both a development toolkit for porting Windows source code to Unix as well as a program loader, allowing many unmodified Windows programs to run on x86-based Unixes, including Linux, FreeBSD, Mac OS X, and Solaris.
hX)G(d[:r6m0
  More information can be read in the articles Why Wine is so important, and Debunking Wine Myths. If you are wondering how well a particular application works in Wine, please examine the Applications Database. For installation instructions and step-by-step help with running Wine, take a look at the User Guide.
;s e1im;Ee/i0
  Wine is free software. The licensing terms are the GNU Lesser General Public License.

编辑本段Wine的简单使用方法

  Wine可以在绝大多数的Unix版本下工作,但其现在仍不能完全运行所有的Windows程序,不过由于几乎每个月都有新版本,越来越多的Windows程序已经能在Wine的帮助下在Linux中运行。51Testing软件测试网Uyd%P2Nc|
  1、直接运行程序51Testing软件测试网7T N#n.A&z6m
  使用命令 wine51Testing软件测试网2jI wW Ee c L,KR} A
  [root@localhost root]#wine <程序名>51Testing软件测试网.g&G d qcE:}1p!Le
  2、使用程序管理器
PiSq r6L0
  [root@localhost root]#progman
X4^|zb.`2V^ N0j)u7RE%F K0
  启动管理器窗口,从菜单中选择 文件(F)-执行(X),就会弹出一个目录浏览器,选择程序即可。51Testing软件测试网K.\xSi\l2q
  3、直接双击 EXE 程序51Testing软件测试网u6r7{9s [$q&? p/Xnd%NV
  一些发行版安装WINE时会自动关联EXE程序,这样直接双击可以运行。
F$`kifJEY+`(E'b0
  某些简单程序可直接运行,而不需要安装。

编辑本段举例:Wine运行国泰君安股票软件

  如果大家经常用Linux桌面(如Ubuntu),可以用以下的方法把国泰君安股票软件安装到Ubuntu系统中。51Testing软件测试网$]~j*BB j~6S8Yz0j;pQ
  1. 安装Wine
N@usn.c B#h0
  sudo apt-get install wine
e8L1^#S:U8E8fUt0
  2. 下载国泰君安股票安装软件51Testing软件测试网2F)l;e7Y5Y$qo1Ci
  3. 把当前目录更换到有国泰君安股票软件的目录
:a/Z7q"T#qn0
  运行以下命令:51Testing软件测试网P,jK/TB`
  wine setup_dzh5_fuyi.exe51Testing软件测试网 ~ BYAW/p3I1h
  这时象在Microsoft Windows中一样的安装界面就会出现,按提示安装。
8a.NT yvi:q0
  注意:如果这时出现乱码,可能是由于Wine中的字体替换出了问题,请参考以下链接:http://forum.ubuntu.org.cn/viewtopic.php?t=72933
`@!k*mD7x!d0
  ---51Testing软件测试网vqx|!] Y`f*G Y8U
  4. 运行国泰君安股票软件
$AXV Csp,`!j6F0
  运行以下命令:51Testing软件测试网!fQ4a,L` C
  cd ~/.wine/drive_c/DZH5/internet/51Testing软件测试网{Q,K%XgE8c
  wine Hypmain.exe

编辑本段Wine可以做什么

  本文中,我们讨论的是 Wine 在纯 Linux 上的安装,没有任何 Windows 分区。
)Q4J~'jG0
  1. Windows 可执行文件:51Testing软件测试网soT v8C:n9`
  Wine 完全支持 Windows 可执行文件( .exe 和 DLL)的二进制加载。
\bZ'[$q;o:h/`-Bf*}0
  2. DLL:
*mWsdL3u0
  Wine 有几百个 Windows DLL 的内部实现 -- 不过,其中没有多少是完全的实现。例如,包含有用户界面相关函数的 userd32.dll 在开放源代码的 Wine 中实现了 92%。
B@*Q ~,[a-Xvz"q!r,Q0
  3. COM:
H"?;y1o7xCL)v C0
  这是一种几乎被所有的大型 Windows 应用程序所使用的 Windows 技术,它支持诸如将一个 Excel 电子数据表嵌入到 Word 文档中等功能。这一技术得到了 Wine 的很好的支持。51Testing软件测试网"\T s|!~g0v\1m
  4. 注册表:
Y3C8MHq/xc0
  这是另一个几乎任何一个 Windows 应用程序都会使用的关键技术,Wine 实现了大约 90% 的 Windows 注册表管理 API。
;^8LaleZ o;U0
  5. 核心功能:51Testing软件测试网s+]2Eu| B
  核心系统功能也得到了特别好的支持。如前面提到的,尽管 Linux 和 Windows 之间存在区别,但是基本的层次上还有很多类似之处,因此与进程、线程、文件和消息队列相关的核心系统 API 得到了近乎完美的支持。51Testing软件测试网;fpmF9sc[`kx
  6. 音频和视频:
.gC+La.~,~/n0
  Wine 支持 Windows 音频和视频文件的运行(还可以使用 Windows 媒体播放器)。
z[&|0rQ%n2D4\Y8K0
  7. 打印:
)Ug2b t aAV;[0
  也得到了支持,可以从一个在 Wine 中运行的 Windows 应用程序进行打印。51Testing软件测试网2D+m JHy9[wz
  8. ODBC:
iO\F D8v glGR0
  Wine 支持那些需要通过 ODBC 访问数据库的 Windows 应用程序。51Testing软件测试网7J\PD3@'Z,O
  9. 调试:51Testing软件测试网 sQmj"E
  Wine 有一个非常健壮和强大的内置调试器,除了支持标准的调试功能外,它还为调试运行于 Linux 上的 Windows 二进制程序进行了定制。它是 Wine 为其开发者提供的最重要工具之一。Wine 还有一个设计完备的追踪和记录日志的模块,可以帮助调试。我们之所以强调这一点,原因在于,尽管框架是健壮的,但是,当在 Wine 中安装和运行 Windows 应用程序时有很多不确定因素,在使用开放源代码的 Wine 时迟早会停下来进行调试。

编辑本段Wine 不能做什么

  不幸的是,很多用户发现 Wine 难于使用。诚然,在 Linux 上使用类似于 MS Office 这样的应用程序可能是困难的;在这里我们来看一些原因,为什么确实是这样。在开始之前,我们应该指出,CodeWeavers 提供的商用 Wine (CrossOver)已经解决了大部分此类问题(参阅参考资料以获得链接)。假以时日,这些问题将可能在开放源代码的 Wine 中同样得到解决。
g1N-B a.u1f0
  1. 使用命令行
9]'zS+\ Y9]S(PGC0
  与大部分 Linux 中的应用程序一样,Wine 必须在命令行中安装。用户必须回到命令行中来在 Wine 下运行应用程序。例如,要运行Internet Explorer,用户通常需要在 shell 中输入 wine IEXPLORE.EXE 。尽管经验丰富的用户喜欢这样做,但初学者会发现这比较困难,而且不太可能懂得起别名等快捷方式。不过,现在用户也可以直接双击EXE文件运行(如果进行了关联),尽管这样会给查看错误信息带来困难。51Testing软件测试网3KJ"f9B*~P"e'K
  2. 配置51Testing软件测试网/z6^ w l c%R&h
  Wine 的配置较为复杂。不过现在有了简体中文的界面,对于初学者来说,配置简单了不少。
!iw/b JzN0
  3. 取消对隐藏文件的隐藏
5P7QT \9P@ t0
  如果挂载 CDROM 时没有使用专门的 unhide 选项,那么安装 CD 上的一些文件可能会无法找到,从而导致安装失败。
ci`(R:Q0hl;k0
  4. 调整配置
D@H%u6xb+e"PlV0
  Wine 安装很少能直接使用(对它来说也就是从 tarfile 解开)。通常需要进行全面的调整;例如,一个程序的安装可能与您在配置文件中设置的 Windows 版本不相容;而修改那个版本又可能会影响一些已安装的应用程序。对很多 DLL 来说也是如此。为此,Wine 提供了一个巧妙的修复,让您可以设置特定于应用程序的属性。不过,一般的用户可能不会像我们一样满意。
[p"b5tDvo0
  5. 额外的安装步骤51Testing软件测试网-]@ ~lp9V d3s
  大部分应用程序的安装过程都不是标准的。例如,当我们安装 Internet Explorer 6 时,必须跳过一些步骤,比如 DCOM98 的定位与安装。对用户来说,这类事情可能是最大的障碍。51Testing软件测试网u:P7I$Sat9n
  注意,这些并不是病症,而是举例说明了是哪些种类的事情导致对一般用户来说 Wine 看起来复杂而且困难。
N K5s)L(\!Fu#H/O6l qH0
  更多 Wine 所不能做的51Testing软件测试网q G)WI/vu$E
  看完 Wine 的可用性问题后,现在让我们来总结在尝试使用 Wine 时一些常见的技术问题。
)cWc/UUZX0
  1. 缺少 DLL51Testing软件测试网*?B~ q"A`7a
  这可能是最常见的问题:很多安装由于缺少 DLL 而失败。人们应该熟练使用调试器来决定下一步如何去做。(稍后将深入讨论调试器)。
h LcjN Z(u!?0S0
  2. DLL 版本问题
?4tMe+_qZg0
  一些安装程序在开始之前会检查现有的系统 DLL。Wine 解决这一问题的方法是,创建假 DLL 以满足安装程序的需要。不过,有一些安装程序会更进一步并深入检查 DLL 以获得它们的版本。这对假的 DLL 来说要求太高了,会导致安装失败。51Testing软件测试网2AjsZ(i
  3. DLL 加载次序
D$Q#aZ*q+a%T0}Y0
  Wine 有对很多 Windows DLL 的实现,而且如果可用,它还可以使用原始的 Windows DLL。如果两种 DLL 都可用,好像显然应该选择总是使用 Windows 自己的 DLL,但实际上 Windows DLL 有时会包含不能被满足的依赖。要确定是更应该使用 Wine 的 DLL 还是应该使用本机 DLL,惟一的方法是,基于各个应用程序反复进行试验。51Testing软件测试网l"RX z%[ay
  4. DLL 中的函数51Testing软件测试网 o6k\G/}*YE%F
  当一个 Wine DLL 没有实现 Windows 中相应的 DLL 的全部功能时,应用程序可能会遭遇函数调用失败。由于 DLL 是动态加载的,可能没有办法事先知道会发生这样的事情。这是一个复杂的问题,有一些可做的工作,但最终实际来说它只是取决于应用程序的代码如何编写。51Testing软件测试网(I1{a)WX _
  有一些因素会减轻这些问题。一方面,您将会一个一个地遇到这些问题,而不是一次遇到全部问题,这样处理起来要容易些。另外,您遇到的那些问题可能其他人曾遇到过并已经解决(而且解决方案已经公布出来)。Wine 用户组非常活跃,会提供许多帮助,每周一次的 Wine 时事通讯(参阅 参考资料)是极好的信息资源。51Testing软件测试网d~.R?yC)h
  Wine 中还没有实现的 Win32 API51Testing软件测试网 AE.I PQ5L
  在 Wine 中,很多 Win32 API5 的函数是残缺不全的。最常见的原因是,相当多的 Win32 API 并没有被文档化。这就意味着一个特别的应用程序可能会调用某个函数,而完全没有关于此函数的可用资料。例如,我们在运行一个简单的 RPC 程序时发现了 RtlAnsiCharToUnicodeChar 这个函数。在 MSDN 上的搜索结果显示没有关于这个函数的资料,而且没有关于所有 RtlXXXX 类别函数的资料。因此,如果它们在 Wine 中的实现对一些应用程序来说至关重要,那么人们可能只有去猜测它们的行为了。

TAG:

 

评分:0

我来说两句

日历

« 2024-04-28  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 31123
  • 日志数: 54
  • 图片数: 1
  • 建立时间: 2008-10-20
  • 更新时间: 2010-01-13

RSS订阅

Open Toolbar