Package-Management

列出 Gentoo 系統上的所有軟體包,這些軟體包自某個日期以來沒有重新編譯

  • November 15, 2017

系統更改(如 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

出現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

將其保存到文件中,刪除截止日期之後出現的所有包,編輯時間戳,然後您就有了要重新出現的包列表

引用自:https://unix.stackexchange.com/questions/369127