wonutsa 发表于 2007-12-30 14:30:18

Linux(Ubuntu)和Windows程序零距离

摘自MC上红帽子的文章

虽然Ubuntu平台上有许多功能与Windows平台相近的软件,多数情况下使用这些软件不会出现太大的问题.可是有些情况下,某些只能基于Windows平台的软件确实是无可替代的.这时就要用到一个项目----Wine

       Wine是"Wine Is Not an Emulator"的缩写,它是一个令人神往而且目标远大的开放源代码项目,它尝试去解决在Linux上运行Windows可执行文件的复杂问题.Wine项目起始于1993年,它的根源可以追溯到90年代早期出现的用于UNIX的DOS和Windows模拟器.Wine项目最初是将16们的应用程序移植到Linux,而几年之后,已可以在Linux上运行Microsoft Word和Excel.时至今日,它有一百多万行代码.我们今天就要通过Wine来解决运行Windows程序的问题.
       首先需要了解,Ubuntu安装Wine一般使用的两种方式----源码编译或者从网络源安装.源码编译安装相对比较稳定,速度快,效率高,但是需要时间编译,相比一分钟的源安装,几十分钟的编译确实很长.网络源安装是别人已经帮你编译好的了,但是安装以后出现各种奇怪问题的几率比较高.一般来说,我还是推荐编译安装比较好.不过编译安装最让人头痛的是解决包的依赖性问题,安装Wine你需要安装下面的包,只要你的Ubuntu能够上网,有可用的安装源,那就可以比较轻松了.

       接着就要开始安装一些前期所需要的软件包了,打开终端输入:
