当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 6 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [转帖]新版 Wine 中文官方用户指南
帖子发表于 : 2006-06-16 23:44 
头像

注册: 2006-04-29 10:24
帖子: 114
送出感谢: 0 次
接收感谢: 0 次
新版 Wine 中文官方用户指南

前言


这是最新版本的 Wine 中文官方用户指南。适合于wiine-20050328以后的wine版本,包括wine-0.9系列的版本。如果你使用wine-20050525及以前的wine版本请看旧版的 wine 中文官方用户指南,地址:http://www.easywine.org/bbs/view ... &extra=page%3D8


目录


第一章 介绍

1.1 概览/关于

1.1.1 本文档的目的和目标读者

1.1.2 更多问题和评论

1.1.3 内容概览/采取的步骤

1.2 什么是wine?

1.2.1 Windows 和 Linux

1.2.2 什么是wine,它如何能帮助我?

1.2.3 wine的特性

1.3 wine的版本

1.3.1 从WineHQ来的wine

1.3.2 wine的其他版本

1.4 wine以外的选择

1.4.1 原生应用程序

1.4.2 另一个操作系统

1.4.3 虚拟机

第二章 获取wine

2.1 wine安装方法

2.1.1 从一个包安装

2.1.2 从一个源归档安装

2.1.3 从CVS快照安装

2.2 从一个包安装wine

2.2.1 安装一个全新的包

2.2.2 不同的发行版

2.3 从源安装wine

2.3.1 获取创建依赖关系

2.3.2 编译wine

2.3.3 卸载从源代码安装的 wine

第三章 配置wine

3.1 使用winecfg

3.1.1 应用程序设定

3.1.2 库设定

3.1.3 图形设定

3.1.4 驱动器设定

3.1.5 音频设定

3.1.6 外观

3.2 使用注册表和Regedit

3.2.1 注册表结构

3.2.2 注册表文件

3.2.3 使用Regedit

3.2.4 系统管理窍门

3.2.5 注册表键的完全列表

3.3 其他要配置的东西

3.3.1 串口和并口

3.3.2 网络共享

3.3.3 字体

3.3.4 打印机

3.3.5 扫描仪

3.3.6 ODBC数据库

第四章 运行wine

4.1 基础使用:应用程序和控制面板小程序

4.2 如何来运行wine

4.3 类似 Explorer 的图形化Wine环境

4.4 wine命令行选项

4.4.1 --help

4.4.2 --version

4.5 环境变量

4.5.1 WINEDEBUG=[channels]

4.5.2 WINEDLLOVERRIDES=[DLL Overrides]

4.6 wineserver 命令行选项

4.6.1 -d<n>

4.6.2 -h

4.6.3 -k[n]

4.6.4 -p[n]

4.6.5 -w

4.7 设定 Windows/Dos 环境变量

4.8 文本型程序(CUI:控制台用户界面)

4.8.1 CUI 可执行文件配置

第五章 问题捕捉/报告 bug

5.1 如果有些程序仍然不能运行怎么办?

5.1.1 验证您的wine配置

5.1.2 使用不同的Windows版本设定

5.1.3 使用不同的启动路径

5.1.4 乱动DLL配置

5.1.5 检查您的系统环境!

5.1.6 使用不同的GUI(窗口管理器)模式

5.1.7 检查您的应用程序!

5.1.8 检查您的wine环境!

5.1.9 重新配置 wine!

5.1.10 查看更多信息

5.1.11 Debug之!

5.2 如何报告一个bug

5.2.1 所有bug报告

5.2.2 崩溃

生词本



表的列表

1-1. Various Wine offerings

4-1. Debug Channels

4-2. Basic differences in consoles

4-3. Wineconsole configuration options


2006 (C) 大程在CD 版权所有
仅供您个人阅读学习。
未经授权,不得印刷发售,或在任何杂志连载,不得向未经授权的服务器上传本作品或依据本作品推断而来的任何作品。


本作品依据 WineHQ 的 《wineusr-guide》(html档)译出。所依据的该文档的版本为:
2006年1月24日 的版本
本作品翻译完成于 2006年3月4日


第一章 介绍


1.1 概览/关于

1.1.1 本文档的目的和目标读者
本文档,名为《Wine使用者指南》,既是一个简单的安装指南,又是一个扩展性的参考指南。本文适合新的Wine用户,也适合有经验的Wine用户。它以在文档中提供所有配置特性和支持域来提供完全的一步一步的安装和配置指导,同时也提供起重要作用的扩展性的参考资料。


1.1.2 更多问题和评论
如果在检视这份指南,FAQ,和其他相关文档后仍然有一些东西您不能指出,您可以给我们发送邮件。《邮件列表》章节包含许多邮件列表和IRC频道,它们都是不错的地方,您可以在那里获取帮助和提出建议。如果您有自己独到的见解,并确信您能更好地表述,您可以在Wine的文档本身添加一个 《bug 报告》或者《发布一个补丁》文件。


1.2 什么是wine?

1.1.3 内容概览/采取的步骤
为了能够使用使用Wine,您必须首先有一个工作的安装。这个指南将帮助您把您的系统从空的,没有Wine的状态变为一个值得炫耀的新鲜的,最新Wine安装。
第一步,《获取Wine》,举例说明多种方法来把获取的Wine的文件装到您的计算机上。
第二步,《配置Wine》,展示如何依您的个人需求来配置一个Wine的安装。
最后一步,《运行Wine》,包含特殊的步骤,可使一特定应用程序在Wine下更好运行,
并提供有用的连接,以便您可获取更多的帮助。


1.2.1. Windows 和 Linux
不同的程序是为不同的操作系统设计的,大多数情况下不能在其他系统上运行。例如,Windows程序,不能在Linux上运行,因为它们包含有Linux系统不能理解的指令,除非它们在Windows环境下被翻译。同理,Linux程序,也不能在Windows操作系统下运行,因为Windows不能解释其所有的指令。

这个情况呈现出一个基础的问题,在那些想要同时想要在Windows和Linux下运行软件的人面前。通常的解决方法是在同一台计算机上同时安装这两套系统,这被称为“双(重)启动”。当需要Windows程序时,使用者重启并进入Windows来执行之。当需要Linux程序时,使用者重启并进入Linux。这个方法呈现出巨大的困难:不仅是使用者必须经受经常重启的折磨,而且两个平台的程序不能同时运行。

在系统上安装Windows也增加了额外的负担:该软件昂贵,需要独立的磁盘分区,并不能阅读多数的文件系统,使得在各个系统间共享数据变得困难。


1.2.2 什么是wine,它如何能帮助我?
Wine使得在任何“类Unix”操作系统(特别是在Linux)上运行Windows程序成为可能。在其核心,Wine是一个Windows应用程序接口(API)库,作为一个Windows程序和Linux之间的桥梁。

想象Wine是一个兼容层,当Windows程序尝试执行一个通常情况下Linux不能理解的功能(函数),Wine将把该程序的指令翻译成Linux能够理解的指令。例如,一个程序要求系统创建一个Windows的pushbutton或text-edit field,Wine将其转换为以使用标准X11协议的视窗管理器的命令形式的Linux的等价物。

如果您有权获取Windows程序的源代码,Wine也能用来重新编译您的程序为Linux能更容易理解的格式。Wine仍然需要用来启动重新编译后的程序,但是在Linux里本地地编译Windows程序有许多优点。

更多信息尽在《Winelib使用者指南》。


1.2.3 Wine的特性
贯穿其开发过程,Wine已经在它的支持的特性和能运行的程序方面不断成长。
下面是一个不完整的这些特性的列表:
·支持运行Win32(Win 95/98, NT/200/XP), Win16(Win 3.1)和 DOS程序。
·选择性地使用外部的第三方DLL文件(比如包含于Windows中的那些)。
·基于X11图形显示,允许远程显示到任何X终端,甚至文本终端。
·整合于桌面或可混合视窗。
·游戏的DirectX支持。
·能很好支持各种声卡驱动,包括OSS和ALSA。
·支持alternative input devices。
·打印:PostScript接口驱动(psdrv)到标准Unix PostScript 打印服务。
·调制解调器,串设备支持。
·Winsock TCP/IP 网络支持。
·扫描仪,CD刻录机,及其他设备的ASPI接口(SCSI)支持。
·先进的unicode和外语支持。
·特性完全的Wine调试器(Wine debugger)和可配置的追踪记录信息来使问题捕捉更容易。

