gpt4 book ai didi

dependencies - 如何安装 Debian 软件包的 Build-Depends 和 Depends

转载 作者:行者123 更新时间:2023-12-04 04:01:50 33 4
gpt4 key购买 nike

如果我有一个包含 debian/controlBuild-Depends 条目的 Depends 文件。

如何安装两组依赖项?

目前我正在使用以下命令创建一个依赖于 Build-Depends 但不依赖于 Depends 的 stub 包。

$ mk-build-deps --build-dep \
&& dpkg -i *.deb \
|| apt-get update && apt-get install --fix-broken --yes \

最佳答案

假设这是您 apt 存储库中的标准包,您应该能够简单地运行

apt-get build-dep PACKAGE [PACKAGE…]

一般来说,最好的解决方案是找到一个具有相同依赖项的包(更好的是,同一包的相同但不同的版本)并且只有 build-dep 它。根据我的经验,这解决了 99+% 的这些问题。

我根本不知道 mk-build-deps,但是您可以运行它以查看包“PACKAGE”中的 debian/control 文件中调用了哪些依赖项:

echo $(awk '
/^(Build-)?Depends:/ || /^ / && deps {
sub(/^[^ ]+: /, "")
deps = 1
dep_str = dep_str ", " $0
next
}
{ deps=0 }
END {
split(dep_str, dep_array, /, */)
for (d in dep_array) {
dep = dep_array[d]
gsub(/[^a-z0-9_.-].*$/, "", dep)
if (dep && !seen[dep]++) print dep
}
}' PACKAGE/debian/control)

(这会检查 Debian 控制文件的 Build-Depends 和 Depends 行,并仅显示列出的依赖项,不包括任何变量(我相信这些变量已经包含在文件的其他命中中)。

AWK 代码演练:如果它是 Build-Depends 或 Depends 行,或者它是此类行后面的空白行,请删除行标签,注意我们在依赖行 ( dep = 1 ) 中,并将其保存到 dep_str 。在其他行上,删除表示我们正在继续依赖行的标记。解析输入后,将依赖字符串 dep_str 拆分为由逗号和可选尾随空格分隔的数组,然后遍历该数组。从依赖项名称的末尾清除无效字符(这些是版本信息),如果还有任何内容并且之前没有看到过(此处),请将其打印在自己的行上。

如果您愿意,可以将 echo 替换为 apt-get install,但您可能需要先删除要自定义和/或手动安装的项目。

之后,您应该可以更轻松地使用 dpkg -i *.deb 。如果您遇到困难,请随时尝试 apt-get install --fix-broken

关于dependencies - 如何安装 Debian 软件包的 Build-Depends 和 Depends,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47632014/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com