IHLFS:完全控制您正在安装的

IHLFS:检查你正在安装的(还有更多)

介绍

作为一个LFS(请参阅: Linux从头开始 )用户我对我的系统上安装的软件包感兴趣。

关于LFS的简短介绍:LFS不是像Suse或RedHat这样的分发,LFS社区旨在提供设置自己的Linux系统的指南。 在网站上描述了非常详细的如何从头开始构建自己的Linux系统。 每个软件包都通过编译和安装源进行安装。

在LFS社区,有一些调查如何跟踪安装的包。 目前还没有这样的工具。

Jhalfs是自动化构建LFS系统的最新工具,可以使用Paco(参见: paco.sf.net )。

Paco基于LD_PRELOAD机制,例如Gentoo使用相同的技术。 这种技术看起来很有前途,但有一些严重的缺点。

我一直在寻找另一种跟踪命令的方式

make install

在我的系统上 我已经找到了这个解决方案,感谢Pierre Hebert的出色主意。 他介绍了LFS网站的“Hints”部分或镜像(请参阅: 在线提示 “TRIP,LFS(和其他Linux系统的TRIvial Packager)”),您如何实现对任意安装命令。 使用它,您可以跟踪每个添加的文件,每个修改和文件或目录删除。 它不仅适用于上面提到的“make install”命令,还可以跟踪RMP所做的命令。

我开发的工具IHLFS是非常基本的,并且基于与TRIP相同的技术。 它可以预览您的系统的外观,如果您安装了文件或整个软件包或任何您想要添加到您的系统。 当不满意的东西看起来的方式 - 例如你想要零件安装在不同的地方 - 你可以随时回去。

名称IHLFS代表:

从头开始安装Helper Linux

这是通过创建系统的精确副本(一种虚拟系统)完成的。 在这个副本中,你完全可以自由地在做什么,对原始系统绝对没有影响。 每当用户有选择将虚拟系统中的修改“移动”或“刷新”为真实系统。

这种技术的另一个用途是为用户创造一个环境,他认为他是一个真正的系统,并以这种方式行事。 但在此期间,他可以做他喜欢的事情,而不会对系统造成任何危害。

基本技术

这可能听起来像是魔术,但实际上只有通过结合所有可用于Linux的技术才可能。

通过使用文件系统Unionfs,chroot和一些精心挑选的重新安装的目录,您可以设置此虚拟系统。

Unionfs

最重要的部分是使用unionfs。 Unionfs可以让您创建一个文件系统,这是至少两个其他的联合。 有关更多信息,请访问www.unionfs.org 。 现在,通过让新文件系统成为只读模式的原始文件系统(根),以及readwrite模式下的临时文件系统(缓存),您将拥有一个与原始文件系统完全相同的文件系统,但是您可以在其中修改,删除和/或添加文件,而无需对原始系统执行任何操作。 这是不可能的,因为根是唯一的安装。 每个修改都是由存储在缓存中的unionfs。

原始系统和新创建的系统之间的唯一区别是路径:在新系统中,它始终以联合的挂载点的路径开始。 这就是为什么下一步是必要的。

Chroot

通过chrooting到此挂载点,您输入绝对是您的系统的副本的环境。 你可以做任何你喜欢的,甚至删除关键的目录和文件。 测试吧 看看你的系统卡住之前可以走多远。

(Re)安装

您需要做的另外一件事是(重新)安装诸如/ dev,/ proc和/ sys之类的几个关键目录。 这是因为联合文件系统不保留现有的装入点。

还建议重新安装一些特殊的目录,如/ tmp。 该目录由configure脚本和make命令用于存储中间结果。 您不希望ihlfs程序将其注册为严重更改。 这也是构建源代码的目录。

要求

当然你最近需要一个Linux版本。 寻找支持的内核的网站和您需要的Unionfs的版本。 不同的内核意味着一个不同版本的unionfs。

您的内核必须支持加载模块。

还有一个分区,有足够的空间挂载缓存。 在这一刻,这是一个单独的分区。

我比较了我的普通系统和虚拟系统中的构建性能,我没有看到显着的差异

最后,IHLFS使用任何Linux系统上的命令(如tar,chroot,modprobe,mount,bash,find,grep和bzip2)。

安装

从我的网站下载软件包:

wget http://linux.bononline.nl/linux/ihlfs/src/ihlfs-1.0.tar.bz2

将归档文件解压缩到合适的目录中:

tar -xjf ihlfs-1.0.tar.bz2
cd ihlfs-1.0

安装ihlfs通过

./install.sh

脚本。 它只是创建一些目录并复制一些文件。

它是如何工作的

在启动之前,请确保缓存的文件系统将被安装。 并检查配置文件/etc/ihlfs/ihlfs.conf中的设置。 当一切顺利时,启动程序:

ihlfs

你会收到一些消息,当一切都ok的时候会显示一个提示:

/:>

现在你可以输入任何你喜欢的命令。 注意,联合不支持保存挂载点。 这可能会导致像源代码这样的效果,它们通常构建您的软件不可用。

当您想查看到目前为止的更改时,键入:

list

这显示了更改的摘要。

当您要将所有更改从缓存移动到根目录时,请输入:

flush

此命令还创建将被覆盖,修改或删除的文件和目录的备份以及将要安装的所有内容的备份。

删除所有更改通过:

clean

最后,停止会话与:

quit or exit

例子

这里有一些简单的例子。 添加文件:

~:>touch /tmp/test4ihlfs
~:>list

在查看器中给出mcview

Summary.
--------
There are no added, deleted, modified or overwritten files and/or directories found!

这是可以预料的, / tmp目录绕过联合。
现在在其他地方创建一个文件:

~:>touch /var/tmp/test4ihlfs
~:>list
Summary.
--------
Added files.
------------
/var/tmp/test4ihlfs

联系

如果您发现错误或想法如何能以更好的方式完成,请让我知道! 我的电子邮件地址是steon在bononline dot nl。 但在你进一步之前,我想说,我知道我编程的东西的方式可能并不总是最有效的。 我故意这样做了。 当涉及到程序设计时,我更喜欢易读的效能。

去做

此包尚未完成。 任何知道包装经理的人都可以指出:

- 将编辑器的选择放在配置文件中

- 现在ihlfs只有一种模式:交互式。 它为用户创建一个环境。 命令行模式如:

ihlfs --command "make install"

也应该是可能的。

- 添加标志来标识packagename和版本安装。

- 添加一些示例与各种命令

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