1.3 wine的版本

1.3.1 从WineHQ来的Wine
Wine是一个开源项目,有许多不同版本的Wine,因此,您可以从中选择。
标准的Wine版本来自于断断续续的发布(大概一月一次),可以从互联网上
下载预先打包好的二进制形式和现成的用来编译的源代码形式。
作为一个选择,通过使用在CVS服务器上的最近的可用的源代码,您可以
安装Wine的开发版。
参见下一章,《获取Wine》,您可以了解更多细节。

1.3.2 Wine的其他版本

有许多程序是以这样或那样的方式衍生于标准Wine代码库。它们中的一些是来自于积极捐助Wine项目的公司的产品。

这些产品尝试显得突出或区别于标准版本的Wine,并提供更好的兼容性, 更容易的配置, 以及商业化的支持。如果您想要这类东西, 考虑购买这类产品也是个好主意。

表 1-1. 各种不同的Wine产品
产品
描述
发布形式

CodeWeavers CrossOver Office
CrossOver Office 允许您在Linux中安装您喜爱的 Windows办公应用程序, 而不需要一个微软操作系统许可证。CrossOver 包含一个容易使用的, 单击使用的界面, 它使得安装 Windows 应用程序简单而快捷。
商业版;提供 30天不限制任何功能的演示版。

CodeWeavers CrossOver Office Server Edition
CrossOver Office 服务器版允许您运行您喜爱的 Windows 办公应用程序在一个Linux下的发布的瘦客户端环境, 而每个客户机不需要微软操作系统许可证。CrossOver Office 服务器版允许您满足字面上地数百并发的用户的需求, 全部来自一个单独的服务器。



1.4 wine以外的选择

1.4.1 原生应用程序

除了运行通过 Wine 运行特定的 Windows 应用程序,一个经常的可行的选项是简单地运行一个不同的应用程序。

许多 Windows 应用程序,特别是更经常使用的,比如媒体播放器,即时通讯,以及文件共享程序都有非常好的的开源代替品。此外,相当大量的 Windows 程序已经被直接地移植到了 Linux ,完全地排除了对 Wine (或 Windows)的需要。

1.4.2 另一个操作系统

可能最显而易见的方法来使得一个 Windows 应用程序运行是简单地在 Windows 上运行它。然而,安全性,许可证费用,向后兼容性,以及机器效能问题将使这一方法变得困难,所以 Wine 是如此有用。

另外一个选择是使用 ReactOS ,它是一个完全开源的 Windows 之外的选择。ReactOS 很大程度上与 Wine 项目共享代码。不是在 Linux 的顶端运行 Windows 应用程序,而是在 ReactOS 内核的顶端运行之。ReactOS 也提供与 Windows 驱动程序文件的兼容性,允许使用硬件而无需起作用的 Linux 驱动程序。

1.4.3 虚拟机

您可以不在您的机器上全新地安装操作系统,而可以在软件层面运行一个虚拟机,并在其上安装一个不同的操作系统。这样,您可以运行一个 Linux 系统并同时运行 Windows 与您的应用程序一起在一个虚拟机里同时地在同一硬件上。

虚拟机不仅允许您在同一硬件上安装并运行不同版本的 Windows ,而且允许您运行其他操作系统,包括 ReactOS。

有许多不同的虚拟机,而且其中一些也能在不同平台上模拟 x86 硬件。开源的 Bochs 和 QEMU 能虚拟地运行 Windows 和 ReactOS 。其他的,商业虚拟机有 VMware 和 微软的 VirtualPC 。

然而,使用虚拟机有巨大的缺点。不像 Wine,这些程序是模拟器,所以不可避免的会有实实在在的速度下降。更为重要的是,在虚拟机里运行应用程序使得应用程序不能被完全地整合于当前环境之内。例如,您不能让 Windows 系统托盘图标或应用程序快捷方式出现在您的 Linux 桌面的系统托盘图标或应用程序快捷方式的旁边。因为 Windows 应用程序必须完全地驻留于虚拟机之内。


第二章 获取wine


2.1 wine安装方法

一旦您已经决定 Wine 正合适您的需求,下一步是决定您想怎样安装之。有3种方法安装来自 WineHQ 的 Wine ,每一种都有其优点和缺点。

2.1.1 从一个包安装
迄今为止最为容易的安装 Wine 的方法是使用预先打包好的 Wine 的版本。这个包包含可以运行的二进制文件,它们特别地为您的发行版而编译。通常它们的功能性和完整性已被打包者测试过。
包是推荐的安装 Wine 的方法。我们使其在

WineHQ


下载页

易于获取。这些总是最近可用的包。由于受欢迎,在其他地方在官方发行版仓库都能发现 Wine 包。然而它们可能有时是过时的,取决于您的发行版。
包也易于升级,有些发行版可以无缝地升级 Wine ,只需几次点击。从源代码包创建您自己的可安装的二进制包也是可能的,虽然它已经超出了本指南的范围。

2.1.2 从一个源归档安装
有时 Wine 包并不完全符合您的需求。可能它们在您的架构或发行版上不可用,或者您需要使用您自己的编译器优化选项来创建 Wine ,并关闭一些设置。或者可能您需要在编译之前修改源代码特定的部分。

作为一个开源项目,您可以对 Wine源代码自由地做上述之事,它将随每个 Wine版本发布。这个安装方法可以通过下载一个 Wine源归档并从命令行编译来完成。如果您觉得做这些事很舒服并有特殊的需求,这个选择正合适您。

获取 Wine源归档是件容易的事。每个版本,我们都以 tar.gz 格式弄一个源代码包。您可以从

WineHQ


下载页

得到之。从源代码编译安装 Wine 比使用包安装要难一些,但是我们将深入讲解之并试图帮助您完成这个方法。

2.1.3 从CVS快照安装
如果您希望试验 Wine开发 的最新成果,或者您自己想帮助开发 Wine,您可以从我们的 CVS 服务器下载最近的源代码。关于从 Wine CVS仓库 下载的操作说明书可以在
http://www.winehq.org/site/cvs
获得。

请注意,通常的关于使用开发版本的警告对其有效。CVS服务器 上的源代码很大程度上是未经测试的,甚至不能正确地编译。但是,它是测试下一版 Wine 能如何工作的最佳途径,并且如果您要修改源代码,最好是获取最近的拷贝。CVS仓库 对应用程序所有者也有用,他们可以测试应用程序是否仍然可以在下一个 Wine发布下正确工作,或者近期的补丁是否使情况有所改善。

如果你对帮助我们使得一个应用程序在 Wine 下工作感兴趣,请参阅
guide to helping applications work
.

2.2 从一个包安装wine

2.2.1 安装一个全新的包
在一个全新的系统上安装一个包是非常直截了当的。简单地下载并安装包使用任何您的发行版提供的工具。通常在安装之前不需要明确地移除旧版本,因为现代的 Linux 发行版应该能自动地升级并替换之。
如果你从源代码安装了 Wine, 但是, 在安装一个 Wine 包之前,您应该移除它。
参阅《卸载从源代码安装的 Wine》获取正确的指导。

2.2.2 不同的发行版
Wine 在巨大数量的不同的 Linux 发行版上工作,也能在其他 类Unix 系统,比如 Solaris 和 FreeBSD, 每一种都有其特定的安装和管理包的方法。但是,幸运地,相同的基本思想对所有它们的都起作用,而安装 Wine 应该不比安装任何其他软件更难,不管您用的是什么发行版。卸载 Wine 包也很简单,并且在现代的 Linux 发布里通常是通过与安装包相同的易用界面来完成。

我们将不包括在各种系统打包和包管理的安装或卸载 Wine 包的方法的特点。但是,最新近的安装注记为特定发行版能够在 WineHQ 网页的

HowTo

找到。如果您需要更多的关于指出如何简单地安装一个 Wine 包的帮助,我们建议您查阅您的发行版的文档,支持论坛,或 IRC 频道。

2.3 从源代码安装wine

2.3.1 获取创建依赖关系
在 Wine 运行时,使用许多开源的库。虽然 Wine 并不严格地依赖于这些库而且能够在没有
它们中的大多数时编译,但是在编译时拥有这些库,Wine的功能性将得到提升。

