Linux 烹饪 - 你的 $HOME 目录是钱坑,还是一个杂乱无章之地?

作者:Marcel Gagné

弗朗索瓦,这太有趣了。我不记得上次笑得这么开心是什么时候了。Quoi? 对不起,mon ami,我没有意识到你是认真的。 确实,大多数人会告诉你他们的家是钱坑,但这并不是用户主目录的环境变量是 $HOME 的原因。 变量名称前面的美元符号只是 shell 访问这些变量的方式。 现在,别那么伤心,弗朗索瓦。 这真的很有趣,如果我是你,我会把它写下来,将来用上它。

既然你提到了,你的 $HOME 目录也可能在其他方面变得昂贵。 人们似乎总能为他们的家找到一些建设项目,无论是改造浴室、更新厨房还是建造新的露台。 因此,当他们运行 Linux 系统时,情况似乎也类似。 我自己也一样,mon ami。 在任何一年中,我都会下载数百个我编译和安装的软件包。 有时,我会卸载它们,有时我会忘记它们,删除源文件夹及其随附的卸载脚本。 结果是未使用的程序、被遗忘的程序和没有目的的悬挂文件。 因为大多数 Linux 软件都是免费的,所以你的 Linux 主目录不是钱坑,但它可能是一个杂乱无章之地。 所有这些都与今晚的菜单非常吻合。

我们稍后再谈,弗朗索瓦——门正在打开,我们的客人们正在到来。Vite! 指引他们到他们的餐桌。 欢迎大家来到 Chez Marcel,这里有最精致的 Linux 美食,更不用说世界上最棒的酒窖了。 弗朗索瓦会带您到您的餐桌,然后他会去取酒。 我相信 2003 年 Clarendon Hills Brookman Syrah 已经很好喝了。 弗朗索瓦,你会在酒窖的东翼找到一箱。

经常光顾 Chez Marcel 的客人们都非常熟悉提取和构建五步法。 作为快速回顾,让我们考虑一个名为 ftl-drive-3.1.tar.gz 的软件包。 要使用提取和构建五步法构建和安装软件包,您可以使用以下命令

tar -xzvf ftl-drive-3.1.tar.gz
cd ftl-drive-3.1
./configure
make
su -c "make install"

这往往效果很好,如果您认为此软件包无法满足您的需求,或者您不再需要在系统上使用它,则卸载它的方法是返回到源目录并键入以下内容

su -c "make uninstall"

听起来很简单,但许多源代码包不包含卸载脚本。 这就是 RPM 或 DEB 等软件包管理器如此出色的原因,这也是我建议您尽可能查找预编译软件包的原因。 软件包管理器会跟踪哪些文件安装在何处,并处理删除构成已安装软件包的所有内容的繁琐过程。 如果你可以对源代码包做同样的事情,那就太棒了。 这就是 Felipe Eduardo Sánchez Díaz Durán 的 CheckInstall 发挥作用的地方。 要获取您的副本,请访问 CheckInstall 网站(请参阅在线资源)。 提供源代码(尽管您可能不需要它),以及 RPM、DEB 和 Slackware 软件包。 二进制软件包的优势(除了简单之外)是它们已经为您的发行版的软件包管理器配置好了。 为什么这很重要? 继续阅读。

CheckInstall 使从源代码包生成 DEB 或 RPM 软件包成为可能。 想法是您运行提取和构建五步法的前四个步骤,并运行checkinstall程序而不是最后的su -c "make install"。 因为结果是预编译的软件包,所以您系统的软件包管理器负责软件包的安装和删除。 让我们假设您已经完成了源代码包的提取,一直到make阶段。 现在,键入以下内容

su -c "checkinstall"

第一次运行 checkinstall 时,您将收到以下消息

The package documentation directory ./doc-pak does not exist.
Should I create a default set of package docs?  [y]:

这里的正确答案是 y,或者只需按 Enter 键接受默认值。 下一步是将文档包放在一起。 在某些情况下,您可能会收到一条消息,指出软件包中未包含任何文档。 如果发生这种情况,则无需担心。 就在事情真正开始发生之前,系统会要求您提供软件包的描述。 在我写这篇文章时,我正在使用 CheckInstall 和我找到的一款儿童专注力游戏(请参阅资源),所以我的描述看起来像这样

Please write a description for the package.
End your description with an empty line or EOF.
>> Concentration game for kids

**************************************
**** RPM package creation selected ***
**************************************

This package will be built according to these values:

1 -  Summary: [ Concentration game for kids ]
2 -  Name:    [ concentration ]
3 -  Version: [ 1.1 ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ checkinstall ]
7 -  Architecture: [ i386 ]
8 -  Source location: [ concentration-1.1 ]
9 -  Alternate source location: [  ]
10 - Requires: [  ]
11 - Provides: [ concentration ]

Enter a number to change any of them or press ENTER to continue:

一旦您通过了这一点,屏幕上就会飞过大量信息,然后创建 RPM 软件包本身。 假设一切顺利,您应该会看到一条类似于我构建上述游戏时收到的消息

Done. The new package has been saved to

 /usr/src/RPM/RPMS/i386/concentration-1.1-1.i386.rpm
 You can install it in your system anytime using:

      rpm -i concentration-1.1-1.i386.rpm

如果您决定要卸载此软件包,标准的 RPM 工具可以完成这项工作,无论是图形化方式还是命令行方式

rpm -e concentration

对于那些尽可能避免使用命令行的人来说,您可能需要查看 Ingo Stieran 的 KInstaller,这是一个专门为 KDE 设计的安装程序。 您可以从网站获取 KInstaller 的副本(请参阅资源)。 有趣的是,构建一个软件包以避免使用命令行是在命令行完成的,但这非常简单(您猜对了)提取和构建五步法。

当您第一次启动该程序时,您会看到一个设置向导(图 1)。 因为这本质上是其他 KDE 程序的安装工具,所以您的第一步是确定 KDE 基础目录。 这里最简单的方法是单击“猜测”按钮。 但是,您应该更关注的字段是“存储目录”。 默认情况下,KInstaller 需要知道您要将软件包提取并执行安装的位置。 该目录是 /tmp,但这可能不是每个人的最佳选择。 因为我做了很多软件包测试,所以我有一个相当大的分区 /mnt/bigdrive,我专门用于此目的。 为您的系统选择合适的位置。 最后,查看标记为“安装后将源软件包移动到存储目录”的复选框。 如果您想保留源软件包的副本,请在继续之前选中此框。

Cooking with Linux - Is Your $HOME a Money, er, Messy Pit?

图 1. KInstaller 从一个简单的配置向导开始。

当您单击“完成”时,KInstaller 启动。 您将看到一个带有两个选项卡的窗口,默认情况下选择“安装”选项卡。 顶部附近是一个标记为“选择”的字段,您将使用它导航到源软件包。 一旦您按下“安装”按钮,下面的日志窗口将开始填充构建的详细信息,从提取到编译(图 2)。 这一切都是自动完成的。 当编译完成时,安装过程启动,您将弹出一个框,要求您输入 root 密码。

Cooking with Linux - Is Your $HOME a Money, er, Messy Pit?

图 2. KInstaller 处理提取和构建五步法的每个步骤。

一旦您完成了几个这些步骤,请花一点时间再次查看这些选项卡,您会看到其中一个选项卡标记为“卸载”。 您使用 KInstaller 安装的每个软件包都将在此处有一个条目。 要卸载软件包(无论是否提供了卸载脚本),请从列表中选择您要删除的软件包,然后单击“卸载”按钮。 再次,一个弹出窗口将要求您输入 root 密码以继续删除软件包。 KInstaller 完成所有这些操作而无需使用 checkinstall。 该软件包自行跟踪安装。 正如我之前提到的,它也专门针对 KDE 软件包。