sudo apt-get install build-essential (期间会提示插入安装光盘)
sudo apt-get install gcc libc6-dev fakeroot libglib1.2-dev libglib2.0-dev libltd13-dev libmad0-dev libmng-dev libodbcinstq1c2 libogg-dev libpng12-dev libqt3-headers libqt3-mt-dev libvorbis-dev libxft-dev libxi-dev libxinerama-dev libxmu-dev libxmu-headers libxmuu-dev libxpm-dev libxtrap-dev libxtst-dev libxv-dev libxxf86dga-dev qt3-dev-tools render-dev unixodbc-dev x-dev x11proto-record-dev x11proto-trap-dev x11proto-video-dev x11proto-xf86dga-dev xlibs-dev fontforge flex bison libxext6(注意每个包名字之间的空格)
       然后需要下载最新的Wine的源码包(http://www.winehq.org/?announce=latest),页面最上方的两个地址里任选一个下载即可.把下载的文件放到合适的地方,比如当前的用户的主目录.完成这些准备工作后就要开始编译安装了:
cd ~
tar xjvf wine-0.9.48.tar.bz2 (解开下载的压缩包)
cd wine-0.9.48/
sudo ./configure
       这一步的作用是让Wine开始检查编译环境,检查包依赖是否通过,如果这个不出错,剩下的几步就只是时间问题.很多刚刚接触Linux的用户在编译方式安装软件中遇到困难而放弃的最大的原因就是这里.如果过程中提示缺少了"*** package",那么请执行一下:
sudo apt-get install ***
就可以了.
       编译环境检测完毕后,会提示运行"make depend && make",只需要执行(注:虽然Linux的命令行看上去复杂,其实你只要线性地按照提示操作就可以了):
sudo make depend && make
       编译的过程非常漫长,以至于我们有足够的时间打电话给女朋友煲一下电话粥,或者看一部好莱坞电影.编译完成以后,只要不出现错误,就会提示"Wine build Complete",这时输入:
sudo make install
       Wine的安装过程就此大功告成,经过以上操作,已经将原来Wine的C++源代码变成了可执行程序.接下来就是配置的事情了.
       安装完毕后在终端输入:
winecfg
       注意这里笔者没有使用Sudo,也不推荐使用Root,这样对排除配置Wine中出现的错误非常有帮助.这个命令在使用Wine之前至少要执行一次,它会建立Wine的运行文件夹"/home/user/.wine"。".wine"是一个隐藏文件夹,里面有wine的注册表文件和虚拟的C盘.接着系统会弹出一个面板,这就是Wine的设置面板.
       打开Audio的标签,出现一个声音驱动程序的选择框,一般情况下选择"OSS".如果你是独立的声卡,选择"ALSA"更好.在"Application Settings"下的"Windows版本"中,把默认设置改成"WinXP".虽然很多Wine的用户反映说Win98支持的软件更多,但现在似乎是WinXP下能够更顺畅的运行软件.这里有一个小技巧,如果出现软件不能运行的问题,可以把这个选项中的Win98和WinXP互换一下,最后保存退出就可以了.
       我们还需要为Wine设置一个光驱,在终端中输入:
In -s /dev/scd0 ~/.wine/dosdevices/d\:
       Windows离不开IE,如果你愿意,也可以为Wine安装一个假的IE.在命令运行中执行:
wine iexplore http://www.google.cn
       系统会自动出现对话框,点击"install",程序会自动下载安装gecko,整个过程大概需要耗时10分钟左右,安装成功后就会出现google的中文主页,不过此时中文无法正常显示.
       因此,除了以上设置,我们还需要对Wine进行中文设置.首先将下面的代码保存为"zh.reg"
REGEDIT4

"Arial"="simsun"
"Arial CE,238"="simsun"
"Arial CYR,204"="simsun"
"Arial Greek,161"="simsun"
"Arial TUR,162"="simsun"
"Courier New"="simsun"
"Courier New CE,238"="simsun"
"Courier New CYR,204"="simsun"
"Courier New Greek,161"="simsun"
"Courier New TUR,162"="simsun"
"FixedSys"="simsun"
"Helv"="simsun"
"Helvetica"="simsun"
"MS Sans Serif"="simsun"
"MS Shell Dlg"="simsun"
"MS Shell Dlg 2"="simsun"
"System"="simsun"
"Tahoma"="simsun"
"Times"="simsun"
"Times New Roman CE,238"="simsun"
"Times New Roman CYR,204"="simsun"
"Times New Roman Greek,161"="simsun"
"Times New Roman TUR,162"="simsun
"Tms Rmn"="simsun"
       然后终端执行:
regedit zh.reg
       将Windows目录下Fonts文件夹里的simsun.ttc复制到"~/.wine/drive_c/windows/fonts"里面.这时再执行:
wine iexplore http://www.google.cn
就可以正确显示中文了.
       由于Wine毕竟不是真正的Windows,还是需要调用一些Windows的DLL文件.我们需要到Windows下的system32文件夹(C:\WINDOWS\system32)里面复制mfc42.dll,msvcp60.dll,riched20.dll以及riched32.dll这几个文件到"~/.wine/drive_c/windows/system32"里,提示覆盖时确定即可.对于其它的DLL文件请不要覆盖,只有当用Wine执行Windows程序出现了某DLL文件错误时才去Windows系统里复制,这样Wine的初期配置就算大功告成了.

http://www.qiqi88.com/job/tjshow.asp?m_id=13786&g_id=46

rpflyfox 发表于 2007-12-30 14:52:50

好文章,应该加分

harryshan 发表于 2007-12-30 21:00:48

的确是精品啊…

vampirelifan 发表于 2007-12-30 22:30:54

wine。更喜欢替代软件

leonfcb 发表于 2008-1-3 18:41:48

请问 我每次一执行winecfg 系统就死机
无论我是通过您介绍的编译方式安装还是直接通过apt-get install wine安装
都会遇到这样的问题
目前我从来没有成功运行过wine
有人说是显卡驱动的问题
建议不用via的,改成elsa啥的。。。
我是sempron 1.8G
Via/S3的垃圾显卡
120G IDE硬盘

那座大山 发表于 2008-1-3 19:06:47

这个是很好的文章,学习了

penguinol 发表于 2008-1-6 02:29:13

纠正一下,上文中有一处笔误。

我们还需要为Wine设置一个光驱,在终端中输入:

    In -s /dev/scd0 ~/.wine/dosdevices/d\:

Windows离不开IE,如果你愿意,也可以为Wine安装一个假的IE.在命令运行中执行:

应为:
ln -s /dev/scd0 ~/.wine/dosdevices/d\:
是L 不是 I

ryankingsoft 发表于 2008-1-6 12:53:49

说实话吧 编成语言学的不太好 看了半天不明白  我曾经顺利安装过linux
没有出过任何问题 最主要的是我主要是硬盘安装 不知道楼住的问题出在哪儿了

misili 发表于 2008-1-7 12:54:34

总感觉是那么的高深难懂

yinland 发表于 2008-1-7 21:37:57

虚拟的总感觉不是那么好用,希望linux下的娱乐软件更多一点,这样有利于linux的普及

elsonwu 发表于 2008-1-8 14:57:10

可以尝试一下~~~

shenweiguo 发表于 2008-1-8 17:35:19

但用的时候老是有点问题

谭鱼头 发表于 2008-1-8 18:31:29

我正在下载  安装完了   尝试一下你的方法  感谢LZ

当爱已成回忆 发表于 2008-1-17 12:06:18

wine。更喜欢替代软件

gonxc 发表于 2008-1-20 15:01:51

虚拟的总感觉不是那么好用,希望linux下的娱乐软件更多一点,这样有利于linux的普及

gonxc 发表于 2008-1-20 15:02:43

中国人开发自己的系统嘛,运行在龙芯CPU上!

WC-111191 发表于 2008-2-2 03:22:17

我的竟然说 C compiler cannot create executables

WC-111191 发表于 2008-2-2 09:47:23

哦,我明白了它不支持64位系统

WC-111191 发表于 2008-2-2 12:09:04

安装成功 我用的 sudo apt-get -f install

轩楝 发表于 2008-2-2 17:16:56

wine编码起来很麻烦.......
页: [1] 2
查看完整版本: Linux(Ubuntu)和Windows程序零距离