我一直在构建一个 Linux 发行版,并且已经剥离了二进制文件等。该系统不会使用 GCC 或开发工具,因为它将是一个 Chrome kiosk,所以如果我可以剥离系统,这将有很大帮助...
我想知道,有没有一种方法可以通过观察运行时使用的文件/库来删除所有未使用的系统文件(如二进制文件等)?也许另一种方法是首选,但是有没有办法完成这样的事情呢?
答案1
答案2
除其他事项外,您想要删除一切你不需要。确保文件系统已atime
完全启用;你可以在 中设置它/etc/fstab
。当前的默认值是,relatime
但您只想使用atime
.每次访问文件时,时间戳都会更新。然后进行几天的使用,看看哪些文件的 atime 从未更新过。我会在虚拟机中非常小心地完成所有这些操作,因为我想象当系统处于只读模式时会读取一些文件。注意:noatime
一旦准备好生产就将其设置为,否则每次读取时都会进行写入;这是低效的。
虽然说实话,我会看看该死的小Linux;你真的需要比这个小吗?根据他们的发行版构建您的版本,只需删除窗口管理器和一些额外的程序即可。保留所有命令行工具,这样,如果您需要修复或重新加载,您就可以使用 shell。
答案3
假设您正在使用 Debian 或其衍生版本
经过几天(大量)使用后,运行popularity-contest
.它将在底部显示最旧的未使用的包。卸载它们,但要密切注意是否安装了依赖于它们的东西。
这是输出的片段:
1294222606 1292570417 vlc /usr/lib/vlc/plugins/gui/libqt4_plugin.so
1294222606 1292570109 xulrunner-1.9.2 /usr/share/xulrunner-1.9.2/chrome/classic.jar
1294222606 1292507839 ttf-dejavu-extra /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Oblique.ttf
1294222606 1292507459 x11-utils /usr/bin/xprop
列的意思是阿泰姆,时间,包裹名字, 和文件被访问。
答案4
你到底从哪里开始?您要剥离现有的发行版吗?您是否有理由必须从任何发行版开始?
您可能需要考虑从头开始构建嵌入式系统并仅加载您知道需要的内容。