当弗朗索瓦处理似乎异常多的空酒杯时——看起来,mes amis,你们和我一样喜欢这种酒——我想向你们展示另一个类似 KInstaller 的软件包。 查看 Javier Campos Morales 的 KConfigure。 尽管名称听起来很 KDE,但 KConfigure 并非专门针对 KDE 软件包。 使该软件包有趣的是它处理卸载软件过程的方式; 它使用了我们的老朋友 checkinstall。

要开始使用 KConfigure,请访问 SourceForge 上的网站(请参阅资源)。 提供源代码(是的,这是一个简单的提取和构建五步法)。 当您运行该程序时,会出现一个基本的双窗格窗口,顶部有一小排图标。 这些图标具有听起来很熟悉的名字,如“配置”、“制作”和“安装”。

这就是事情变得有趣的地方,所以让我们暂停一下,看看 KConfigure 的配置菜单(图 3)。 我会让您自行探索“字体”和“杂项”设置。 现在,我想专注于“检查安装设置”。 要使用 checkinstall 程序,请单击“使用 Checkinstall”复选框,并确保您具有 checkinstall 可执行文件的正确路径(在我的系统上,它位于 /usr/bin 中)。 我特意提到这一点,因为 KConfigure 输入的默认路径是 /usr/sbin。 当您对您的设置感到满意时,请单击“确定”。

Cooking with Linux - Is Your $HOME a Money, er, Messy Pit?

图 3. KConfigure 的设置允许您使用 checkinstall 构建软件包。

是时候构建软件包了。 单击“打开”并选择一个源包。 KConfigure 现在会向您显示一个窗口,其中列出了即将提取的文件。 提取和构建的默认目录是您从中选择软件包的目录,但您可以通过单击“在...中提取文件”单选按钮并选择另一个位置来覆盖它。 当您对您的选择感到满意时,单击“确定”,几秒钟后,一个对话框将通知您软件包已成功提取。 现在您已准备好单击“配置”按钮。 配置过程的日志会显示在上半部分窗口中,任何错误都会显示在下半部分窗口中。 当您最终单击“制作”按钮时,也会应用相同的显示格式(图 4)。

Cooking with Linux - Is Your $HOME a Money, er, Messy Pit?

图 4. 细节,细节——KConfigure 构建显示了后台正在进行的工作。

一旦配置和制作过程完成,您可以直接单击“安装”。 假设您有 checkinstall 并且您想使用它,请确保您单击菜单栏上的“构建”,然后从“使用安装”子菜单中选择“检查安装”。 现在,继续单击“安装”。 将出现一个提示,要求您在继续之前确认 root 密码。 完成此操作后,将创建 RPM 软件包。 确保检查日志窗口的底部,其中将显示新创建的 RPM 软件包的路径。 在我的系统上,那是

/usr/src/RPM/RPMS/i386/concentration-1.1-1.kcfg.i386.rpm

Mon Dieu! 时间过得真快,已经到了关门时间了。 肯定有某位开源程序员正在开发一个延长时间的程序。 我们甚至可以使用今天介绍的工具之一来构建和安装软件包,non? 与此同时,我们将不得不与我们拥有的时钟一起生活。 此外,我们可以在享受最后一杯葡萄酒的同时轻松地将门打开一会儿。 请举起您的酒杯,mes amis,让我们大家为彼此的健康干杯。A votre santé Bon appétit!

本文资源: /article/8634

Marcel Gagné 是一位获奖作家,居住在安大略省密西沙加市。 他是全新著作 Moving to Linux: Kiss The Blue Screen of Death Goodbye! 第二版(ISBN 0-321-35640-3)的作者,这是他在 Addison-Wesley 出版的第四本书。 他还定期在电视节目 Call for Help 中以 Linux 专家的身份露面。 Marcel 还是一位飞行员,一位前 40 强唱片骑师,创作科幻小说和奇幻小说,并且擅长折叠霸王龙折纸。 您可以通过电子邮件 mggagne@salmar.com 与他联系。 您可以从他的网站 www.marcelgagne.com 发现许多其他事物(包括很棒的葡萄酒链接)。

加载 Disqus 评论