编译时记录安装的文件
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 帐户成功安装它们真的很痛苦。
我目前正在构建 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 帐户成功安装它们真的很痛苦。