新项目 - 来自实验室的新鲜成果

作者:John Knight
Q4Wine—Wine的GUI前端 (q4wine.brezblock.org.ua)

多年来,Wine已经有很多GUI前端,老实说,我几乎讨厌所有这些前端。然而,这个前端改变了我的看法,我也向您推荐它。

引用该网站的话:“Q4Wine是W.I.N.E.的Qt4 GUI。它将帮助您管理Wine前缀和已安装的应用程序。” 同样根据该网站,Q4Wine包括以下通用功能(以及更多)

  • 它可以将Qt颜色主题导出到Wine颜色设置中。

  • 它可以轻松地同时处理不同的Wine版本。

  • 它可以轻松创建、删除和管理前缀 (WINEPREFIX)。

  • 它可以轻松控制Wine进程。

  • 它支持自动启动图标。

  • 它提供简便的CD镜像使用。

  • 您可以从PE文件(.exe,.dll)中提取图标。

  • 它为管理的前缀提供简便的备份和还原。

  • 它包括Winetriks支持。

New Projects - Fresh from the Labs

Q4Wine的一个关键功能是其“进程”选项卡,它充当行为异常程序的内置系统保护程序,但仅适用于Wine特定的程序——简单但非常巧妙。

New Projects - Fresh from the Labs

Q4Wine的真正优势在于允许您为一个程序定义Wine设置,而不会影响整个系统。

安装

为Debian、Ubuntu、Fedora、FreeBSD、Gentoo、openSUSE、openmamba和Slackware以及常用的源代码tarball提供了二进制文件。对于那些使用源代码运行的用户,文档说明您需要以下库

  • sudo

  • wine

  • >=sqlite-3.5.6

  • >=which-2.19

  • >=icoutils-0.26.0

  • >=qt-4.4.0

  • >=qt-sql-4.4.0 (注意:qt-sql可能具有sqlite驱动程序支持)

  • >=qt-gui-4.4.0

  • >=qt-core-4.4.0

  • >=qt-network-4.4.0

  • >=qt-dbus-4.4.0

  • wget

FuseISO被列为可选依赖项,但我强烈推荐它。我还必须安装qt4-qmake和libqt4-dev。

获取最新的tarball,解压它,在新文件夹中打开终端,然后输入以下命令

$ mkdir build
$ cd build
$ cmake -DCMAKE_INSTALL_PREFIX=/usr ..
$ make

如果您的发行版使用sudo

$ sudo make install

如果您的发行版使用root

$ su 
# make install

要运行程序,请输入

$ q4wine

用法

在您开始使用Q4Wine之前,您将进入首次启动向导。系统会询问您四个Wine组件的路径,前三个路径很可能已填写,而最后一个wine libs路径为空,需要定义。在我的系统上,这是/usr/lib32/wine,这可能是出于32/64位原因而留空的?

接下来是类似的“系统实用程序路径”屏幕(值得庆幸的是,默认情况下已预先填写),然后是另一个设置页面,也已预先填写,但是如果您知道自己在做什么,请随时调整它们。接下来是网络设置,然后是非常重要的一步:快速挂载配置文件。

这允许您在没有root权限的情况下挂载或卸载,并且有望让您在多CD安装期间弹出光盘。FuseISO是我安装时的默认选择(尽管我特意选择安装FuseISO是为了这个目的),但是没有FuseISO的用户可以从sudo或gui sudo中选择。

现在您已进入主GUI,请查看“设置”选项卡。“当前前缀:”下拉框为您提供了在安装了多个版本的情况下,在Wine版本之间进行选择的绝佳选项。

如果您单击“程序”选项卡,您将看到一系列默认系统程序,包括写字板、winecfg、资源管理器等。然而,对我来说重要的是弹出程序,它让我完成了Valve的橙盒双光盘安装,我之前在第一张光盘上卡住了(要么我之前无法弹出它,要么无法读取第二张光盘)。因此,任何半条命的粉丝如果也遇到了麻烦,不妨尝试一下。

现在,让我们继续实际添加程序。

仍然在“程序”选项卡下是一个当前前缀列表,在我新安装的系统中,这个列表非常简单。我通过在左侧窗格中单击鼠标右键,然后单击“新建”来添加一个games文件夹。这将弹出一个对话框,提示您输入新的目录名称。输入名称并单击“确定”。

现在您有了一个新文件夹,单击此文件夹,然后在右侧窗格中单击鼠标右键并选择“新建”。这将添加一个新图标,但首先会弹出一个窗口,其中包含大量选项;这才是真正巧妙之处。

前两个部分非常基本:“常规”部分是您告诉Q4Wine程序所在位置的地方,“图标选项”是您为图标命名和描述的地方。值得庆幸的是,“常规”部分为程序和工作目录字段都提供了一个“浏览”按钮,这使您不必手动输入这些路径。对于想要向命令添加一些参数的高级用户,这里提供了一个特定的字段。

我最喜欢的部分之一是此选项卡底部的“虚拟桌面”部分。在这里,您可以选择完全不使用虚拟桌面,也可以从下拉框中选择特定的分辨率。这个选项非常巧妙,因为您不必每次运行另一个程序时都进入winecfg并选择不同的设置。

