Welcome to my testing room.

wine(转)

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

b!c&J8dl0概述  

0h+a4^"f c2vr*\3~0

)nG(p@z gf.l7{"D0    刚刚步入Linux,难免要有时利用一下Windows的程序资源,Wine提供了一个用来运行Windows程序的平台。51Testing软件测试网9r9U;\x.h;D
51Testing软件测试网q'f:Wp L

  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的发布是完全公开源代码的,并且是免费发行的。
SV Q$p1fe0
  目前 Wine 仍在发展阶段,但是较新的版本可以运行一些著名软件,甚至是 Photoshop CS3!
@]-sJ9w'WS0
  Wine的官方站点是http://www.winehq.com/,虽然你可以在它的官方站点下载源代码,自己配置编译,不过这个过程可是比较繁琐的!

编辑本段编译安装

  如果你安装了编译所需要的软件(如 gcc flex bison fontforge ),就可以进行编译了!
(Xs"KVG0
  首先,访问 http://www.winehq.com/ 下载最新版本的 wine,解压到一个目录
y/b {3wGJP|7o0
  打开终端("Terminal"),输入以下命令:51Testing软件测试网$zC/bs&q\Y7T~6T
  cd <你解压的目录> #进入目录51Testing软件测试网!RMV*rj^ vom
  ./configure # 检查编译环境51Testing软件测试网*\|)M+x%d*Oe
  make #若上一步成功的话,即可进行编译
dY!gBs0
  make install #安装51Testing软件测试网Av#y&V ^9jN5w;gm @
  即可完成 Wine 的编译。
S+e8q+Jy3c$Ri4q0
  注意:编译 WINE 一般需要一个小时(视机器性能而定),若你是刚刚接触 Linux 不久的人,最好不要进行编译。

编辑本段下载及安装

  若你使用 Debian 或者 Ubuntu 之类的发行版,只需要一个命令即可完成安装:51Testing软件测试网4dlv&v*`8n9SGl`
  apt-get install wine
:l5Z oE TZ0
  若你使用的为其他发行版,请访问 http://winehq.org/site/download 查询安装方法

编辑本段Wine 的配置

  运行 winecfg 即可,里面有详尽的配置。
(f7^-P qe1el_5`E0
  注意:Wine 1.1.4 以上版本的 winecfg 已经是中文界面了。

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

  Wine 1.1.4 以上版本的中文支持得到了极大改善。如果您在使用较低版本的WINE或者对WINE的中文支持不满意,可以把下面文字保存为 zh.reg 文件,运行 regedit 导入它即可51Testing软件测试网`*F6CS{*V7k L:p
  REGEDIT451Testing软件测试网,G ]]Co4l'w#my&Y
  [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]
"c!i*t+~7`.^ ]a)L0
  "Arial"="WenQuanYi Zenhei"51Testing软件测试网U.G_!f4t3^)Ae._ b
  "Arial CE,238"="WenQuanYi Zenhei"
N`Il'X4K JB,j`0
  "Arial CYR,204"="WenQuanYi Zenhei"
D*F2K+tK9f+i,F0
  "Arial Greek,161"="WenQuanYi Zenhei"
z3@#~9Ky&I0
  "Arial TUR,162"="WenQuanYi Zenhei"51Testing软件测试网3k*N$]g&DW
  "Courier New"="WenQuanYi Zenhei"51Testing软件测试网aQ K&`5S#V
  "Courier New CE,238"="WenQuanYi Zenhei"51Testing软件测试网i,^)CZ|D[
  "Courier New CYR,204"="WenQuanYi Zenhei"51Testing软件测试网,`3[U_1Wl*S
  "Courier New Greek,161"="WenQuanYi Zenhei"
} |3K2YLg6TY0
  "Courier New TUR,162"="WenQuanYi Zenhei"
1UFs6jU?'r0hR#Z:qQ0
  "FixedSys"="WenQuanYi Zenhei"
*R6J X n{c!c \/^0
  "Helv"="WenQuanYi Zenhei"51Testing软件测试网e4["V6~b%q
  "Helvetica"="WenQuanYi Zenhei"51Testing软件测试网@D@Ae"na?
  "MS Sans Serif"="WenQuanYi Zenhei"51Testing软件测试网o"nU!l1O"Y6eO
  "MS Shell Dlg"="WenQuanYi Zenhei"
1m S2Bq,{0
  "MS Shell Dlg 2"="WenQuanYi Zenhei"51Testing软件测试网\+y gZ)h
  "System"="WenQuanYi Zenhei"51Testing软件测试网V%p*`W,hv ]'L
  "Tahoma"="WenQuanYi Zenhei"51Testing软件测试网"pef7x-Rq
  "Times"="WenQuanYi Zenhei"
0L8y @/O C(q3Z{{?0
  "Times New Roman CE,238"="WenQuanYi Zenhei"51Testing软件测试网kIPQ}-U-V
  "Times New Roman CYR,204"="WenQuanYi Zenhei"51Testing软件测试网}+z L\*Otv*oZ/?,T
  "Times New Roman Greek,161"="WenQuanYi Zenhei"51Testing软件测试网_'c e/VTU0~
  "Times New Roman TUR,162"="WenQuanYi Zenhei"51Testing软件测试网"D,}H/a9^Z
  "Tms Rmn"="WenQuanYi Zenhei"

编辑本段官方介绍

  Wine is an Open Source implementation of the Windows API on top of X, OpenGL, and Unix.51Testing软件测试网!yo;y XI5\v3F)_
  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.51Testing软件测试网n?3Q9J8f}.a*J
  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.
iIk#{r`;IS0
  Wine is free software. The licensing terms are the GNU Lesser General Public License.

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

  Wine可以在绝大多数的Unix版本下工作,但其现在仍不能完全运行所有的Windows程序,不过由于几乎每个月都有新版本,越来越多的Windows程序已经能在Wine的帮助下在Linux中运行。
*v[S.hJL o#e(Eu|$J0
  1、直接运行程序
P$`8B!?1y_HR{0
  使用命令 wine51Testing软件测试网2Vr(KJ2^!X\}
  [root@localhost root]#wine <程序名>
A"Rm%Yk Q h7Uo0
  2、使用程序管理器51Testing软件测试网DMu$y*aqfBTq;z
  [root@localhost root]#progman
:`VjHf^j$RO0
  启动管理器窗口,从菜单中选择 文件(F)-执行(X),就会弹出一个目录浏览器,选择程序即可。51Testing软件测试网J6T,t;?7h
  3、直接双击 EXE 程序51Testing软件测试网V W}h7bVgN1mu
  一些发行版安装WINE时会自动关联EXE程序,这样直接双击可以运行。51Testing软件测试网"xf&SY/sMJ4F
  某些简单程序可直接运行,而不需要安装。

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

  如果大家经常用Linux桌面(如Ubuntu),可以用以下的方法把国泰君安股票软件安装到Ubuntu系统中。51Testing软件测试网eQmSJq3c
  1. 安装Wine
X%vqY~[$k1CPi0
  sudo apt-get install wine51Testing软件测试网7R4?P{a
  2. 下载国泰君安股票安装软件51Testing软件测试网g yc } y*`$~*O
  3. 把当前目录更换到有国泰君安股票软件的目录
\"dk%I-b,c rd&\0
  运行以下命令:
-oo!}SyfME+|0
  wine setup_dzh5_fuyi.exe
Iz3W(`}[ n[\ M/] ?0
  这时象在Microsoft Windows中一样的安装界面就会出现,按提示安装。51Testing软件测试网E7w-Z4uJ+s"rs6B h
  注意:如果这时出现乱码,可能是由于Wine中的字体替换出了问题,请参考以下链接:http://forum.ubuntu.org.cn/viewtopic.php?t=72933
}a1lY2W-?`0
  ---51Testing软件测试网#ob7I;m\$`-J$zU
  4. 运行国泰君安股票软件51Testing软件测试网r gm mG
  运行以下命令:
%{cT$RTX0
  cd ~/.wine/drive_c/DZH5/internet/
$?`#Lo0RZ.} fZ9I0
  wine Hypmain.exe

编辑本段Wine可以做什么

  本文中,我们讨论的是 Wine 在纯 Linux 上的安装,没有任何 Windows 分区。
&a9pkrSZ v _$m0
  1. Windows 可执行文件:51Testing软件测试网pjS{g[c
  Wine 完全支持 Windows 可执行文件( .exe 和 DLL)的二进制加载。51Testing软件测试网xA_~A
  2. DLL:51Testing软件测试网pzp1dN$dj{.f
  Wine 有几百个 Windows DLL 的内部实现 -- 不过,其中没有多少是完全的实现。例如,包含有用户界面相关函数的 userd32.dll 在开放源代码的 Wine 中实现了 92%。51Testing软件测试网q,iuf P
  3. COM:
"k2b4p? ZP0
  这是一种几乎被所有的大型 Windows 应用程序所使用的 Windows 技术,它支持诸如将一个 Excel 电子数据表嵌入到 Word 文档中等功能。这一技术得到了 Wine 的很好的支持。51Testing软件测试网$@i2v5i!t8x
  4. 注册表:
E:r9G0JH0
  这是另一个几乎任何一个 Windows 应用程序都会使用的关键技术,Wine 实现了大约 90% 的 Windows 注册表管理 API。51Testing软件测试网|_6Pq exr0`C
  5. 核心功能:
9q L*B{ UR@0
  核心系统功能也得到了特别好的支持。如前面提到的,尽管 Linux 和 Windows 之间存在区别,但是基本的层次上还有很多类似之处,因此与进程、线程、文件和消息队列相关的核心系统 API 得到了近乎完美的支持。51Testing软件测试网;K|~+i3\N-[
  6. 音频和视频:
0cX/`R(fI0
  Wine 支持 Windows 音频和视频文件的运行(还可以使用 Windows 媒体播放器)。51Testing软件测试网j#s-AI9~ \ ~[Fu
  7. 打印:51Testing软件测试网BWv!o] `A4ki[
  也得到了支持,可以从一个在 Wine 中运行的 Windows 应用程序进行打印。
&r+v u JABL z0
  8. ODBC:
!J;AL/H1H)u za0
  Wine 支持那些需要通过 ODBC 访问数据库的 Windows 应用程序。
7N|A+_Rx#X%{gj0
  9. 调试:51Testing软件测试网+]*Z)N!B{ w;p5U
  Wine 有一个非常健壮和强大的内置调试器,除了支持标准的调试功能外,它还为调试运行于 Linux 上的 Windows 二进制程序进行了定制。它是 Wine 为其开发者提供的最重要工具之一。Wine 还有一个设计完备的追踪和记录日志的模块,可以帮助调试。我们之所以强调这一点,原因在于,尽管框架是健壮的,但是,当在 Wine 中安装和运行 Windows 应用程序时有很多不确定因素,在使用开放源代码的 Wine 时迟早会停下来进行调试。

编辑本段Wine 不能做什么

  不幸的是,很多用户发现 Wine 难于使用。诚然,在 Linux 上使用类似于 MS Office 这样的应用程序可能是困难的;在这里我们来看一些原因,为什么确实是这样。在开始之前,我们应该指出,CodeWeavers 提供的商用 Wine (CrossOver)已经解决了大部分此类问题(参阅参考资料以获得链接)。假以时日,这些问题将可能在开放源代码的 Wine 中同样得到解决。
k n5?/~ox'?0
  1. 使用命令行
]2Nt(u7o2Hm%M0
  与大部分 Linux 中的应用程序一样,Wine 必须在命令行中安装。用户必须回到命令行中来在 Wine 下运行应用程序。例如,要运行Internet Explorer,用户通常需要在 shell 中输入 wine IEXPLORE.EXE 。尽管经验丰富的用户喜欢这样做,但初学者会发现这比较困难,而且不太可能懂得起别名等快捷方式。不过,现在用户也可以直接双击EXE文件运行(如果进行了关联),尽管这样会给查看错误信息带来困难。
)u K voC0
  2. 配置
Lfh3\$O4v$V+zv*K E0
  Wine 的配置较为复杂。不过现在有了简体中文的界面,对于初学者来说,配置简单了不少。
}w'|2sJ0sbM0
  3. 取消对隐藏文件的隐藏
7_ccU,y.K2X3_HO0
  如果挂载 CDROM 时没有使用专门的 unhide 选项,那么安装 CD 上的一些文件可能会无法找到,从而导致安装失败。
3R$j5w B5I+^e0
  4. 调整配置
|7UU \N W)G [Ywp0
  Wine 安装很少能直接使用(对它来说也就是从 tarfile 解开)。通常需要进行全面的调整;例如,一个程序的安装可能与您在配置文件中设置的 Windows 版本不相容;而修改那个版本又可能会影响一些已安装的应用程序。对很多 DLL 来说也是如此。为此,Wine 提供了一个巧妙的修复,让您可以设置特定于应用程序的属性。不过,一般的用户可能不会像我们一样满意。51Testing软件测试网@9F1{@@5L"V f+us
  5. 额外的安装步骤51Testing软件测试网/e7J#s3V Y8w
  大部分应用程序的安装过程都不是标准的。例如,当我们安装 Internet Explorer 6 时,必须跳过一些步骤,比如 DCOM98 的定位与安装。对用户来说,这类事情可能是最大的障碍。51Testing软件测试网e9V TMV
  注意,这些并不是病症,而是举例说明了是哪些种类的事情导致对一般用户来说 Wine 看起来复杂而且困难。
_1cfy!j0
  更多 Wine 所不能做的
g&P ]%c#|7P1P yK6J0
  看完 Wine 的可用性问题后,现在让我们来总结在尝试使用 Wine 时一些常见的技术问题。
!n$xXvK8F9y+x0
  1. 缺少 DLL
-_T'`C^4n/L)h0
  这可能是最常见的问题:很多安装由于缺少 DLL 而失败。人们应该熟练使用调试器来决定下一步如何去做。(稍后将深入讨论调试器)。51Testing软件测试网q%Wv&bY
  2. DLL 版本问题51Testing软件测试网P6cUlq^:A S]h
  一些安装程序在开始之前会检查现有的系统 DLL。Wine 解决这一问题的方法是,创建假 DLL 以满足安装程序的需要。不过,有一些安装程序会更进一步并深入检查 DLL 以获得它们的版本。这对假的 DLL 来说要求太高了,会导致安装失败。51Testing软件测试网"s"a2p$KQ
  3. DLL 加载次序
sT9T8O hW8Y0
  Wine 有对很多 Windows DLL 的实现,而且如果可用,它还可以使用原始的 Windows DLL。如果两种 DLL 都可用,好像显然应该选择总是使用 Windows 自己的 DLL,但实际上 Windows DLL 有时会包含不能被满足的依赖。要确定是更应该使用 Wine 的 DLL 还是应该使用本机 DLL,惟一的方法是,基于各个应用程序反复进行试验。
1}6oik+}c.Y3lG)u0
  4. DLL 中的函数51Testing软件测试网zQ'y~7`d-K@9x(W
  当一个 Wine DLL 没有实现 Windows 中相应的 DLL 的全部功能时,应用程序可能会遭遇函数调用失败。由于 DLL 是动态加载的,可能没有办法事先知道会发生这样的事情。这是一个复杂的问题,有一些可做的工作,但最终实际来说它只是取决于应用程序的代码如何编写。
