Enlightenment 基础知识
Enlightenment 由一个核心包、一组它所依赖的库以及被称为 “epplets” 的附加包组成,这些附加包不是运行 E (Enlightenment) 所必需的。您可以从 E 的主要网站 http://www.enlightenment.org/ 获取核心包和它所需的库。至少,您需要表 1 中列出的软件包才能在 Red Hat 5.2 系统上运行。Red Hat 6.0 或更高版本、SuSE 6.2 及更高版本以及当前的 Debian 发行版已经提供了 E。如果您安装了所有内容,您将可以运行 E。如果不是,您需要确定哪个软件包包含 E。通常,这与您在选择要安装的软件包时找到 GNOME 或 KDE 的类别相同。
您需要的图形库是 TIFF、GIF、PNG 和 JPEG,但其中大多数已在 Linux 发行版中安装了几年,因此您很可能已经拥有它们。与 E 所依赖的其他库一样,您可以在 E 网站上找到图形库的源代码发行版。
您要做的第一件事是确保图形库存在。检查它们的快速方法是键入 ldconfig -p。此命令将打印系统上最初安装的所有库。如果您在其他目录中添加了更多库(我们稍后会这样做),并在 /etc/ld.so.conf 中配置了它们,它也会显示这些库。
ldconfig -p | grep -i gif ldconfig -p | grep -i jpeg ldconfig -p | grep -i tiff ldconfig -p | grep -i png
如果这些命令中的任何一个只是返回而不打印任何内容,则您缺少关联的库。grep 命令将只允许来自 ldconfig 的输出,其中包含它后面的字符串(-i 表示忽略大小写)。如果您缺少图形库,请从网站获取并安装它。由于大多数人已经拥有这些库,我们将跳过它们的安装。
接下来,您要安装 imlib。此库处理图形图像(背景、边框等)的显示。它可以适当地缩放图像,例如当您使窗口更宽时。Imlib 未安装在大多数较旧的 Linux 发行版上,并且某些较新版本可能默认不安装它,因此我们将从其源代码查看此库目录的安装。
从 E 网站获取库源代码,并将其解压到本地目录中。在此目录中,按如下方式运行 configure 脚本
./configure --prefix=/usr/local/imlib
这将准备好软件包以进行编译。“--prefix” 选项告诉 configure,编译后,安装将进入名为 /usr/local/imlib 的目录。像 imlib 这样从源代码而不是 RPM 构建的软件包的管理,如果您将它们安装在自己的目录中,将会更容易。
运行 configure 命令后,您就可以通过键入 make 来构建软件了。这将运行一段时间,并且应该在没有错误的情况下完成;但是,您可能会看到一些警告。在我的系统上,我没有安装 GIF 库,所以我收到一条消息,指出“不会构建本机 GIF 支持”。除非您计划在您的个人主题中或作为背景图像使用 GIF 图像,否则这不是一个大问题。E 核心发行版中提供的主题都使用 PNG,因此至少您需要安装 PNG 库。
您可能还会遇到关于找不到 GTK 的警告,以及一条读取 “gdk_imlib will not be built” 的警告。除非像我一样,您将 GTK 安装在自己的目录中,否则这种情况不应该发生在您身上。大多数读者在安装操作系统期间都安装了 GTK。如果您确实收到此错误,则您可能需要升级您的 GTK 软件包,或者您可能没有将其安装在标准位置。在任何一种情况下,您都不必拥有 gdk_imlib 才能将 imlib 库与 E 一起使用。
源代码构建完成后,您就可以安装它了。由于我们在 /usr/local 中指定了一个目录,因此我们需要成为 root 用户才能在那里安装软件。您可以注销并以 root 用户身份重新登录,或者只需运行 su 命令即可更改为 root 用户。后者更容易做到,但您将需要 root 密码。以 root 用户身份,键入
make install
现在,编辑 /etc/ld.so.conf 文件,并将以下行附加到其中
/usr/local/imlib/lib然后运行 ldconfig。这将告诉系统新库安装在 /usr/local/imlib/lib 下,并在运行程序或编译程序时检查那里的库。我们将为其他库再次执行此步骤,因此请务必记住它。如果您使用 su 更改为 root 用户,请键入 exit 以返回到您的正常用户名。请记住:您永远不应以 root 用户身份工作,除非是为了管理系统文件。您可以在不以 root 用户身份的情况下编译这些软件包,并且您应该这样做——这样更安全。
现在您已准备好安装字体库,fnlib 和 freetype。Fnlib 是 E 使用的字体集合,它对 imlib 有一些依赖关系,这就是为什么必须首先安装 imlib 的原因。Freetype 是为 E 提供 TrueType 字体内部支持的库。这样,即使您的 X 服务器不支持 TrueType 字体,E 也可以使用它们。
将 fnlib 和 FreeType 库解压到它们各自的单独目录中。在 fnlib 目录中,运行此命令
./configure --prefix=/usr/local/fnlib \ with-imlib-prefix=/usr/local/imlib
在 FreeType 目录中,运行此命令
./configure --prefix=/usr/local/freetype在每个目录中,运行 make,再次更改为 root 用户并运行 make install。编辑 /etc/ld.so.conf 文件,并附加这两行
/usr/local/fnlib/lib /usr/local/freetype/lib最后,重新运行 ldconfig 并从 root 用户退出。
通常,对于使用 auto-conf(创建 configure 脚本的工具)的其他程序来说,要找到您新安装的软件包,这应该是所有必需的步骤。但是 E 在其 configure 脚本中缺少一小部分,因此我们还需要执行一个额外的步骤。我们需要为 fnlib 和 freetype 目录中的文件创建符号链接到 /usr/local 下的各自目录中。这并不难,所以不要让这个技术解释吓到您。只需将清单 1 中的脚本键入到名为 /tmp/fixit.sh 的文件中,然后键入
sh /tmp/fixit.sh
应该可以了。看起来工作量很大,确实如此,但这就是您在使用非常年轻的软件时必须忍受的。Linux 可能还处于起步阶段,但 E 只比大多数受精卵大一点。
在安装了 E 所依赖的库之后,我们就可以构建和安装 E 本身了。这一个遵循与其他库相同的基本步骤——运行 configure,运行 make,运行 make install。只是这一次,您不需要更新 ld.so.conf 文件。
./configure --prefix=/usr/local/enlightenment\ with-imlib-prefix=/usr/local/imblib
切换到 root 用户并键入 make install,然后从 root 用户退出。
当您运行 configure 脚本时,您将收到关于找不到 Esound 的通知。没关系——您不需要它来与 E 一起工作。在我看来,计算机上的声音做两件事之一:在您键入时发出噪音,或者时钟更改并在您的 CD 上播放 MP3。播放音乐不应该是窗口管理器的任务,所以后一个选项并不重要。至于在您键入时发出声音,嗯,任何这样做窗口管理器都应该放在软盘上,并钉在木桩上,它的作者就在那里被绑起来,就在他们在他的脚下点燃火焰之前。但我要离题了。
构建 E 的过程就像构建库一样,因此安装应该顺利进行。很有可能,您遇到的唯一真正问题可能是库安装不正确。如果是这种情况,请重读本节并重试。构建和安装完成后,您可能希望将 Enlightenment/bin 目录添加到您的路径
export \ PATH=$PATH:/usr/local/enlightenment/enlightenment/bin
或者将二进制文件链接到 /usr/local/bin
ln -s \ /usr/local/enlightenment/enlightenment/bin/enlightenment\ /usr/local/bin请注意,E 的主程序——窗口管理器——是一个名为 “enlightenment” 的程序。
看起来像拼写错误,但实际上不是——这两个命令中的路径都是正确的。我们告诉构建过程将所有 enlightenment 工具安装在 /usr/local/enlightenment 下。当我们运行 make install 时,E 安装过程在 /usr/local/enlightenment 下创建了许多目录。其中一个名为 enlightenment。原因很技术性,但足以说明 Enlightenment 开发人员心中有一个安装方案,而这与我的不同。没关系。它仍然可以使用我的方法工作,并且以后升级到 E 将更容易处理,而不会干扰任何其他软件包。
Michael J. Hammel (mjhammel@graphics-muse.org) 是一位渴望成为图形艺术家的人、作家和软件开发人员。他漫无目的地在地球上游荡,寻找冒险、安静的海滩和逃离主宰他生活的计算机。