进入“覆盖DLL”选项卡,您可以选择特定的DLL来覆盖默认选项,无论是原生的还是内置的。对于任何在winecfg中执行过此操作的人来说,此选项都很熟悉,但它的额外好处是仅将DLL覆盖应用于一个程序,而不会影响系统的其余部分。

回到主屏幕,有一个“Wine AppDB”选项卡。那些刚接触Wine的人可能没有意识到Wine网站上有一个庞大的Windows应用程序数据库,以及它们在Wine下运行的良好程度。这个老化的网站及其数据库一直有些笨拙,但是这个选项卡允许您跳过中间人,并从Q4Wine本身内部搜索数据库。

我对GUI前端的担忧之一是,您并不总是能像使用基本终端那样终止错误程序。Q4Wine团队非常精明,他们包含了一个“进程”选项卡,您可以在其中获得系统监视器风格的界面,但仅限于Wine特定的进程。这对我来说是一个游戏规则改变者。

Wine有许多基于它的扩展,但到目前为止,它们大多是晦涩的项目,人们不得不去寻找。Q4Wine集成了重要的扩展,而且从表面上看,它将继续集成更多这些新兴的项目和扩展。我知道其他GUI过去也做过这类事情,但Q4Wine确实拥有最好的界面。

我已经使用Wine大约十年了,我见过许多GUI来了又去。要么它们的功能和界面过于简陋,要么它们速度慢且笨拙,让人放弃整个过程。Q4Wine都不是这些。它时尚、快速、直观且功能丰富。我将不再坚持使用终端并手动执行这些操作。事实上,我刚刚创建了一个Q4Wine桌面快捷方式。我被征服了。

deheader—C头文件分析 (www.catb.org/~esr/deheader)

在代码不断扩展的世界中,很容易变得马虎,出现冗余代码或不优雅的设计。幸运的是,deheader挺身而出——一个简单的工具,可以为程序员节省大量时间。

根据该网站的说法:“deheader分析C和C++文件,以确定可以删除哪些头文件包含,同时仍然允许它们编译。这可能会大大提高编译时间,尤其是在大型C++项目上;它有时还会揭示开发人员未意识到的依赖关系和内聚性。”

New Projects - Fresh from the Labs

deheader扫描代码以查找冗余的头文件包含。例如,这是来自MPlayer项目的输出。

安装和使用

就软件包而言,在撰写本文时,唯一可用的东西是源代码tarball。但是,请不要害怕。不需要编译,而且由于没有真正提及库要求,我猜大多数发行版都会立即运行它,假设它们安装了Python。

从网站下载最新的tarball,解压它,并在新文件夹中打开终端。然后,只需运行

$ ./deheader path-of-files

如果给定的路径是一个目录,deheader会扫描其中的所有文件。给它一些时间来处理,最终屏幕上会显示所有不必要的头文件的列表。例如,我选择分析现在已有十年历史的MPlayer代码,这个项目不可避免地会有很多遗留代码和零散的东西,仅仅是因为它存在了这么长时间。

如果您准备进一步操作,请添加开关-r,不必要的头文件将从文件中删除。如果您想进行一些测试编译,请使用-m开关。例如,这是我对MPlayer代码运行的命令

$ ./deheader -r  ~/src/mplayer-export-2010-12-27/ 

这些是基本知识;有关更多信息,请参阅文档。

如您所见,deheader是一个非常易于使用的程序,具有优雅的设计。这种编码优雅的理想体现在deheader的结果中。它应该节省大量的编译时间,并突出显示可能一直未被注意到的编码缺陷。虽然它仍然以tarball源代码形式存在,但希望它很快就会进入发行版存储库。

项目概览

Razercfg (bu3sch.de/joomla/index.php/razer-nextgen-config-tool)

硬核游戏公司Razer的粉丝无疑会想了解这个项目。根据该网站的说法:“这是下一代Razer设备配置工具,将Razer游戏体验带入自由、开源世界。此实用程序旨在取代旧的deathaddercfg实用程序。该工具架构基于razerd,razerd是一个后台守护进程,执行所有低级特权硬件访问。用户界面工具是razercfg(命令行工具)和qrazercfg(基于Qt4的图形设备配置工具)。”

而且,根据其Freshmeat条目:“支持的设备包括Razer DeathAdder鼠标、Razer Krait鼠标、Razer Lachesis鼠标、Razer Copperhead鼠标和Razer Naga鼠标。”

GAdmin-Antivirus (freshmeat.net/projects/gadmin-antivirus)

我一直对Clam antivirus的命令行界面感到厌烦(我就是不明白),所以一个GUI前端会很棒。值得庆幸的是,似乎存在许多前端,希望我能在未来几个月内介绍一两个。然而,关于这个项目的详细信息很少,尽管我还是想尝试一下。根据其Freshmeat条目:“GAdmin-Antivirus是Clam antivirus的快速易用的GTK+前端。可以安排多个扫描集在特定时间通过cron运行。这些扫描集中的每一个都可以包含要扫描的多个目录。”

正在酝酿新鲜、创新或令人费解的东西吗?发送电子邮件至 newprojects@linuxjournal.com

John Knight是一位26岁的鼓和攀岩狂热爱好者,来自世界上最偏远的城市——澳大利亚西部的珀斯。人们通常可以发现他要么埋头于Audacity屏幕,要么疯狂地敲击底鼓。

加载Disqus评论