![列出 Gentoo 系统上自某个日期以来未重新编译的所有软件包](https://linux22.com/image/112856/%E5%88%97%E5%87%BA%20Gentoo%20%E7%B3%BB%E7%BB%9F%E4%B8%8A%E8%87%AA%E6%9F%90%E4%B8%AA%E6%97%A5%E6%9C%9F%E4%BB%A5%E6%9D%A5%E6%9C%AA%E9%87%8D%E6%96%B0%E7%BC%96%E8%AF%91%E7%9A%84%E6%89%80%E6%9C%89%E8%BD%AF%E4%BB%B6%E5%8C%85.png)
系统更改(例如 gcc、perl、python、qt...更新)可能要求必须重建许多包。
这通常会在世界重建时结束
# emerge --ask --emptytree --verbose @system
# emerge --ask --emptytree --verbose @world
在一个包含 2000 个软件包的世界重建中,合并可能会失败数十或数百个,并且必须解决这些问题。
world
从技术上讲,解决问题后可以重建,但这需要很长时间。
如何列出从当天起尚未成功重建的所有软件包$DATE
?
到目前为止我尝试过的:
# create a sorted list with all packages built till $DATE=2017-05-30
qlop -ld 2000-01-01 -d $DATE | cut -d ">" -f 4 | sort
但这个列表包含
- 所有版本,而不仅仅是最新版本
- 从系统中删除的软件包
- 之后已成功重建的软件包
$DATE
答案1
出现eix
然后
eix-update
eix '-I*' --format '<installedversions:DATESORT>' | sort -n | cut -f2-3
将为您提供已安装软件包的列表(如有必要,带有插槽),按安装日期排序。例如:
... 15/11/17 12:34:51 net-misc/rsync 15/11/17 12:35:29 dev-libs/libuv 15/11/17 12:35:58 app-editors/vim-core 15/11/17 12:36:32 dev-python/pycairo 15/11/17 12:37:17 app-editors/vim 15/11/17 12:37:49 dev-util/eric
将其保存到文件中,删除截止日期之后出现的所有包,编辑时间戳,然后您就有了要重新出现的包列表