如何在 OpenBSD 下检查包的依赖关系?

gas*_*ter 6 openbsd package-management

AFAIK 这是我可以安装的方式,例如:OpenBSD 上的 XYZ:

pkg_add -Uvi XYZ
Run Code Online (Sandbox Code Playgroud)

如何获取有关 XYZ 包的所有依赖项的列表?

-> 所以我需要一个关于 .tgz 文件名的列表,当我需要安装给定的 XYZ 包时,pkg_add 将下载/安装/更新。

生成 XYZ 包列表的命令是什么?

Mik*_*kel 6

看起来像在装箱单中指定了依赖项。你可以看到装箱单pkg_info -f

所以,假设PKG_PATH已经设置:

pkg_info -f XYZ | grep '^@depend' | cut -f 3 -d :
Run Code Online (Sandbox Code Playgroud)

应该给你包名。

在每一行的前置$PKG_PATH和附加.tgz应该为您提供一个 URL,该 URL 可能是要下载的内容,例如获取bash的依赖项:

PKG_PATH=http://ftp3.usa.openbsd.org/pub/OpenBSD/5.1/packages/amd64/
export PKG_PATH
pkg_info -f bash | grep '@depend' | cut -f 3 -d : | while read package; do
    echo $PKG_PATH$package.tgz
done
Run Code Online (Sandbox Code Playgroud)

印刷

http://ftp3.usa.openbsd.org/pub/OpenBSD/5.1/packages/amd64/libiconv-1.14.tgz
http://ftp3.usa.openbsd.org/pub/OpenBSD/5.1/packages/amd64/gettext-0.18.1p1.tgz
Run Code Online (Sandbox Code Playgroud)

另见pkg_add -nPKG_CACHE

参考: