wine 中文用户指南 (四)-尊龙凯时登录首页

第四章 运行wine

内容标签:

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

4.2 如何运行wine

4.3 类似explorer的图形化环境变量

4.4 wine的命令行选项

4.5 环境变量

4.6 wineserver命令行选项

4.7 设定windowsdos环境变量

4.8 文本程序(cui:控制用户接口)

本章将描述运行 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,文本界面)可执行文件的详细信息,请参阅下面相关章节

4.3 类似 explorer 的图形化wine环境

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

4.4 wine命令行选项

4.4.1 --help

--help

显示简单的命令行帮助页。

4.4.2 --version

显示 wine 版本。对验证您的安装有用。

4.5 环境变量

4.5.1. winedebug=[channels]

wine 并不是完美的, 并且许多windows程序还是不能在没有bugs的情况下运行于wine下(但那么,很多程序也不能完美运行在native windows下(译者注:个人感觉这里说的应该是native windows dll下完美运行))。为了使人比较容易追踪找到在每个bug后面的成因,wine提供你一些debug channels(找错方法)能让你轻易的找到错误。

当你激活每个排错的方法, 将会引起登录信息被显示到你调用wine的控制台。在那里,你能在你的空闲时后重新传入给一个文件的讯息而且调查它。但是你首先要注意,一些侦错选项能产生难以置信那么多数量的记录信息。(打开这些选项)你能看见很丰富的(wine)的犯罪记录:

relay

每当win32的函数被调用它就会弹出一个日志(调用)信息

win

追踪windows信息传递,当然

all

这是个别名对于每个存在的调试选项。例如对于一个复杂的应用程序,你的侦错记录能容易地大于1mb 或者更大。打开relay选项跟踪时,常产生记录信息超过 10 mb,关键是你运行了程序多久。 (你可以查看 relayexclude 注册表值,修改relay的跟踪报告。).日志记录会相对降低一点点wine的速度, 因此除非你真的做需要日志文件,否则不应使用 winedebug

在每个侦错频道里面,你能更进一步指定一个信息类别(message class, 过滤出不同的程度的错误。四个信息类别是:

trace, (追踪)

fixme, (修复)

warn, (警告)

err(错误)

为了要打开一个侦错频道, 使用格式

类别频道

为了把它关掉,使用

类别-频道

为了要列出相同的多于一个的

winedebug

选项,用逗点隔开他们。 例如, 需要警告类别的信息,使用

heap

调试选项。你可以像这样调用wine:

$ winedebug=warn heap wine program_name

如果你停止所要的信息类别(像下面一样的调用), wine将会显示来四个类别的信息:

$ winedebug=heap wine program_name

如果你想看到除relay选项以外的所有记录信息, 你可以像这样做:

$ winedebug= all,-relay wine program_name

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

4-1. debug channels(调试选项)

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

想了解关于侦错频道的较多的细节, 点击进入 wine开发者向导

4.5.2 winedlloverrides=[dll overrides]

(译者注:为了简单,我们这里重申一遍:),built-in就是属于winedllnative就是windows系统带过来的dll,这样简单的理解认为就够了)

不是总能使用 built-in dll 运行应用程序。有时候 native 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.5.3 开放源码(oss)音频驱动设置

如果你正在使用oss音频驱动而且有多个音频设备,(例如: /dev/dsp*,/dev/mixer*)你可以指定下面一种你喜欢的环境变量:

laudiodev=[audio device]

lmixerdev=[mixer device]

lmididev=[ midi device]

例如:

$ audiodev=/dev/dsp4 mixerdev=/dev/mixer1 mididev=/dev/midi3 wine program_name

4.6 wineserver 命令行选项

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

4.6.1 –d

为终端里启动的wineserverdebug输出设置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 术语来说,它们被称为 cuiconsole user interface,控制台用户界面)可执行文件,与 guigraphical 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-2. 三种 console 的基本区别

功能

bare streams

wineconsole & user backend

wineconsole & curses backend

如何运行(假定可执行文件为 foo.exe)

$ wine foo.exe

$ wineconsole -- --backend=user foo.exe

$ wineconsole foo.exe

你也可以像选项一样使用:

--backend=curses

对行 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%)

弹出菜弹

早些时候就说过,当用右键点击窗口,wineconsole就会弹出。然而,这将是个问题,你在wineconsole中的应用程序希望点击右键的事件能够传给它,在你按下controlshift键时,同时点击右键打开弹出菜单(用shift 其他 或者control 其他键组合有另外的功能)。例如:当你没有按住shift键点击右键点击窗口后ticking shift会发送“事件”(event)给应用程序,你按住shift键点击右键时,窗口打开。

快速编辑

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

历史记录

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

外观设定

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

屏幕缓冲

&

窗口大小

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

退出时关闭

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

编辑模式

当用户键入命令,/她可以在许多不同编辑模式中选择:

  • emacs: 可用emacs下的键设定. 例如, ctrl-a 将使光标跑到编辑行的行首. 参阅您的 emacs 手册来获取命令的详细信息.
  • win32: 标准的 windows 控制台键设定 ( 主要使用箭头[方向] ).

上一篇:

下一篇:

网站地图