我想了解我在问题中提到的包裹信息。
例如,我的系统中已安装了一个包。所以我想知道它是主包还是其他包的依赖包。
谢谢 。
答案1
Mik 描述了如何找到一个包的依赖项(它所依赖的包)。
我相信 GrSr 正在尝试找出任何给定的包是否具有任何反向依赖关系 - 也就是说,是否有任何包依赖于它。
apt-cache 依赖项
回答类似问题建议使用apt-cache rdepends
。例如:
mac9416@lee:~$ apt-cache rdepends ffmpeg
ffmpeg
Reverse Depends:
libavcodec-extra-52
youtube-dl
libavcodec52
imagemagick
ffmpeg-dbg
videotrans
tovid
recorditnow
mytharchive
libavcodec-extra-52
kmediafactory
iriverter
idjc
dvdwizard
dvdrip
dvd95
dvd-slideshow
zoomer
zoneminder
xwax
winff
videoporama
ubuntustudio-video
stopmotion
soundkonverter
rtmpdump
python-scitools
pacpl
mythexport
motion
luciole
lives
libsynfig0
libavbin0
kmplayer
kino
kdenlive
jsymphonic
imagination
gvb
get-iplayer
gallery2
clive
bitpim
libavcodec52
imagemagick
ffmpeg-dbg
一个更加戏剧化的例子是apt-cache rdepends python
。很多软件包依赖于 Python。
不幸的是,apt-cache rdepends
列表全部反向依赖,无论它们是否已安装。
apt-get 删除
获取所需信息的最简单方法可能是尝试删除相关软件包。如果其他已安装的软件包依赖该软件包,则会列出这些软件包以供删除。
例如,如果我尝试sudo apt-get remove apt
:
The following packages will be REMOVED:
apport apport-gtk apt-transport-https apt-xapian-index aptdaemon aptitude apturl command-not-found computer-janitor computer-janitor-gtk gdebi gdebi-core gnome-codec-install jockey-common jockey-gtk
language-selector language-selector-common libept1 network-manager network-manager-gnome python-apport python-aptdaemon python-aptdaemon-gtk python-debian software-properties-gtk synaptic tasksel
tasksel-data ubuntu-minimal ubuntu-standard ubuntustudio-desktop update-manager update-manager-core update-notifier update-notifier-common
显然很多的软件包依赖于 APT。另一方面,如果我尝试sudo apt-get remove youtube-dl
:
The following packages will be REMOVED:
youtube-dl
没有已安装的软件包依赖于 youtube-dl。它是一个“主软件包”,而不是依赖项。
警告
我高度建议您将-s
或参数添加到用于此目的的--simulate
任何命令中,除非您apt-get remove
确实要删除一个包!这将确保您不会意外授予删除您想要保留的内容的权限。例如:
sudo apt-get remove apt -s
sudo apt-get remove youtube-dl -s
答案2
使用 apt-rdepends
安装后
sudo apt-get install apt-rdepends
您可以使用它来显示依赖于您想知道的包的所有包。
例如,如果你想知道所有依赖 xorg 的软件包及其状态,只需执行
apt-rdepends -r xorg -p
它将返回以下内容
tmashos@tmashos-wks:~$ apt-rdepends -r xorg -p
Reading package lists... Done
Building dependency tree
Reading state information... Done
xorg
Reverse Depends: kubuntu-active (1.7) [NotInstalled]
Reverse Depends: kubuntu-desktop (1.254) [NotInstalled]
Reverse Depends: ltsp-client (5.3.7-0ubuntu2) [NotInstalled]
Reverse Depends: lubuntu-core (0.38) [NotInstalled]
Reverse Depends: mythbuntu-desktop (0.77) [NotInstalled]
Reverse Depends: ubuntu-desktop (1.267) [Installed]
Reverse Depends: ubuntu-sugar-remix (0.5) [NotInstalled]
Reverse Depends: ubuntustudio-desktop (0.100) [NotInstalled]
Reverse Depends: xubuntu-desktop (2.152) [NotInstalled]
kubuntu-active
kubuntu-desktop
Reverse Depends: edubuntu-desktop-kde (12.02.1) [NotInstalled]
Reverse Depends: kubuntu-full (1.254) [NotInstalled]
Reverse Depends: kubuntu-netbook (1.254) [NotInstalled]
edubuntu-desktop-kde
kubuntu-full
kubuntu-netbook
ltsp-client
lubuntu-core
Reverse Depends: lubuntu-desktop (0.38) [NotInstalled]
lubuntu-desktop
mythbuntu-desktop
ubuntu-desktop
Reverse Depends: edubuntu-desktop (12.02.1) [NotInstalled]
edubuntu-desktop
ubuntu-sugar-remix
ubuntustudio-desktop
xubuntu-desktop
tmashos@tmashos-wks:~$
您可以看到 xorg 已安装,因为我已ubuntu-desktop
安装。它还显示了所依赖的内容ubuntu-desktop
(edubuntu-desktop
)。由于我没有edubuntu-desktop
安装,您可以看到那ubuntu-desktop
是顶层。
答案3
一种方法是使用apt-cache
,您可以使用它来查询许多包或搜索它们。它是重要的需要注意的是,apt-cache
它将返回查询包的数据无论它是否已安装。
例如,apt-cache show skype
您可以使用它来查看有关软件包的所有信息;使用它来查看软件包的摘要信息apt-cache showpkg skype
,其中将显示依赖项并且反向依赖,这些软件包依赖于 Skype。但是,要仅查看 Skype 所依赖的软件包,例如,使用apt-cache depends skype
:
apt-cache depends skype
skype
Depends: libasound2
Depends: libc6
Depends: libgcc1
Depends: libqt4-dbus
Depends: libqt4-network
Depends: libqtcore4
Depends: libqtgui4
Depends: libstdc++6
Depends: libx11-6
Depends: libxext6
Depends: libxss1
Depends: libxv1
apt-cache
中记录了许多其他有用的功能,man apt-cache
例如显示可用版本和版本当前优先级的能力;要查看此信息,请输入apt-cache policy skype
。
有关如何使用dpkg
来找出哪些文件来自哪些包,请参阅本文。
答案4
如果你愿意,你也可以进入 synapic 包管理器。
如果尚未安装,请运行
sudo apt-get install synaptic
只需搜索您的包,右键单击它,然后选择属性。
从那里您可以找到它的依赖项和依赖项,等等...