;V kea~5A0
  有一些因素会减轻这些问题。一方面,您将会一个一个地遇到这些问题,而不是一次遇到全部问题,这样处理起来要容易些。另外,您遇到的那些问题可能其他人曾遇到过并已经解决(而且解决方案已经公布出来)。Wine 用户组非常活跃,会提供许多帮助,每周一次的 Wine 时事通讯(参阅 参考资料)是极好的信息资源。
s;}k`:wT0
  Wine 中还没有实现的 Win32 API
eSh T0Zu'N^'mW+L0
  在 Wine 中,很多 Win32 API5 的函数是残缺不全的。最常见的原因是,相当多的 Win32 API 并没有被文档化。这就意味着一个特别的应用程序可能会调用某个函数,而完全没有关于此函数的可用资料。例如,我们在运行一个简单的 RPC 程序时发现了 RtlAnsiCharToUnicodeChar 这个函数。在 MSDN 上的搜索结果显示没有关于这个函数的资料,而且没有关于所有 RtlXXXX 类别函数的资料。因此,如果它们在 Wine 中的实现对一些应用程序来说至关重要,那么人们可能只有去猜测它们的行为了。

TAG:

 

评分:0

我来说两句

日历

« 2024-05-15  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

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

RSS订阅

Open Toolbar