在过去,许多用户问题是由于人们在从源创建 Wine 时,没有必要的开发库所致;由于这个
以及其他的原因,我们高度推荐通过二进制包安装,或者通过创建能够自动满足其依赖关系
的源代码包安装。

如果您希望手动安装创建依赖关系,有许多种方法可以检视您是否缺少一些有用的开发库。
最为直接的方法是在您编译 Wine 之前,查看 configure 程序的输出,以确定任何重要的东
西是否缺少。如果是那样,简单地安装缺少的东西,然后在编译之前重新运行 configure。
您也可以检查 configure 修改了的文件,(include/config.h.in)并检视是否有文件 configure
试图寻找但没有找到。

2.3.2 编译wine
一旦您已经安装了您需要的创建依赖关系,您已经做好了编译包的准备。在终端窗口,在导航到 Wine 源代码树后,运行下面的命令:
$ ./configure
# make depend
# make
# make install
末尾的命令要求 root 权限。尽管您决不应该以 root 运行 Wine ,您将需要以这样的方式安装 Wine。

2.3.3 卸载从源代码安装的 Wine
要卸载从源代码安装的 Wine, 您需要再一次在终端里导航到您用来安装 Wine 的同一个目录。然后运行下面的命令:
# make uninstall
这个命令将需要 root 权限,并且应该从您系统上移除所有的 Wine 二进制文件。但是,它将不移除您的 Wine配置 以及位于您用户的 home目录 (主目录)里的应用程序,所以您可以自由地安装另一版本的 Wine 或者手动地删除该配置


第三章 配置wine


最最通常的配置变更可以通过使用 Winecfg 工具来达成。我们将经历一个简单的,一步一步的介绍,这个介绍是对 Winecfg 的介绍。并概要的给出可用的设置选项。在下一节我们将看到您可以通过使用 regedit 做出更高级的变更,也提供一个完全的参考给所有的 Wine 配置设定。最后,一些您可能想要配置的东西超出了 Winecfg 和 regedit 的范围,我们将看看它们。


3.1 使用winecfg
在过去,Wine 使用一个特殊的配置文件,它能在 ~/.wine/config 中找到。如果您仍然使用一个提及这个文件的 Wine 的版本 (即2005年六月以前的版本)。您应该在您要做任何其他事情之前进行升级。所有的设定现在都直接地存储于注册表中并且在 Wine 启动时被 Wine 存取。

Winecfg 应该已经与 Wine 程序的其他部分被一齐安装到了您的计算机上。如果您不能指出如何启动它,尝试运行命令:

$ /usr/local/bin/winecfg

或者可能仅仅是:$ winecfg

当该程序启动了,您将注意到在窗口的上方有如下的一排标签:

·Applications (意为:应用程序)

·Libraries (意为:库)

·Graphics (意为:图形)

·Appearance (意为:外观)

·Drives (意为:驱动器)

·Audio (意为:声音/音频)

·About (意为:关于)

在 Applications (意为:应用程序) 和 Libraries (意为:库) 标签里更改设定将最能对运行一个程序产生影响。其他的设定偏重于使 Wine 本身以您希望的方式运转。

注意:Applications (意为:应用程序), Libraries (意为:库), 和 Graphics (意为:图形) 标签是联系在一起的! 如果您在 Applications (意为:应用程序) 标签里选择了Default Settings(默认设定),在 Libraries (意为:库), 和 Graphics (意为:图形)标签里的所有更改将被变更为对所有的应用程序生效。如果您已经在 Applications (意为:应用程序)标签里配置了一个特定的应用程序并且选择了它,那么在 Libraries (意为:库), 和 Graphics (意为:图形)里所做出的更改将仅仅影响该应用程序。这样允许定制设定给特定的应用程序。

3.1.1 应用程序设定
Wine 有能力模仿不同版本的 Windows 的运转。一般地,最大的区别是 Wine 以 Win9x版本 或 NT版本 方式运转。一些应用程序要求特定的运转模式以运行,而更改此设置可能使一个运行有错误的应用程序工作。最近,Wine的默认 Windows 版本变成了 Windows 2000。人所共知,如果您选择 Windows 98 ,许多应用程序将工作得好些。
在该标签内您将注意到有一个 Default Settings (默认设定)入口。如果您选择之,您将看见给所有应用程序的当前默认 Windows 版本。一个问题多多的应用程序最好在默认设定之外单独地配置。要这么做:
1 点击 Add application (添加应用程序)按钮。
2 浏览直到您定位了该 .exe 文件。
3 当它被添加后您可以选择特定的 Windows 版本,Wine 将为该程序模拟之。


3.1.2 库设定
同样,一些应用程序需要特定的库,以便运行。Wine重新制造了 Windows 系统库--即所谓的 本地(原生)DLL 和完全地定制版本设计来以完全相同的方式作用而不需要来自微软的许可证。

Wine 的内建版本有许多广为人知的不足,但是许多情况下其功能性是足够的。仅使用 内建的 DLL 确保您的系统是 非微软的。

但是,Wine有能力载入 本地(原生) Windows DLL。

3.1.2.1 DLL Overrides
不是总能使用 内建DLL 运行一个应用程序的。有时 本地(原生)DLL 简单地工作得更好。
在你已定位了一个在一个 Windows 系统上的 本地(原生)DLL 后,您将需要把它放在一个合适的地方以便 Wine 找到它,而后配置使它被使用。一般说来您需要把它放在一个您已经配置为 c:\windows\system 的目录 (获取更多信息在 驱动 节)。有四个 DLL 您应该决不/从不尝试使用 本地(原生)版本:kernel32.dll, gdi32.dll, user32.dll, 和 ntdll.dll。
这些库要求低级的 Windows 内核存取而其不存在于 Wine 中。
保持它在您脑海中,一旦您已经拷贝了 DLL 您需要告诉 Wine 尝试使用之。您可以配置 Wine 来在 本地(原生)DLL 和 内建的DLL 之间选择在两个不同的级别。如果您有 Default Settings (默认设定)选择在 Applications (意为:应用程序)标签,您所做的改变将影响所有的应用程序。或者,您可以通过在Applications (意为:应用程序)标签里改写全局设定在“每一个应用程序” 级别。
要添加并override FOO.DLL,键入“FOO”在标有 New override for library(意为:新的库的override)标签的盒子里:并点击 Add(添加)按钮。要改变 DLL 如何运转,选择它在 Existing overrides(存在的overrides):盒子和选择 Edit(意为:编辑)。您也可以选择 native only(意为:仅本地),builtin only(意为:仅内建),或全部关闭之。

3.1.2.2 关于系统 DLL 的助记
Wine 团队已经决定要创建 假的 DLL 文件来欺骗许多程序,这些程序要检查文件是否存在以决定某功能是否可用(比如 Wincosk 和 TCP/IP 网络)。如果这对你来说是一个问题,您可以创建空文件于配置的 c:\windows\system目录来使得程序 认为它在那里,而 Wine 的 内建DLL 将被载入当程序真的需要它时。(很不幸,tools/wininstall自己并不创建这些空文件。)
应用程序有时也从物理文件检查版本资源(例如,决定 DirectX 的版本)。空文件在这种情况下不起作用,有必要安装完全本的资源的文件。这个问题正在解决中。与此同时,您仍然需要抓一些真的 DLL 文件来愚弄这些应用程序。
当然有 Wine 当前没有很好(或根本没有)实现的 DLL。如果您没有真的 Windows 可以从中拷贝必要的 DLL,您总是可以从一个 Windows DLL 归档站点得到一些,这些站点可以从 Internet 搜索引擎搜索得到。请确保遵守任何您抓到的 DLL 的许可证;有些是可再分发的,而有些不是。

3.1.2.3 缺失的 DLL
万一 Wine 抱怨缺失一个 DLL,您应该检查是否该文件为一个 公共可用DLL 或一个属于您的程序的 客户DLL(通过在 Internet 上搜索其名字)。在您已定位该 DLL 后,您需要确保 Wine 能够使用之。DLL 通常在下述位置被载入,并依从下述顺序:
1、程序被启动的目录。
2、当前目录。
3、Windows system 目录。
4、Windows 目录。 (即 Windows 根目录)
5、PATH 变量目录。
简单地说:要不把要求的 DLL 放到您的程序目录(可能显得丑陋),要不就放到 Windows system 目录。另外,如果可能,您可能不应该使用 基于NT 的 本地(原生)DLL,因为 Wine 的 NT API 支持比它的 Win9x API 支持弱(可能导致比没有 Windows 配置更差的与 NT DLL 的兼容性)。


