编译时记录安装的文件

log installed files when compiling

我目前正在构建 LFS 并正在寻找包管理解决方案

特别是一个跟踪编译时安装了哪些文件的程序 something from source 也有删除这些文件的方法,以防 make uninstall 不存在

我研究过 install-log and checkinstall 之类的程序,但无法同时编译它们

感谢任何帮助,谢谢!

就个人而言,我一直使用基于用户的管理(又名“软件包用户”),如第 8.2. Package Management 节所述。尽管它(仍然)出现在书中并且是“LFS 独有”的唯一方法,但它并没有得到太多的喜爱,即使是 LFS 社区也是如此。

这对初学者来说不是很好,因为它有时会迫使您深入挖掘以解决问题并做出重要决定。我建议您完成您的第一个 LFS 系统构建,然后在下一次考虑打包用户。

但是一旦你习惯了它,它就会很好用。

另一种更简单的方法是 基于时间戳 技术(在同一 link 中有描述)。

例如,当需要将包的文件复制到您的系统时,您可以这样做:

touch timestamp_start
    
make install
    
# do other stuff as instructed
    
touch timestamp_stop

find / -newer timestamp_start -not -newer timestamp_stop > list_of_files_affected

我在安装 Nvidia 专有驱动程序时确实使用了这种方法,因为使用 non-root 帐户成功安装它们真的很痛苦。