如何知道哪些應用程序依賴於X包

這個簡短的迷你教程出現為 回應我們的一位讀者Felipe的關注,他給我們寫信問:«我怎麼知道哪些應用程序正在使用Java?«。 好吧,我不認為有一種方法可以知道,但是有一種簡單的方法可以知道 存儲庫中列出的哪些軟件包(即哪些應用程序)取決於JAVA軟件包。 相同的方法可以用於任何其他軟件包,例如找出哪些應用程序依賴於 MONO.


最常見的是想找出必須安裝哪些其他軟件包才能使軟件包X正常工作。 這些必需的軟件包稱為依賴項,可以這樣找到:

apt-cache取決於mypackage 

您也可以轉到Synaptic,找到軟件包, 右鍵單擊它>屬性>依賴關係.

但是,本文的目的是要找出恰恰相反的情況:哪些軟件包具有X軟件包作為依賴項。 換句話說,在這種情況下,我們知道“母親”軟件包,並且我們想知道還有哪些其他軟件包要求安裝該“母親”軟件包才能正常工作。

讓我們繼續看示例,以更好地理解問題。 讓我們看看如何檢測依賴於openjdk-6-jre軟件包的軟件包。 也就是說,如何檢測依賴於JAVA的存儲庫中列出的那些應用程序。

我打開一個終端並寫道:

apt-cache rdepends openjdk-6-jre 

將會出現一長串的軟件包,包括OpenOffice,FreeMind,OpenCol等。

如何找到正確的“母親”包?

好的,到目前為止,一切都很容易,但是如何找到應該搜索的“母親”包呢? 好吧,這需要一些專業知識和事先分析。

假設我想了解所有基於MONO的應用程序。 在那種情況下,我所做的就是查找我知道使用MONO的應用程序(GBrainy)的依賴關係,並在此基礎上檢測“母親”包並尋找逆向依賴關係。 烏夫,這似乎很困難,但是這是胡說八道。

我打開一個終端並寫道:

apt-cache取決於靈活性

結果如下:

  取決於:單運行時
 |取決於:libc6
 |取決於:libc6.1
  取決於:libc0.1
  取決於:libglib2.0-cil
  取決於:libgtk2.0-0
  取決於:libgtk2.0-cil
  取決於:liblaunchpad-integration1.0-cil
  取決於:libmono-addins-gui0.2-cil
  取決於:libmono-addins0.2-cil
  取決於:libmono-cairo2.0-cil
  取決於:libmono-corlib2.0-cil
  取決於:libmono-posix2.0-cil
  取決於:libmono-system2.0-cil
  取決於:librsvg2-2
  取決於:mono-csharp-shell

在我看來,mono-runtime可能是一個不錯的選擇,因此我決定搜索所有依賴mono-runtime的軟件包:

apt-cache rdepends單運行時

瞧! 出現所有使用MONO的軟件包。

要查看依賴於某個MONO軟件包的所有軟件包的完整列表,我們可以編寫:

apt-cache rdepends mono *
注意:此方法僅適用於APT存儲庫中列出的那些應用程序。
謝謝費利!

發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   費利佩·貝塞拉 他說:

    感謝您回答Pablo,也感謝您的帖子🙂

  2.   齊藤莫德拉格 他說:

    巴勃羅,你是我的偶像!

    優秀的職位。

  3.   讓我們使用Linux 他說:

    大! 感謝您的數據!

  4.   卡夫蒂 他說:

    對於那些使用總分配的人…………開玩笑

    對於使用基於RPM的軟件包管理器的用戶,使用此命令

    rpm -qR軟件包

    例如:

    linux @ dhcppc3:〜> rpm -qR xmms
    / bin / sh的
    / bin / sh的
    rpmlib(PayloadFilesHavePrefix)<= 4.0-1
    rpmlib(CompressedFileNames)<= 3.0.4-1
    libICE.so.6
    libSM.so.6
    libX11.so.6
    libXxf86vm.so.1
    libc.so.6
    libc.so.6(GLIBC_2.0)
    libc.so.6(GLIBC_2.1)
    libc.so.6(GLIBC_2.3)
    libc.so.6(GLIBC_2.3.4)
    libc.so.6(GLIBC_2.4)
    libc.so.6(GLIBC_2.7)
    libdl.so.2
    libdl.so.2(GLIBC_2.0)
    libdl.so.2(GLIBC_2.1)
    libgdk-1.2.so.0
    libglib-1.2.so.0
    libgthread-1.2.so.0
    libgtk-1.2.so.0
    libpthread.so.0
    libpthread.so.0(GLIBC_2.0)
    libpthread.so.0(GLIBC_2.1)
    libpthread.so.0(GLIBC_2.3.2)
    libxmms.so.1
    rpmlib(PayloadIsLzma)<= 4.4.6-1