3.1.3 图形设定
有基本地五个不同的图形设定您可以配置。对大多数人来说默认值就很好。第一个是“screen colour depth”(意为:屏幕色深),它代表著能够被显示在屏幕上的颜色的数目。老一点的图形卡曾经难以显示一系列完整色深,对其使用一特定的“8-bit”(8位)显示是能有用的。现代的视频卡,不论什么名字,只要有超过 8MB 显存,使用完全的 24-bit(24位)或 32-bit(32 位)色深是没问题的。

下面一些设定主要影响游戏,并有些明显。您能够阻止鼠标从一个 DirectX 程序(例如,一个游戏)的窗口中离开,其默认值是那个 box 被勾选。有许多的原因使得您可能想那样做,至少包括:如果把鼠标配置为局限在一个更小的区域,玩游戏会更加容易;另一个打开此选项的另一个原因,是为了更精确的控制鼠标。Wine偏移鼠标的位置,来模拟 Windows 鼠标的运作方式 。相似地,“desktop double buffering”(意为:桌面双倍缓冲,指的是“渲染的时候并不直接写前台,而是首先在后台一个缓冲中渲染,然后交换缓冲,可以获得比较稳定的动画图像的写屏技术”)它允许更平滑的屏幕刷新,游戏可以从中获益,默认值是打开之。作为交换,内存使用量将增加。

您可能会发现Emulate a virtual desktop(模拟一个虚拟桌面)非常有用。在这个情况下,所有程序将在一个独立的窗口中运行。您可能会发现这个非常有用,特别是在测试有错误的游戏(可能不成功地)改变屏幕分辨率时。限制他们在一个窗口中能允许对他们的更多控制以减少实际可能的费用。您可能想要尝试的分辨率大小是 640x480 (默认值) 或 800x600。

最后,您可以配置一些 Direct3D 设定。在大多部分这些设定是自动探测的,但是您可以强制它们以一个特定的方式运行。有些游戏探测潜在的系统来检视它是否支持特殊的某些特性。通过关闭这些 Wine 将不会报告能力用一个某一方式呈报游戏。这将导致游戏运行得更快以图形的质量的费用或者图形或游戏根本不能运行。


本部分感谢SSO和for(;z;);两位大大提供关于 桌面双倍缓冲 的解释(文中划线部分),仅表谢意!


3.1.4 驱动器设定
Windows 要求一个相当严格的启动器配置,Wine 模拟之。大多数人熟悉该标准的符号:“A:”驱动器代表软盘,“C:”驱动器代表主系统盘,等等。Wine 使用相同的概念并将这些驱动器映射到当前的本地文件系统上。

Wine 的驱动器配置相对地简单。在 Winecfg 的 Drives 标签您将看见用来添加和移除可用的驱动器的按钮。一个新的 entry 将会被制作并且一个默认的驱动器 mapping 将会出现。您可以在 Path: 框里改变这些驱动器指向哪里。如果您不确定具体的路径,您可以选择“Browse”(浏览)并寻找之。移除一个驱动器就简单得只需要选择之并点击“Remove”(移除)。

Winecfg 能自动地探测您系统上可用的驱动器。推荐您在尝试手动配置驱动器前使用之。简单地点击“Autodetect”(自动探测)按钮来使 Wine 寻找您系统上的驱动器。

也许您有兴趣在 Winecfg 之外配置您的驱动器设定。幸运地,这种情况也很简单。所有的驱动器设定居于一个特殊的目录~/.wine/dosdevices。每个“驱动器”简单地是一个到其真实所在的连接。Wine 自动地建立2个驱动其在您首次运行它的时候:

$ ls -la ~/.wine/dosdevices/ lrwxrwxrwx 1 wineuser wineuser 10 Jul 23 15:12 c: -> ../drive_c
lrwxrwxrwx 1 wineuser wineuser 1 Jul 23 15:12 z: -> /
要添加其他驱动器,例如您的 CD-ROM, 创建如下连接即可: $ ln -s /mnt/cdrom ~/.wine/dosdevices/d: 请注意给连接使用的 DOS-风格 命名习惯——其格式是一个字母后接一个冒号,诸如“a:”。所以如果您连接您的 C: 驱动器指向 ~/.wine/drive_c,您可以认为说 c:\windows\system 即是说 ~/.wine/drive_c/windows/system 的意思。


3.1.5 音频设定
Wine 可以使用几种不同的音频子系统工作,您可以在“Audio”(意为:音频/声音)标签下选择他们。“Autodetect”(自动探测)按钮能为你把它全部配置出来,或者您可以手动地选择一个驱动。老一点的Linux 发行版使用 2.4 内核或更早的版本典型地使用“OSS”(开放声音系统)。新一点的 2.6 内核已经转换到了“ALSA”(Advanced Linux Sound Architecture,先进 Linux 声音架构)。如果您正在使用KDE,不管使用何种内核,您或许也可以使用“aRts”(the Analog Realtime Synthesizer,模拟[类比]实时合成器),如果您正在使用GNOME您或许也可以使用“EsounD”(The Enlightened Sound Daemon,Enlightened桌面管理器的声音守护进程)。OSS 和 ALSA 声音驱动得到了最充分的测试,所以如果可能的话,推荐您坚持使用它们。如果您需要使用“Jack”或“NAS”您可能已经知道为什么了。

DirectSound 设定主要被游戏使用。您可以选择什么级别的硬件加速您想要,但是对大多数人来说“Full”(意为:完全)不错。


3.1.6 外观
Wine 能够载入 Windows 的主题,如果您有可用的主题。
当然,这肯定不是使用 Wine 或者应用程序所必须的,它确实能允许您定制一个程序的外观和感观。Wine 支持新一点的 MSStyles 型主题。不像老一点的 Windows Plus!型主题,uxthem引擎支持特殊格式的 .msstyles 文件,这种 .msstyles 文件能改变所有的 Windows控件 的主题。

这多少类似于现代 Linux 桌面版已支持多年的 主题 的性质。

如果您喜欢试验之:
1、下载一个 Windows XP 主题。请确保它含有一个 .msstyles 文件。
2、创建一系列新目录于您的 假Windows驱动器:
$ mkdir -p ~/.wine/drive_c/windows/Resources/themes/主题名字
3、移动(剪切).msstyles 到那个 主题名字 目录。
4、使用 Winecfg 的新的 Appearance(意为:应用程序)标签来选择新主题。
3.2 使用注册表和Regedit

您在 Winecfg 里做的所有设定变更,除了驱动器设定,基本上都存储在注册表里。在 Windows 里,这是一个应用程序和操作系统配置的中央存储仓库。同样地,Wine 实现一个注册表,而一些在 Winecfg 里找不到的设定能在注册表里变更。(实际上有更多的机会您需要深入注册表来变更一个应用程序设定而非在 Wine 本身。)

现在,Wine 本身使用注册表来存储设定的事实已引起争议。有的人争辩道这样它就太像 Windows 了。相反地,有很多事物需要考虑。首先,不可能避免实现一个注册表,很简单,因为应用程序期望能存储其设定于那里。以便 Wine 存储和读取在一个单独配置文件里的设定将会要求一套独立的代码来基本上做 Win32 API 所做的,而这些 Wine 已经实现。最后,不像 Windows, Wine 的注册表是用纯文本写成的,并且能使用您喜爱的文本编辑器进行修改。即使大多数神志情形的系统管理员(以及 Wine 开发者)疯狂地咒骂 Windows 注册表扭曲变态的特性,Wine 也有必要设法以某种方法支持之。


3.2.1 注册表结构
OK...就这么滴吧,let's 深入注册表一点,来看看它是如何展开的。Windows 的注册表是一个精心制作的树形结构,连大多数 Windows 程序员也不完全明白它是怎样展开的,它有著不同的“ hives”和大量的连接在其中;要完全覆盖它的内容超出了本文档的范畴。但是您现在就可能需要了解如下的注册表键:

HKEY_LOCAL_MACHINE
这个基本的根键(在 Win9x 里它被存储于隐藏文件 system.dat 里)包含所有与当前 Windows 安装有关系的东西。它通常被简写为 HKLM 。

