我是 Linux 新手,我正在尝试找到以下命令输出之一中列出的依赖项的绝对路径。
apt-cache showpkg "package name"
apt-cache depends "package name"
执行上述命令后,我得到了软件包所依赖的依赖项列表,但没有得到该依赖项的路径,我们可以使用该路径ldd
进一步检查该软件包的共享依赖项。
我的问题是如何找到这些库在整个系统中的位置。我正在使用Ubuntu 16.4
。出于某种原因,我必须找到apt-cache showpkg
命令输出中提供的依赖项列表中的进一步共享依赖项。任何帮助都将不胜感激,并提前感谢您。
例如:
apt-cache depends lighttpd
lighttpd
Depends: libattr1
Depends: libbz2-1.0
Depends: libc6
|Depends: libgamin0
Depends: libfam0
libgamin0
Depends: libldap-2.4-2
Depends: libpcre3
Depends: libssl1.0.0
Depends: zlib1g
Depends: init-system-helpers
Depends: perl
|Depends: lsb-base
Depends: systemd
systemd:i386
Depends: mime-support
Depends: libterm-readline-perl-perl
Recommends: spawn-fcgi
Suggests: openssl
Suggests: rrdtool
Suggests: apache2-utils
apache2-utils:i386
Suggests: ufw
答案1
抱歉回答迟了,回顾一下以前未回答的迁移问题:让我们更深入地了解一下软件包依赖关系和文件位置:
包是存货文件集合(如书中的目录 (TOC)),而文件位置是指向文件在磁盘上的位置的指针。
但是,您可以拥有目录而没有书籍(没有文件的软件包),并且可以拥有没有软件包依赖项的文件(例如独立脚本)
因此,如果您只想知道系统上安装的软件包的文件位置,您必须执行以下操作:
- 列出所有包
- 获取这些包中的文件列表
- 然后
locate --existing
通过定位来运行该列表(最快,find
但需要更长时间)你就会得到你需要的东西! - 知道您可能仍然没有包的文件和没有文件的包(元包)