如何安装 Debian 软件包的 Build-Depends 和 Depends
How to install a Debian package's Build-Depends and Depends
如果我有一个包含 Build-Depends
和 Depends
条目的 debian/control
文件。
如何安装这两组依赖项?
目前我正在使用以下命令创建一个依赖于 Build-Depends
但不依赖于 Depends
.
的存根包
$ 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 ", " [=11=]
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
,但您可能需要先 p运行e 出您要自定义的项目 and/or 手动安装.
之后,您应该会更轻松地使用 dpkg -i *.deb
。如果遇到困难,请随时尝试 apt-get install --fix-broken
。
如果我有一个包含 Build-Depends
和 Depends
条目的 debian/control
文件。
如何安装这两组依赖项?
目前我正在使用以下命令创建一个依赖于 Build-Depends
但不依赖于 Depends
.
$ 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 ", " [=11=]
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
,但您可能需要先 p运行e 出您要自定义的项目 and/or 手动安装.
之后,您应该会更轻松地使用 dpkg -i *.deb
。如果遇到困难,请随时尝试 apt-get install --fix-broken
。