Linux
列出軟體包依賴項
我愚蠢地做了“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.txt
和clone2.txt
在同一台電腦上。然後執行comm -13 clone1.txt clone2.txt
查看哪些 rpm 在複製 2 而不是複製 1 上。
您可能擁有
/var/log/rpmpkgs
已安裝的所有 RPM 軟體包的列表。(在 RHEL 6 中,該列表由軟體包 rpm-cron 生成)如果您有軟體包列表,您可以/var/log/yum.log
查看哪些軟體包被解除安裝。