Linux

列出軟體包依賴項

  • July 11, 2014

我愚蠢地做了“yum remove python”,最終也刪除了所有需要python的包。

幸運的是,我可以訪問另一台 Linux 機器,它幾乎是這台機器的複製,並且它仍然安裝了所有這些包。問題是它屬於其他人,我最多只能四處閒逛。我也不知道在我的機器上專門重新安裝什麼。該列表(當我刪除 python 時)非常龐大。

我想知道是否有任何命令可以輸入到這台雙機中來告訴我:在目前安裝的包中,哪些依賴於 python?然後我可以使用該列表手動將每個重新安裝到我自己的機器上。所以它實際上更多的是python依賴項,而不是依賴項。

環顧四周,我遇到了諸如“repoquery –whatrequires”和“rpm –whatrequires”之類的命令,但這些命令似乎與“yum remove python”生成的列表不同。

2 台機器執行 RHEL 6。

假設複製在您刪除 python 之前安裝了相同的包,那麼獲取所需包列表的可靠方法是rpm -qa從每個複製中進行比較。

# on clone 1:
rpm -qa | sort > clone1.txt

# on clone 2:
rpm -qa | sort > clone2.txt

獲取clone1.txtclone2.txt在同一台電腦上。然後執行

comm -13 clone1.txt clone2.txt

查看哪些 rpm 在複製 2 而不是複製 1 上。

您可能擁有/var/log/rpmpkgs已安裝的所有 RPM 軟體包的列表。(在 RHEL 6 中,該列表由軟體包 rpm-cron 生成)如果您有軟體包列表,您可以/var/log/yum.log查看哪些軟體包被解除安裝。

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