这个简短的迷你教程出现为 回应我们的一位读者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 *
感谢您回答Pablo,也感谢您的帖子🙂
巴勃罗,你是我的偶像!
优秀的职位。
大! 感谢您的数据!
对于那些使用总分配的人…………开玩笑
对于使用基于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