LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1624|回复: 10

【毁灭小贴士】Wine 的另类配置

[复制链接]
发表于 2009-11-28 18:05:41 | 显示全部楼层 |阅读模式
声明:本文旨在技术探讨,任何人如因本文而引起任何损毁,资料及精神损失等,或一切问题,本人绝不负责。[color="Blue"]You are at your own risks!

前言

1. 本文并非 Wine 配置指南,如要相关资料,请善用搜寻引擎
2. 瘟到死有个最大的败笔就是使用 registry(注册表),每当软件(特别是 shareware)不停装御之後,久而久之,注册表便变得踊踵,又或者注册表受损,弄得无法还原,是矣用 windoze 的终极解决之道不外乎重装系统,不幸的是许多 Linux 新手竟将如此陋习带进开源世界,悲之!
3. Wine 自称不是摸拟器(Wine Is Not Emulator)原因它真的不是摸拟器,wine 并没有摸拟 windoze,而是 API(Application Programming Interface)替换,目的是使待运行的软件以为自己在 windoze 环境的 API 下执行软件,从而"正常"运作。
4. 为了让 win 软件运作,Wine 也得采用注册表,也就是说 windoze 下会出现的问题也带进来了
5. win 下难以修复注册表,Linux 跑 Wine 一样没戏,不过在 Linux 下"还原"注册表,可比 win 下重装系统简单多了,且看下文。

正文

新装好的 Wine 在 $HOME 下是没有 .wine 目录的,所以我就把我系统原有的 .wine 删掉,重来说明一下吧:
  1. d00m3d@BlackMesa:~$ rm -fr .wine
  2. d00m3d@BlackMesa:~$ winecfg
  3. wine: created the configuration directory '/home/d00m3d/.wine'
  4. ...(在些省下中间一些无关的信息)...
  5. d00m3d@BlackMesa:~$ cd .wine
  6. d00m3d@BlackMesa:~/.wine$ ll
  7. total 576
  8. drwxrwxr-x 2 d00m3d d00m3d   4096 Nov 27 11:38 dosdevices
  9. drwxrwxr-x 5 d00m3d d00m3d   4096 Nov 27 11:38 drive_c
  10. -rw-rw-r-- 1 d00m3d d00m3d 557343 Nov 27 11:38 system.reg
  11. -rw-rw-r-- 1 d00m3d d00m3d  15867 Nov 27 11:38 user.reg
  12. -rw-rw-r-- 1 d00m3d d00m3d   2156 Nov 27 11:38 userdef.reg
  13. d00m3d@BlackMesa:~/.wine$ ll dosdevices
  14. total 0
  15. lrwxrwxrwx 1 d00m3d d00m3d 10 Nov 27 11:38 c: -> ../drive_c
  16. lrwxrwxrwx 1 d00m3d d00m3d  1 Nov 27 11:38 z: -> /
  17. d00m3d@BlackMesa:~/.wine$ ll drive_c
  18. total 12
  19. drwxrwxr-x 4 d00m3d d00m3d 4096 Nov 27 11:38 Program Files
  20. drwxrwxr-x 4 d00m3d d00m3d 4096 Nov 27 11:38 users
  21. drwxrwxr-x 9 d00m3d d00m3d 4096 Nov 27 11:38 windows
  22. d00m3d@BlackMesa:~/.wine$
复制代码
可以看出,用 winecfg 命令除了配置外,它会为系统初始化,建立 .wine 目录及其相关文件。但第一个问题来了,winecfg 它默认规定 drive_c 设置在 .wine 之下,不允许用户变更 drive_c 的路径,即是说日後所有的软件也得安装在 ~/.wine/drive_c 之下。

个人认为这设置不是太好,因为一方面 wine 有机会升级,另一方面不好做备份。我觉得将 wine 的配置目录 .wine 及 "C 盘"(drive_c) 分开才合理,所以我另建"C 盘"於 $HOME 之下。

winecfg 不让用户改,其实我们可以到 .wine/dosdevices 之下手功来改,先把 drive_c 这 symlink 去掉,另建新的连结便行:
  1. cd ~/.wine
  2. mv drive_c ~/C
  3. cd dosdevices
  4. rm -f c:
  5. ln -s /home/d00m3d/C c:
  6. cd
