Linux 烹饪 - 你的 $HOME 目录是钱坑,还是一个杂乱无章之地?
弗朗索瓦,这太有趣了。我不记得上次笑得这么开心是什么时候了。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,我专门用于此目的。 为您的系统选择合适的位置。 最后,查看标记为“安装后将源软件包移动到存储目录”的复选框。 如果您想保留源软件包的副本,请在继续之前选中此框。
当您单击“完成”时,KInstaller 启动。 您将看到一个带有两个选项卡的窗口,默认情况下选择“安装”选项卡。 顶部附近是一个标记为“选择”的字段,您将使用它导航到源软件包。 一旦您按下“安装”按钮,下面的日志窗口将开始填充构建的详细信息,从提取到编译(图 2)。 这一切都是自动完成的。 当编译完成时,安装过程启动,您将弹出一个框,要求您输入 root 密码。
一旦您完成了几个这些步骤,请花一点时间再次查看这些选项卡,您会看到其中一个选项卡标记为“卸载”。 您使用 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。 当您对您的设置感到满意时,请单击“确定”。
是时候构建软件包了。 单击“打开”并选择一个源包。 KConfigure 现在会向您显示一个窗口,其中列出了即将提取的文件。 提取和构建的默认目录是您从中选择软件包的目录,但您可以通过单击“在...中提取文件”单选按钮并选择另一个位置来覆盖它。 当您对您的选择感到满意时,单击“确定”,几秒钟后,一个对话框将通知您软件包已成功提取。 现在您已准备好单击“配置”按钮。 配置过程的日志会显示在上半部分窗口中,任何错误都会显示在下半部分窗口中。 当您最终单击“制作”按钮时,也会应用相同的显示格式(图 4)。
一旦配置和制作过程完成,您可以直接单击“安装”。 假设您有 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 发现许多其他事物(包括很棒的葡萄酒链接)。