Package-Management
如何找出其他包依賴於特定包?
我對linux相當陌生。我用Manjaro。
我跑了
pacman -Qe | less
,在包列表中,我注意到:jdk8-openjdk 8.u282-1 jfsutils 1.1.15-7 jre8-openjdk 8.u282-1 jre8-openjdk-headless 8.u282-1
有沒有辦法可以找出哪些包依賴於上面列出的包?
我基本上是想找出我為什麼擁有它們
jdk8-openjdk 8.u282-1
,jre8-openjdk 8.u282-1
如果沒有使用它們,我想刪除它們。但是我怎樣才能知道是否有其他東西在使用它們呢?
pacman -Qi jdk8-openjdk jfsutils jre8-openjdk jre8-openjdk-headless
將顯示有關給定包的資訊,包括依賴它們的包列表(“Required By”)和可選地需要它們(“Optional For”)。
您可能希望對輸出應用過濾器並僅選擇相關資訊:
pacman -Qi jdk8-openjdk jfsutils jre8-openjdk jre8-openjdk-headless | awk '/(^Name)|(^Required By)|(^Optional For)/'
pacinfo
使用frompacutils
package可以獲得類似的結果(每行一個依賴項) 。在這種情況下,將local
前綴添加到每個包名稱以將結果限制為已安裝的包:pacinfo local/jdk8-openjdk local/jfsutils ...
Arch Linux 也有
pactree
來自pacman-contrib
包,它是一個依賴樹查看器。我無法檢查這個,因為我不是 Manjaro 使用者,但是查看相關的GitLab 頁面,pacman
Manjaro 上的包似乎也包含 Arch 的內容pacman-contrib
。你可以用它來列出依賴的包
jdk8-openjdk
:pactree -r jdk8-openjdk
並且,還包括可選依賴項:
pactree -ro jdk8-openjdk