HKEY_USERS
这个基本的根键(在 Win9x 里它被存储于隐藏文件 user.dat 里)包含该安装的每一个用户的配置信息。

HKEY_CLASSES_ROOT
它是一个到 HKEY_LOCAL_MACHINE\Software\Classes 的连接。它包含一些数据,它们描述一些事物,诸如文件关联,OLE 文档处理器,以及 COM 类。

HKEY_CURRENT_USER
它是一个到 HKEY_USERS\your_username 的连接。例如,您的个人配置。


3.2.2 注册表文件
现在,您可能想知道的是如何翻译成 Wine 的结构。在上面描述的注册表布局事实上存在于三个不同的文件,这些文件存在于每个用户的 ~/.wine 目录中。

system.reg
这个文件包含 HKEY_LOCAL_MACHINE 。

user.reg
这个文件包含 HKEY_CURRENT_USER 。

userdef.reg
这个文件包含 HKEY_USERS\.Default (例如,默认用户的设定)

这些文件在您首次使用 Wine 时被 wineprefixcreate 自动地创建。一系列的全局设定被存储于 c:\windows\inf\wine.inf 并且被 rundll32.exe 程序处理。当您首次运行 Wine 时 wine.inf 被处理来组装初始的注册表。要获取更详细的信息,您可以查看wineprefixcreate 脚本来检视这一切是如何完成的。在升级 Wine 后,wineprefixcreate 也可以用来升级默认的注册表键。

正如我们所提到的,您可以编辑那些 .reg 文件,使用任意您想要的文本编辑器。请确保您这么做的时候 Wine 不在运行,否则所有的变更将丢失。


3.2.3 使用Regedit
要读取并变更注册表,一个简单一点的方法是使用工具——regedit。类似于它所代替的 Windows 程序,regedit 用来提供一个系统级别的注册表视图,包含所有的键。简单地运行 regedit 它就应该弹出来。您将会立即注意到在文本文件中显示得像密码般的键被组织得井井有条,层次分明。

在注册表中导航,点击左边的键名,并深入下一层。要删除一个键,点击之并从 Edit(意为:编辑)目录选择“Delete”(删除)。要添加一个键或值,定位您想要放它的地方并从Edit(意为:编辑)目录选择选择“New”(新建)。同样地,您修改一个存在的键或值,在右手边的窗格里高亮之,并从Edit(意为:编辑)目录选择选择“Modify”(修改)。
另一个达到同样效果的方法是右键单击键或值。

可能对 Wine 使用者来说,比较感兴趣的是存储于 HKEY_CURRENT_USER\Software\Wine 里的设定。大多数您在 Winecfg 里变更的设定存储于此目录的此区域。

3.2.4 系统管理窍门
使用上述文件结构,一个系统管理员就有可能配置系统以便一个系统级别的 Wine 安装(以及应用程序)能被所有用户共享,并仍然让所有用户拥有他们自己的私有(个人化)配置。一个管理员能够在已经安装了 Wine 和任何他希望用户能使用的 Windows 应用程序软件后,拷贝由此得到的 system.reg 并改写全局注册表文件(我们假设它会居于 /usr/local/etc 这里),使用如下命令行:
cd ~root/.wine
cp system.reg /usr/local/etc/wine.systemreg
并且可能甚至符号连接这些回管理员的帐户,使得以后更容易在系统级别安装应用程序:
ln -sf /usr/local/etc/wine.systemreg system.reg
您可能也尝试过对 user.reg 做相同的事,但是那个文件包含用户特定的设定。每一个用户应该拥有他们自己的那个文件的版本并拥有修改它(用户自己的版本)的许可。
您将想注意驱动器mappings。如果您正在共享 system.reg 文件您将想确保每一个用户的注册表设定与 ~/.wine/dosdevices 中的启动器mappings 相兼容。概括来说,您保持您的驱动器mappings与 wineprefixcreate 提供的默认配置越接近,这越容易成功。您可能或不能共享一些或全部的真的“C:”驱动器上您原先已经安装了的应用程序。一些应用程序要求可以写特殊的设定到驱动器,特别是那些为 Windows 95/98/ME 设计的应用程序。
注意 tools/wineinstall 脚本过去做一些这种事如果您以 root 用户身份安装了 Wine 源,但是现在它不再做这些。
最后请注意:当心您对管理员帐户所做的一切 —— 如果您拷贝或连接管理员的注册表到全局注册表,任何用户可能有能力读取管理员的首选项,这对存储于这里的敏感信息可能不好(密码,个人信息,等等)。只使用管理员帐户来安装软件,而不是用来做日常工作;请使用普通用户帐户来做日常工作。


3.2.5 注册表键的完全列表

您将在


developer's wiki


找到一份最新的有用的注册表键和值的列表。
3.3 其他要配置的东西
这一节的意思是想提及其他的您可以配置的设定。它也当做一个技巧和窍门的集合。


3.3.1 串口和并口

串口和并口配置非常类似于驱动器配置 —— 简单地创建一个符号连接在 ~/.wine/dosdevices 使用设备的名字。

Windows 串口按照这么一个习惯命名:一个词“com”后面接一个数字。比如 com1,com2, 等等。
类似地,并口使用“lpt”后接数字。比如 lpt1。

您应该直接地连接它们到相应的 Unix 设备,诸如 /dev/ttyS0 和 /dev/lp0 。要配置一个串口和一个并口,运行下列命令:
ln -s /dev/ttyS0 com1
ln -s /dev/lp0 lpt1

3.3.2 网络共享
Windows 共享能被映射到 unc/ 目录里以便任何尝试存取 \\myserver\some\file
的东西将在 ~/.wine/dosdevices/unc/myserver/some/file/ 里查找。例如,如果您
使用 Samba 来挂载 \\myserver\some 于(到)/mnt/smb/myserver/some,那么您可以做:
ln -s /mnt/smb/myserver/some unc/myserver/some
来使之在 Wine 中可用(别忘啦如果它不存在,请先创建该 unc 目录!)

3.3.3 字体
字体配置,曾经是个令人厌恶的问题,现在简单得多啦。如果您有一系列的 TrueType 字体在 Windows 里,您可以简单地拷贝 .ttf 文件们到 c:\windows\fonts 中。
(译者注:c:\windows\fonts 指 Wine 的 虚拟Windows 主盘 里的目录,别搞错喔~~)

3.3.4 打印机
Wine 能直接地与 CUPS打印系统 (CUPS, Common UNIX Printing System 通用 Unix 打印系统)互动,来查找您系统上可用的打印机。配置 Wine 的打印机就简单到确保您的 CUPS 配置工作。


3.3.5 扫描仪

在 Windows 里,扫描仪使用 TWAIN API 来存取当前的硬件。Wine 的内建的 TWAIN DLL 简单地将那些请求发送给 Linux 的 SANE 库。所以,要在 Wine 下利用您的扫描仪您首先需要确保您能够使用 SANE 存取之。在此之后您需要确保您有 xscanimage 可用。当前 xscanimage 是和 “sane-frontends (sane前端)包”一起发行的,但它可能不能安装到您的发行版上。现在已知扫描仪存取有一些问题存在。如果您发现它能够工作,请考虑升级本指南的这一节,并提供详细的关于在 Wine 下使用 SANE 的细节。


(译者提示:您是怎么用的?在什么发行版下?安装了哪些包?怎么配置的?扫描仪型号?等等)

3.3.6. ODBC 数据库
在 Wine 里的 ODBC 数据库 系统,类似于打印系统,被设计钩对 Unix 系统于一高水平。不是去确保所有的Windows 代码在 Wine 下工作,而是使用一个合适的 Unix ODBC 供应商,比如 UnixODBC。
因此,如果您配置 Wine 去使用 内建的 odbc32.dll ,此 Wine DLL 将接入到您的 Unix ODBC 包,并让其做该工作。
但是,如果您配置 Wine 去使用 本地(原生)的 odbc32.dll , 它将尝试使用 本地(原生)的ODBC32 等驱动程序。