复制代码
如此,新的"C 盘"就是 /home/d00m3d/C,即是 $HOME 下独立於 .wine 的目录了。用 winecfg 检查结果都一样的
  1. d00m3d@BlackMesa:~$ cd .wine
  2. d00m3d@BlackMesa:~/.wine$ ll
  3. total 612
  4. drwxrwxr-x 2 d00m3d d00m3d   4096 Nov 25 14:52 dosdevices
  5. -rw-rw-r-- 1 d00m3d d00m3d 569991 Nov 27 11:30 system.reg
  6. -rw-rw-r-- 1 d00m3d d00m3d  41138 Nov 27 11:30 user.reg
  7. -rw-rw-r-- 1 d00m3d d00m3d   2156 Nov 27 11:29 userdef.reg
  8. d00m3d@BlackMesa:~/.wine$ ll dosdevices
  9. total 0
  10. lrwxrwxrwx 1 d00m3d d00m3d 14 Nov 25 14:52 c: -> /home/d00m3d/C
  11. lrwxrwxrwx 1 d00m3d d00m3d  1 Nov 25 14:51 z: -> /
  12. d00m3d@BlackMesa:~/.wine$
复制代码
现在的注册表是"处女"状态,何不把它备份之?
  1. cd
  2. cp -a .wine .wine-xxxxx
复制代码
不同时期可对 .wine 做不同备份,一般情况下我的系统会有好几个版的 .wine 目录备份,以便不时之需
  1. d00m3d@BlackMesa:~$ du -sh .wine*
  2. 620K    .wine
  3. 2.9M    .wine-0940
  4. 3.1M    .wine-1119-cs
  5. 5.2M    .wine-1131-raw
  6. 5.2M    .wine-1131a
  7. 616K    .wine-1133
复制代码
"C 盘" 自然是用来装软件了,早前因公司需要 Netmeeting,但我又不想试装 ekiga 及其连带的 gnome 一大串依赖,於是去尝试装 IE6。

天~~!既不成功,还搞得注册表乱七八糟,平日能如常运作的软件以为有 IE 又尝试连接,但 IE 根本没装好,结果导致死循环!

还好,先前的注册表备份现在可以用上场了:
  1. d00m3d@BlackMesa:~$ rm -fr .wine
  2. d00m3d@BlackMesa:~$ cp -a .wine-1133 .wine
  3. d00m3d@BlackMesa:~$
复制代码

好了,一切如旧,又能正常操作了,呵呵~~!

结语

本文示范了:
1. wine 里 drive_c 的另类配置
2. 简单的 .wine 备份及 registry 的还原

希望此小贴士对各位有用,再会!

d00m3d 敬上 http://www.linuxsir.cn/bbs/thread360632.html
(2009年11月28日)

PS:还有其他小贴士集合在此 【毁灭小贴士】集合 :)
http://www.linuxsir.cn/bbs/thread329032.html

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2009-11-28 20:00:20 | 显示全部楼层
先顶,再看。正需要。。。
回复 支持 反对

使用道具 举报

发表于 2009-11-29 10:29:20 | 显示全部楼层
学习~~~~~~
回复 支持 反对

使用道具 举报

发表于 2009-11-29 23:14:06 | 显示全部楼层
毁灭兄还用wine?

vbox啊~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-11-30 21:27:46 | 显示全部楼层
VBox 是名符其实的虚拟机,但 wine 却不是,某些软件(如 Call of Duty 第一身射击游戏)据称用 wine 跑比 XP 下效能还要好啊~~
回复 支持 反对

使用道具 举报

发表于 2009-12-5 14:10:39 | 显示全部楼层
Post by d00m3d;2051171
VBox 是名符其实的虚拟机,但 wine 却不是,某些软件(如 Call of Duty 第一身射击游戏)据称用 wine 跑比 XP 下效能还要好啊~~


能跑使命召唤?

DX9.0B还是DX9.0C 的?

OK,我不水了,俺不懂wine。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-5 17:34:18 | 显示全部楼层
该话是指第一集 CoD

http://appdb.winehq.org/objectMa ... cation&iId=1346

基本上 PC 版的每一集都能跑,到 AppDB 看就知道了,最新一集 MW2 尚在测试中,兼容性还差一点,CoD4 就肯定 OK
回复 支持 反对

使用道具 举报

发表于 2009-12-5 19:39:43 | 显示全部楼层
Post by d00m3d;2052852
该话是指第一集 CoD

http://appdb.winehq.org/objectMa ... cation&iId=1346

基本上 PC 版的每一集都能跑,到 AppDB 看就知道了,最新一集 MW2 尚在测试中,兼容性还差一点,CoD4 就肯定 OK


难道你也喜欢玩 现代战争?
MW2我苦等了那么久,几个小时暴机,时间太短了.....

哎...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-6 08:38:47 | 显示全部楼层
Yes, CoD series from Infinity Ward is good but CoD5 WaW, which is not developed by Infinity Ward, is not as good.

I haven't played MW2 yet as I still not yet finished MW.  Well, I only play Veteran levels.

Highly expected MW2.
回复 支持 反对

使用道具 举报

发表于 2009-12-6 08:51:01 | 显示全部楼层
COD5我不喜欢,做得乱七八糟的....

好消息是 EA也开始让 荣誉系列 开始了现代战争题材了。

你还没下载完毕?MW2? 都出来那么久了...

不水了。呵呵。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表