2

我在哪里可以找到最流行的 Linux 软件包的所有依赖项(直接和传递依赖项)的列表?

我想要一个依赖图形式的完整列表(只是列表),以供探索。是否有某个地方最流行的 Linux 软件包的所有依赖项的可下载列表?

有一些基于 DVD 的离线安装(如 Debian/Ubuntu 等)。是否有任何工具可以提取这些 DVD 中给定软件包的依赖信息?

我已经看到了下面的问题,但这不是我想要的。 如何在 Linux 上列出一个包的所有依赖项?

谢谢

4

2 回答 2

3

由于您不想浏览Ubuntu 的包页面,我制作了一个小脚本,将所有包名称及其依赖项保存到一个文本文件中。不用说,它需要一段时间才能运行。

下载脚本或查看以下源代码:

#!/bin/bash
#author: @mrmitche_
#name: Build Dependencies List
#description: Lists the dependencies of all packages in apt on linux.

packages=$(apt-cache pkgnames)
declare -a array=($packages)

for pkg in ${array[@]}
do
    apt-cache depends $pkg >>dependencies.txt
    printf "\n" >>dependencies.txt
done

dependencies.txt 中的示例输出:

postgresql-plperl-9.0
  Depends: libc6
  Depends: libperl5.14
  Depends: postgresql-9.0
  Depends: perl
  Replaces: postgresql-contrib-9.0
  Replaces: postgresql-contrib-9.0:i386
  Conflicts: postgresql-plperl-9.0:i386

libc6-xen:i386
  PreDepends: libc6:i386

python-pkginfo-doc
  Depends: libjs-sphinxdoc

mumudvb
  Depends: adduser
  Depends: dvb-apps
  Depends: libc6
  Suggests: dvbtune
  Conflicts: mumudvb:i386

libuuidm-ocaml-dev
  Depends: <ocaml-nox-3.12.1>
    ocaml-nox
  Depends: libc6
  Suggests: ocaml-findlib
  Conflicts: libuuidm-ocaml-dev:i386

您可以根据需要修改脚本以对其进行格式化。也许采购包,所以它们按字母顺序排列。

于 2013-05-03T10:13:21.947 回答
1

debian,或者ubuntu您可以发出

apt-cache show $PACKAGE_NAME

您可以使用以下命令打印所有包依赖项的列表:

for pkg in $(dpkg --get-selections | cut -f1) ; do apt-cache depends  "$pkg" ; done
于 2013-05-03T08:14:24.143 回答