3.3.6.1 配置Unix上的ODBC数据库
要在 Wine 下使用 Unix ODBC 数据库的第一步当然就是要使 Unix ODBC 系统自己能工作起来啦。这个方法包括下载 源代码 或 RPM包 等。有多种 Unix ODBC系统 可用;笔者曾经使用过的一种叫UnixODBC (with the IBM DB2 驱动). 也有 ODBC-ODBC 桥 ,它可以用来存取一个 微软 Access 数据库。
一般地,这类系统将包含一个工具,例如 isql,它将允许您从命令行存取数据以便您能检查该系统是否工作。

下一步就是要使 Unix ODBC 库 和 内建的odbc32 DLL 相勾结(^_^,换句话说就是使 Unix ODBC 库 钩住 内建的odbc32 DLL)。内建的odbc32 DLL (当前地) 检查环境变量 LIB_ODBC_DRIVER_MANAGER 来寻找ODBC 库 的名字。例如在笔者的 .bashrc 文件里有如下的行:

export LIB_ODBC_DRIVER_MANAGER=/usr/lib/libodbc.so.1.0.0

如果该环境变量没有设置,那么它寻找一个库名曰“libodbc.so”,这样您可以添加一个符号连接到您系统上与之等价的库文件。例如,以 root 身份您可以运行如下命令:

$ ln -s libodbc.so.1.0.0 /usr/lib/libodbc.so
$ /sbin/ldconfig

配置这个的最后一步是确保 Wine 被设定为运行 内建的odbc32.dll版本。通过修改 DLL 配置 可以达此目的。这个 内建DLL 仅仅作为调用的代码和 Unix ODBC 库 之间的残余部分。

如果您遇见了任何问题,您可以在运行 Wine 之前,使用 WINEDEBUG=+odbc32 命令,就可以跟踪(调试)发生了什么。

一句警告。
Some programs actually cheat a little and bypass the ODBC library. For example the Crystal Reports engine goes to the registry to check on the DSN(数据集名). The fix for this is documented at unixODBC's site where there is a section on using unixODBC with Wine. (这段是结合机器翻译并稍作修改的:有些程序实际上有点骗人并绕过 ODBC库,例如水晶报表引擎会去注册表检查DSN。关于这个的修补方法被提供于 UnixODBC 的主页那里有一节是关于在 Wine 下使用 UnixODBC 的。)


3.3.6.2 使用Windows上的ODBC数据库


本地(原生)的 ODBC 驱动已经被报告可以为多种数据库(包括 MSSQL 和 Oracle)工作。事实上,有些如 MSSQL 只能通过一个 Winelib 应用程序被存取。不是仅仅拷贝 DLL 文件,多数 ODBC 驱动 要求一个 基于Windows的 安装向导被运行来配置诸如注册表键之类的东西。

为了安装 MSSQL 支持,您将首先需要到
microsoft.com
下载并运行 mdac_typ.exe 安装向导。为了配置您的ODBC连接 您必须接下来在 Wine 下运行 CLICONFG.EXE 和 ODBCAD32.EXE 。(CLICONFG.EXE 疑为CLICONFIG.EXE或CLCONFIG.EXE 误)您可以在 windows\system 目录里找到他们,在运行 mdac_typ 后。

比较这些程序的输出和在 Windows 机器上有何不同。有些东西,比如协议,可能会缺失 —— 因为他们需要和操作系统一齐安装。如果是这样,您可能可以从一个 存在的 Windows 安装 拷贝缺失的功能和任何需要的注册表键值。一个本地(原生)的 Windows安装配置在 Wine 上应该与在 Windows 本地以同样的方式工作。

已经在 Wine 下成功地测试的 类型:

数据类型 有用性
微软 MS SQL 100%
3.3.6.3 使用Windows上的ODBC数据库成功报告
请报告任何其他的成功事例到 wine-devel 邮件列表。


第四章 运行Wine

本章将描述运行 Wine 的所有方面,例如,基本的 Wine 启(调)用,各种 Wine 支持程序的命令行参数,等等。

4.1 基础使用:应用程序和控制面板小程序
假定您正在使用假的 Windows 安装,您使用与您在 Windows 里相同的方法来安装应用程序到 Wine 中:通过运行安装向导。您可以只接受默认安装路径,大多数安装向导会默认安装到 “C:\Program Files”,这不错。如果应用程序安装向导要求创建快捷方式图标,您可能会发现 Wine 在您的桌面和您的应用程序目录里创建图标。如果这事发生了,您可以通过点击(译者注:有的桌面管理器单击有的桌面管理器双击)启动应用程序。
标准的卸载东西的方法是对这种应用程序提供一个 unistaller,通常注册到 “添加/删除应用程序”控制面板小程序。要使用 Wine 上的等价物(替代品),运行 uninstaller 程序(它位于在 Wine 源[代码]目录里的programs/uninstaller/ 目录)于一个终端:
$ uninstaller
有些程序安装关联的控制面板小程序,典型的这类例子是 IE 和 QuickTime,您可以在终端中使用下列命令 Wine 来使用控制面板:
$ wine control
它将打开一个窗口,窗口中有已安装的控制面板小程序,就类似于在 Windows 里。
如果应用程序不安装任何目录或桌面项目,您将需要从命令行运用该应用程序。请记住您把它安装在哪里了,然后使用类似下面的命令:
(译者提示:请根据您的安装目录进行修改)
$ wine "c:\program files\appname\appname.exe"
将可能工作。目录并不区分大小写,但请记住一定带上双引号(半角英文)。有些程序并不总是使用显而易见的名字来命名其目录和 EXE 文件,故您也许需要进入程序文件目录去看看哪里放了些什么。


4.2 如何来运行Wine
您可以简单地调用 wine 命令行来获取简单的帮助信息:

Wine 20040405
Usage: wine PROGRAM [ARGUMENTS...] 运行特定的程序
wine --help 显示本帮助并退出
wine --version 输出版本信息并退出

第一个参数应该是您想要 Wine 执行的文件的名字。如果可执行文件在 Path 环境变量里,您可以简单地给出可执行文件名。
但是,如果可执行文件不在 Path 里,您必须给出可执行文件的全路径(以 Windows 格式,而非 UNIX 格式!)。 例如,给一个下列的 Path:

Path="c:\windows;c:\windows\system;e:\;e:\test;f:\"

您可以使用如下命令来运行文件 c:\windows\system\foo.exe :

$ wine foo.exe

但是,您必须用下面的命令来运行 c:\myapps\foo.exe:

$ wine c:\\myapps\\foo.exe

(注意反斜线逃逸符 “\”!)

要获取运行文本模式(CUI,文本界面)可执行文件的详细信息,请参阅下面相关章节。

( 译 者 注 :$ wine c:\\myapps\\foo.exe 貌似 使 用 $ wine "c:\myapps\foo.exe" 也是可以滴,请注意命令中的皆为半角英文双引号或单引号 )

4.3 类似 Explorer 的图形化Wine环境
如果您喜欢使用一个图形化的界面来管理您的文件,您可能想考虑使Winefile 。这个 Winelib 应用程序是来自 Wine 的并且能从其他 Wine 程序找到。它是来检视您驱动器配置和定位文件的有用方法。另外您能够直接从Winefile执行程序。请注意,很多功能没有被实现。

4.4 wine命令行选项 : 4.4.1 --help 和 4.4.2 --version
--help
显示简单的命令行帮助页。
--version
显示 Wine 版本字符串。对验证您的安装有用。

4.5 环境变量


4.5.1. WINEDEBUG=[channels]
Wine 并不是完美的, 并且许多Windows程序还是不能在没有bugs的情况下运行于wine下(但那么,很多程序也不能完美运行在wine下)。为了使人比较容易追踪找到在每个bug后面的成因,wine提供你一些侦错频道能让你轻易的进入每个除错频道。
每个除错频道, 当被激活, 将会引起登录信息被显示到你调用的wine控制台。在那里,你能在你的空闲时后重新传入给一个文件的讯息而且调查它。 但是你首先要注意, 一些侦错频道能产生难以置信那么多数量的记录信息。 在很多丰富的主要罪犯中都是接替每一次发出一个记录信息当wine 32功能被调用, 追踪窗户信息传递的win, 和 一定全部存在每个单独得侦错频道的一个别名。对于一个复杂的应用程序,你的侦错记录能容易地大于1MB 或者更大。 接替痕迹能时常产生记录信息超过 10 MB,视乎你运行程序多久。 (你将会想检查 RelayExclude 注册修正的关键传播痕迹报告). Logging会一点点的相当的降低wine的速度, 因此不要使用 WINEDEBUG ,除非你真的做需要记录文件。 在每个侦错频道里面,你能更进一步叙述一个信息类别, 过滤出不同的严重的错误。 四个信息类别是: trace, fixme, warn, err(痕迹,修复自己,警告,犯错)。
为了要打开一个侦错频道, 使用形式类别+频道。 为了把它关掉,使用类别-频道。 为了要列出相同的超过一个频道的 WINEDEBUG 选,用逗点隔开他们。 例如, 去请求大量除错频道的警告类别信息, 你可以像这样调用wine:
$ WINEDEBUG=warn+heap wine program_name

