新鲜出炉

作者:John Knight
Zero Install System (0install.net)

您可能之前听说过这个项目——另一个尝试解决 Linux 软件安装问题的方案。您可能会问,问题是什么?

如何在 Linux 上轻松、统一地安装新软件,而不会吓跑胆小的 Windows 用户?这个领域经常需要关注,但我们常常视而不见,因为我们已经习惯了使用 apt 或类似的工具。但是,像 apt 这样的系统真的足够了吗?如果我想安装的程序不在发行版的存档中怎么办?如果它太旧了怎么办?如果我想要比我的发行版存档提供的更新的版本,又不想为了满足所有其他微不足道的依赖关系而升级千兆字节的整个系统怎么办?如果我的发行版消亡并且其存档消失了怎么办?如果我只是想在每个系统上做同样的事情怎么办?

Zero Install 是继 Autopackage 等项目失败之后,又一个试图解决此问题的项目,但它会引起更广泛的 Linux 受众的兴趣吗?

安装

值得庆幸的是,有大量的二进制文件可用,它们可能会满足您的系统需求。我抓取了 Etch .deb 包,它运行起来没有任何问题。如果您的系统未被覆盖,该站点还包含一个源代码 tarball,其中包含一个 Python 脚本,以及有关如何使用它的说明。没有任何真正的晦涩的依赖关系,因此基本软件包很可能安装不会有任何问题。

使用

初始使用更像是一个命令行操作,这立即将 Zero Install System 与 Autopackage 区分开来。一旦安装了 Zero Install Injector,您就可以通过键入以下命令来安装软件包0launch并将软件包的 URL 粘贴到 shell 中。但是,我花了一分钟才找到可用软件包的页面——它位于 0install.net/injector-feeds.html。一旦您找到感兴趣的软件包,复制软件包的 URL 并执行以下操作

$ 0launch http://insertyourURLhere

将弹出一个安装程序窗口,显示软件包名称和您可能需要的任何依赖项。几秒钟后,可能会出现一个窗口,向您显示一个信任密钥(GPG 签名密钥),询问您是否允许运行此密钥,这类似于您的浏览器询问是否接受站点的身份验证证书。由于目前可用的软件包不多,因此现在信任这些密钥是可以的,但如果它们变得流行,您将需要仔细检查提供的密钥。一旦密钥业务完成,按“运行”,新软件包及其任何其他依赖项的下载将开始。下载完成后,新程序应立即启动。如果不是,任何错误消息都将显示在 shell 中。

Fresh from the Lab

图 1. Zero Install 追踪依赖项以及新程序。

Fresh from the Lab

图 2. Zero Install 展示了一个有趣的信任密钥。

对于第一次来说,这一切都还可以,但是以后每次尝试运行新程序都需要重复相同的繁琐步骤。值得庆幸的是,通过一些巧妙的脚本,创建了一个本地链接,该链接将文件名放入您的路径中,而无需 root 权限。但是,它仍然需要您再次输入 URL,并结合以下命令0alias以及您选择的别名,如下所示

$ 0alias alias http://insertyourURLhereagain

作为一个真实世界的例子,我成功地安装了一个名为 Barrage 的游戏,shell 输入如下所示

$ 0alias barrage http://people.freenet.de/LinuxCNC/0install/barrage

现在我可以在将来通过输入以下命令来运行该程序barrage在命令行中。软件包页面上包含一些用于简化某些任务的工具,但是安装它们仍然需要上述步骤。

Zero Install 绝对有一个有趣的界面,它以自己独特的方式处理独立于发行版的软件包。我猜很多人会被这种工具的命令行性质吓退,尤其是从 Web 浏览器复制和粘贴(命令行和 GUI 从来都不是最好的伙伴)。此外,许多工具似乎都基于 Rox 文件管理器——一个很棒的轻量级系统,但对于更广泛的 Linux 受众来说仍然相对晦涩。

就我个人而言,我为 Autopackage 的消亡感到惋惜,这是一个直言不讳的项目,受到了 Debian 等传统发行版打包者的极大敌意,最终导致了它的消亡。其他类似的项目采取了更务实的方法——有些项目具有更“Windows 式”的安装程序(不一定是坏事),另一些项目则像这个项目一样独特。Zero Installer 可能会因为不是 Autopackage,并且随后没有激怒 apt-get 霸主而获得普及。无论您如何看待它,我希望所有这些独立于发行版的打包项目都在向开发人员社区传递一个信息,即并非所有人都对依赖存储库的想法感到满意,并且软件安装方法很快就需要进行重大变革。这个问题不会消失。

deco—存档文件提取器 (hartlich.com/deco)

deco 非常适合那些厌倦了输入以下命令的人tar -zxvf, -jxvf等等。根据该项目的网站,“deco 是一个通用的存档文件提取器,它具有一致的命令行界面(deco 1.tar.bz2 2.zip 3.flac 4.rar 5.deb就可以工作)和一致的行为(它永远不会在提取后删除存档,它相对于当前工作目录提取,并且它以足够的详细程度提取,除非明确要求另行处理)。它通过在存档顶层有多个文件或目录时创建提取目录,以及能够修复奇怪的权限,来自动处理提取器的陷阱。开箱即用地支持数十种存档文件扩展名,并且添加对其他扩展名的支持只需要很少的工作。”

Fresh from the Lab

图 3. deco 可能是我用过的最简单的存档提取器。

安装

在撰写本文时,deco 仅以源代码 tarball 的形式提供;但是,安装很容易,并且不太可能引起任何麻烦。提取存档并进入新目录后,执行标准

$ ./configure 
$ make
(if not root) $ su 
# make install 

工作正常,没有任何问题,并且可能对您来说也是如此,因为它没有大量的依赖项。