如果你停止所要的信息类别, wine将会为那一个频道显示来自所有的四个类别的信息:
$ WINEDEBUG=heap wine program_name

如果你想看到除接替频道的所有记录信息, 你可以像这样做:
$ WINEDEBUG=+all,-relay wine program_name

这里是一张wine debug频道清单和类别。很多频道将会增加(或减少)在以后的版本中。

表 4-1. Debug 频道
accel
adpcm
advapi
animate
aspi

atom
avicap
avifile
bidi
bitblt

bitmap
cabinet
capi
caret
cdrom

cfgmgr32
class
clipboard
clipping
combo

comboex
comm
commctrl
commdlg
computername

console
crtdll
crypt
curses
cursor

d3d
d3d_shader
d3d_surface
datetime
dc

ddeml
ddraw
ddraw_fps
ddraw_geom
ddraw_tex

debugstr
devenum
dialog
dinput
dll

dma
dmband
dmcompos
dmfile
dmfiledat

dmime
dmloader
dmscript
dmstyle
dmsynth

dmusic
dosfs
dosmem
dplay
dplayx

dpnhpast
driver
dsound
dsound3d
edit

enhmetafile
environ
event
eventlog
exec

file
fixup
font
fps
g711

gdi
global
glu
graphics
header

heap
hook
hotkey
icmp
icon

imagehlp
imagelist
imm
int
int21

int31
io
ipaddress
iphlpapi
jack

joystick
key
keyboard
listbox
listview

loaddll
local
mapi
mci
mcianim

mciavi
mcicda
mcimidi
mciwave
mdi

menu
menubuilder
message
metafile
midi

mmaux
mmio
mmsys
mmtime
module

monthcal
mpeg3
mpr
msacm
msdmo

msg
mshtml
msi
msimg32
msisys

msrle32
msvcrt
msvideo
mswsock
nativefont

netapi32
netbios
nls
nonclient
ntdll

odbc
ole
oledlg
olerelay
opengl

pager
palette
pidl
powermgnt
print

process
profile
progress
propsheet
psapi

psdrv
qcap
quartz
ras
rebar

reg
region
relay
resource
richedit

rundll32
sblaster
scroll
seh
selector

server
setupapi
shdocvw
shell
shlctrl

snmpapi
snoop
sound
static
statusbar

storage
stress
string
syscolor
system

tab
tape
tapi
task
text

thread
thunk
tid
timer
toolbar

toolhelp
tooltips
trackbar
treeview
ttydrv

twain
typelib
uninstaller
updown
urlmon

uxtheme
ver
virtual
vxd
wave

wc_font
win
win32
wineboot
winecfg

wineconsole
wine_d3d
winevdm
wing
winhelp

wininet
winmm
winsock
winspool
wintab

wintab32
wnet
x11drv
x11settings
xdnd

xrandr
xrender
xvidmode





想了解关于侦错频道的较多的细节, 点击进入 The Wine Developer's Guide.


4.5.2 WINEDLLOVERRIDES=[DLL Overrides]

不是总能使用 内建DLL 运行应用程序。有时候 本地(原生)DLL 运行得更好。虽然这些 DLL overrides 可以通过使用 winecfg 来设置,但是您可能希望使用 WINEDLLOVERRIDES 环境变量来设置他们。

例如,如果您想要 Wine 来使用本地(原生)ole32.dll, oleaut32.dll 和 rpcrt4 您可以像这么运行 Wine :
$ WINEDLLOVERRIDES="ole32,oleaut32,rpcrt4=n" wine program_name

要获取更多关于 DLL overrides 的信息,请参阅本指南的 《DLL overrides》(3.1.2.1) 章节。
4.6 wineserver 命令行选项

Wineserver 通常自动地被 Wine 启动,不论第一个 wine 进程是什么时候启动的。但是,wineserver有一些有用的命令行选项,如果您手动启动 wineserver,您就可以添加它们。例如,通过一个用户登录脚本或其他的什么。

4.6.1 -d
为启动wineserver的终端里的debug输出设置debug级别。换句话说:任何高于 0 的值都将启动 wineserver特殊debugging(调试)输出。

4.6.2 -h
显示 wineserver 命令行选项帮助信息。

4.6.3 -k[n]
杀死当前的 wineserver ,使用任意的/选择性的信号 n。

4.6.4. -p[n]
这个参数使 wineserver 保持您想要的时间,n 即为该时间,单位为“秒”。它可以防止 wineserver 马上关闭。
通常,wineserver 会在最后一个使用 wineserver 的 wine 进程终止后立即退出。但是,由于 wineserver 在启动时载入了许多东西(诸如整个 Windows 注册表数据),其启动可能是相当慢的,所以有时候通过使之保持从而保持其在所有 Wine 会话结束后持续存在。

4.6.5 -w
此参数使一个新启动的 wineserver 等待,直到当前活动的 wineserver 实例终止。


4.7 设定 Windows/Dos 环境变量
您的程序可能要求正确地设置一些环境变量以便其成功地运行。在这种情况下,您需要在 Linux shell 中设置这些环境变量,因为 Wine 将把全部的 shell 环境变量设定传递给 Windows 环境变量空间。例如,在 bash shell 中(其他 shell 可能有不同的语法 !):
export MYENVIRONMENTVAR=myenvironmentvarsetting
这将确保一旦您使用 Wine 启动您的程序,该 Windows 程序能存取 MYENVIRONMENTVAR 环境变量。如果您想要 MYENVIRONMENTVAR 设置能保持,那么您可以把该设定放入 /etc/profile,或者也可以放在 ~/.bashrc 里,如果您使用 bash 的话。

请注意,但是该规则也有例外:如果您想要更改 PATH, SYSTEM 或 TEMP 变量,那么您肯定不能那么做,因为那将改变 Unix 环境设定。所以,您应该把他们设置在注册表中。要设置他们,您需要启动 wine regedit 然后进入
HKEY_CURRENT_USER/Environment
键。现在您可以创建或修改您需要的变量的值
"System" = "c:\\windows\\system"
此设置指出了 windows system 文件们在何处。Windows system 目录应该居于被用来作为 Windows 设定的目录之下。这样,如果使用 /usr/local/wine_c_windows 作为 Windows 目录的话,那么 system 目录应该是 /usr/local/wine_c/windows/system 。此设置务必不要在末尾上写上斜线,并且请确保您有写入权限。
"Temp" = "c:\\temp"
这应该是您想存放您的临时文件的目录, /usr/local/wine_c/temp 在我们前面的例子里。再次提醒,不要有末尾的斜线,要有写入权限!!
"Path" = "c:\\windows;c:\\windows\\system;c:\\blanco"
类似于 Unix boxes 上的 PATH 设定。当 Wine 是运行像 wine sol.exe ,如果 sol.exe 存在于 Path 设定里指定的目录中,wine 将执行之(当然啦,如果 sol.exe 存在于当前目录中,wine 将执行当前目录中的那一个 sol.exe)。请确保此变量始终有您的 windows目录 和 system目录 (比如,在此例子中的设置,它必须有 "c:\\windows;c:\\windows\\system" )
 

4.8 文本型程序(CUI: 控制台用户界面)

文本模式程序是只使用文本作为输出的程序(惊奇啊!)。用 Windows 术语来说,它们被称为 CUI(Console User Interface,控制台用户界面)可执行文件,与 GUI(Graphical User Interface,图形用户界面)相对。Win32 API 提供了一套完整的 API 来处理这种情况,涵盖了从基本的特征(如文本打印)到高级的功能性(如全屏幕编辑,色彩支持,光标支持,鼠标支持等),中间的特性如:行编辑,或 原始的/加工过的 输入流 支持。

鉴于上述的宽广范围,以及当前在 Un*x 世界里的应用,Wine 提供三种不同的方法来运行控制台程序(亦称 CUI 可执行文件):

·bare streams

·wineconsole with user backend

·wineconsole with curses backend

这里的名称有点灰色而略显费解。“bare streams”意味著不提供 Wine 的额外支持,这些支持用来影射 Unix 控制台存取。另外两种方法要求使用特定的 Wine 程序 (wineconsole),它提供扩展的环境。下面的表格描述了使用那三种方法您可以(和不可以)做什么

表4-1. 三种 console 的基本不同之处
功能
Bare streams
Wineconsole & user backend
Wineconsole & curses backend

如何运行(假定可执行文件为 foo.exe)
$ wine foo.exe
$ wineconsole -- --backend=user foo.exe
$ wineconsole foo.exe

You can also use --backend=curses as an option

对行 oriented CUI 应用程序的良好支持 (它们一行接一行地打印信息)




对全屏幕 CUI 应用程序的良好支持(包括但不限于色彩支持, 鼠标支持...)




甚至能在 X11 未运行时运行




实现
映射标准的 Windows 流到标准的 Unix 流 (stdin/stdout/stderr)
Wineconsole 将创建一个新的窗口 (这样,要求 USER32 DLL 可用) 在那里所有信息将被显示
Wineconsole 将使用已存在的 unix 控制台 (从程序被运行的那个) 在 (n)curses 库的支持(帮助)下,控制所有控制台表面来与用户交互

已知的限制


如果2个(或多个)Windows控制台被用于相同的 Un*x 终端,将产生奇怪的表现和行为


 

4.8.1 CUI 可执行文件配置

当使用 wineconsole 时,有若干配置选项可用。Wine (Windows 也)以每个应用程序为基础,存储若干配置选项在注册表中。例如,这使得用户可以为一个给定的应用程序定义他想要给它的默认屏幕缓冲大小。

从今以后,只有 USER backend 允许您编辑那些选项(我们不推荐手动编辑注册表内容)。当您右键在控制台中单击时,将弹出一个菜单,您可以从下述选项中选择:

·Default(默认):这将编辑所有尚未被单独配置的应用程序共享的设定。所以,当首次运行一个应用程序时(在您的机器上,在您的帐号下)Wineconsole 将把从默认设定继承而来的设定作为应用程序的设定。以后,该应用程序将拥有它自己的设定,您可以按照您的意愿来修改之。

·Properties(值):这将编辑应用程序的设定。当您已经完成了编辑,将提示您是否想:

1.Keep these modified settings only for this session (next time you run the application, you will not see the modification you've just made).

仅为此会话保持这些修改后的设定(下一次您运行该应用程序时,修改将消失)



2.Use the settings for this session and save them as well, so that next you run your application, you'll use these new settings again.

为此会话使用这些设定,并存储之,以便您下次运行您的应用程序,您将再一次使用这些新的设定。

下面的列表列出了您可以配置的项目,以及其意义:

表 4-3. Wineconsole 配置选项
 
配置选项
意义

光标大小
定义光标的大小。可用的三个选项为:small (33% 字符高), medium (66%) 和 large (100%)

弹出菜弹
It's been said earlier that wineconsole configuration popup was triggered using a right click in the console's window. However, this can be an issue when the application you run inside wineconsole expects the right click events to be sent to it. By ticking control or shift you select additional modifiers on the right click for opening the popup. For example, ticking shift will send events to the application when you right click the window without shift being hold down, and open the window when you right-click while shift being hold down.

快速编辑
这个勾选框允许您决定左键单击事件是否将被解释为事件并发送给当前的应用程序(不勾选)或作为屏幕中被选中的矩形块以待之后拷贝到剪贴斑上 (勾选).

历史记录
这允许您设置控制台能回溯多少条命令。您也可以在连续键入若干条相同的命令时是否要存储它们全部的命令 (不勾选) 或最后一条 (勾选).

外观设定
外观设定(police)值选项卡允许您选择默认控制台的字体 ( 字体文件, 大小, 背景和前景色).

屏幕缓冲

&

窗口大小
您所看见的控制台是由不同的两部分组成。一方面屏幕缓冲包含了所有的您的应用程序打印在屏幕上的信息,另一方面窗口显示屏幕缓冲的给定部分。请注意,窗口总是比屏幕缓冲小或者与之相等。较小的窗口大小将放上滚动条以便您能看见全部的屏幕缓冲的内容。

退出时关闭
如果它被勾选, 那么 wineconsole 将在应用程序终结时退出。反之, 它将保持打开直到用户手动地关闭之: 这将使您能在程序终结后看见它最后输出的信息。

编辑模式
当用户键入命令,他/她可以在许多不同编辑模式中选择:
Emacs: 可用emacs下的键设定. 例如, Ctrl-A 将使光标跑到编辑行的行首. 参阅您的 emacs 手册来获取命令的详细信息.
Win32: 标准的 Windows 控制台键设定 ( 主要使用箭头[方向]键 )


第五章 问题捕捉报告 bug



5.1 如果有些程序仍然不能运行怎么办?

有些时候您已经尝试了所有的方法, 您甚至费了九牛二虎之力吃尽了苦头绞尽了脑汁,做这令人恶心的事情,但仍然无助于使一些他妈的该死的程序在一些版本的 Wine 上工作。别泄气,我们在这里要帮助您……(换句话说,您想付出多少银子?)


5.1.1 验证您的wine配置

使用

$ wine --version

并观察其输出,确保您正在运行一个新近版本的 Wine。启动 winecfg 并检查各个设定以确保设定看上去比较正常。检查 ~/.wine/dosdevices 确保您的 c: 指向了您认为它应该指向的地方。


5.1.2 使用不同的 Windows 版本设定

在许多情况下使用 不同的 Windows 版本设定 是有所助益的。

(蓝色字体提及的内容请参见 3.1.1 应用程序设定 章节)


5.1.3 使用不同的启动路径

这个方法有时能有助益。请

wine prg.exe



wine x:\\full\\path\\to\\prg.exe
(请替换为您自己机器上的正确路径)

都试一试。


5.1.4 乱动 DLL 配置

在运行时使用 WINEDEBUG=+loaddll 来配置要载入哪些 DLL ,以及载入 本地(原生)的 还是 内建的 版本。然后请确保您有正确的 本地(原生)的DLL 文件在您配置的 C:\windows\system 目录并在命令行或配置文件乱动 DLL 载入顺序设定。


5.1.5 检查您的系统环境!

仅仅一个想法:会不会是您的 Wine 创建/执行环境坏了?请确保 Wine 所依赖的包没有任何问题(gcc, glibc,X 库,OpenGL(!),……)例如当使用“错误的”头文件给“正确的”库时,有些人会遇到奇怪的不能找到东西的失败!!!(这导致数日的 debug ,不顾一切地尝试找出为什么那个低级的功能[函数]会以那种超乎想象的方式失败……ARGH!)


5.1.6 使用不同的GUI(窗口管理器)模式

通过配置文件来命令 Wine 使用 桌面模式 ,托管模式 或朴素的或者说丑陋的 “普


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2006-07-22 0:01 

注册: 2006-03-19 21:43
帖子: 58
送出感谢: 0 次
接收感谢: 0 次
下载地址不全, 能再发一遍么


页首
 用户资料  
 
3 楼 
 文章标题 : 原贴地址
帖子发表于 : 2006-07-23 18:36 
头像

注册: 2006-04-29 10:24
帖子: 114
送出感谢: 0 次
接收感谢: 0 次
http://www.linuxgame.org/bbs/?thread-61-1-1.html[/url]


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2006-07-24 12:30 
论坛管理员

注册: 2005-03-27 0:06
帖子: 10116
系统: Ubuntu 12.04
送出感谢: 7
接收感谢: 128
http://wiki.ubuntu.org.cn/WineGuide


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2006-08-26 22:12 

注册: 2006-08-12 14:56
帖子: 117
地址: GD SG SX
送出感谢: 0 次
接收感谢: 0 次
老大,不行阿。运行winecfg后找不到exe程序


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2006-09-11 19:03 

注册: 2006-07-10 11:35
帖子: 188
送出感谢: 0 次
接收感谢: 0 次
还没有看完
但我知道了我在找的东西呢


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 6 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译