使用

通用用法很简单

$ deco filename.tar.gz

对于大多数人来说,这就是全部内容——简短而精悍。但是,引擎盖下隐藏着什么技巧呢?有很多种巧妙的优化。

例如,通常 Linux 项目都放置在存档中的一个目录中,以防止源目录变得混乱。不幸的是,存档有时会直接放置文件,而没有放置在目录中。这会使您的源目录充满各种不需要的文件,这些文件也可能被覆盖。deco 将存档的提取内容放置在一个目录中,以保持整洁。巧妙的是,如果存档的内容已经包含在一个目录中,deco 会按原样提取存档。否则,deco 会将它们放置在一个以文件名命名的目录中,减去其扩展名。

例如,如果我有一个名为 tuesday-jam-session.tar.gz 的文件,deco 会将内容放置在 tuesday-jam-session 目录下。

如果您想要进一步的控制,例如在提取后删除存档等等,也可以通过一系列命令行开关来实现,这些开关可在该项目的网站上找到。即使您对它已经工作的方式感到满意,也值得阅读该站点,以了解一些其他可用选项,以及引擎盖下隐藏的巧妙技巧和快捷方式。

需要记住的是,deco 项目并没有试图重新发明轮子——它不是单体式的。它依赖于拥有必要的外部提取工具,例如用于 .rar 文件的 unrar 等等。但是,这是大多数存档工具采用的方法,因此大多数人无论如何都期望这样。尽管如此,将所有这些外部程序包含在一个大型软件包中并不需要大量工作,因此该项目的任何爱好者都可能想要这样做。虽然它目前仅通过源代码提供,但希望它很快就能进入大多数发行版存档。

总的来说,deco 是一个可爱的小程序,很可能会为许多疲惫不堪、咖啡因过量的程序员节省一些午夜的痛苦,并使计算变得更加美好。

orDrumbox (www.ordrumbox.com)

orDrumbox 是一个小的、基于 Java 的鼓机小程序,可在 Linux、Windows 和 Mac OS X 上运行。orDrumbox 的设计更多是为了桌面 DJ 而不是鼓手,它可以快速制作出带有节拍和插入采样的时髦中速电子音乐。这款鼓机使用 Java 开发,具有高度的可移植性和轻巧性,非常适合在机器之间跳转并向朋友展示的 DJ 爱好者。

Fresh from the Lab

图 4. 令人惊讶的是,只需随机点击就可能会制作出还不错的节拍。

安装

就软件包而言,唯一可用的 Linux 二进制文件是 .rpm(对我来说不太方便,因为我有一个基于 Debian 的系统)。源代码可用,但它是 zip 压缩的,并且是 Java 代码,并非所有人都有兼容的编译器。我下载了 .rpm 并使用 alien 将其转换为 .deb,这并不困难;查看 alien 手册页以获取更多信息。值得庆幸的是,它转换并安装成功,没有任何重大问题。但是,当我启动该程序时,它需要特定版本的 Java,jpackage-utils(请参阅 www.jpackage.org,也可在 rpmfind.net 上找到)。这也没有 Debian 文件,所以我也不得不在这个软件包上使用 alien。幸运的是,这里也没有任何抱怨,经过这两个步骤后,该程序就可以正常工作了。

使用

要启动程序,请输入orDrumbox.sh到您的 shell 中。如果一切顺利,该程序现在应该可以工作了。如果您查看 orDrumbox 屏幕的上半部分,应该会有一个名为 Pattern 0 (Edit) 的窗口——这是您大部分工作将发生的地方。如果您查看窗口顶部包含数字 4 的框的右侧,您会看到一个灰色和黄色的框。将鼠标悬停在它上面,它会说“创建新音轨”。多次按下它(对于默认鼓组,按下 14 次及以上),因为每行都会创建一个新的乐器供您演奏。在每行的左侧是每个乐器的控件,包括音量等等。右侧是音符编辑器区域。

使用音符编辑器,双击任何框,它们将从白色或灰色变为绿色和红色。绿色告诉您将要播放的音符,您会看到有两个红色滑动条:一个从下到上,另一个从左到右。从下到上的滑块控制音符力度,从左到右的滑块确定播放的音符和八度音阶(或音高)。它默认为 C2,但可以相应地向上或向下调整。在任何框中随机单击,然后单击屏幕底部中心的大型播放图标。节拍将开始播放——可能是一个奇怪的节拍。尝试随机更改音高和力度,以及添加新音符和删除旧音符,以查看它如何影响节拍。要删除任何音符,只需在音符的框中单击鼠标右键,然后选择“删除音符”。

这应该足以让您开始制作节拍,但是您需要用户手册才能更深入地参与并创作完整的歌曲。查看网站上提供的用户手册,并尝试一些可用的自定义鼓组。该程序的扩展性存在一些限制,最大的限制是它被限制为 120BPM。这对于大多数电子音乐和舞曲来说已经足够了,但不适合朋克、速度金属等流派。这些套件提供的声音实际上更适合电子音乐流派,并且对于任何基于摇滚的音乐来说听起来都会很奇怪,因此那些喜欢快节奏摇滚流派的人会想要坚持使用像 Hydrogen 这样的软件。总的来说,这是一个有趣的小工具,它将进入许多家庭 DJ 的心中。

您是否有有趣的项目,实用、方便甚至令人兴奋的东西?请发送电子邮件至 knight.john.a@gmail.com

John Knight 是一位 23 岁的鼓和攀岩狂热爱好者,来自世界上最孤立的城市——西澳大利亚州珀斯。他通常要么埋首于 Audacity 屏幕中,要么疯狂敲击底鼓。

加载 Disqus 评论