有什么理由不摆脱 rpm 中的 bash 依赖吗?

有什么理由不摆脱 rpm 中的 bash 依赖吗?

我不想bash在我的 yocto 图像中,但它包含在几个依赖项中。我能够摆脱其中的大部分,现在只剩下rpm(我需要的)。

追踪它我发现只有两个脚本

#!/bin/bash没有明显原因的 Shebang 。编写一个补丁bbappend来修补这两个脚本的解释器行并RDEPEND成功删除有效的bitbake镜像,该镜像可以工作(包括 rpm 包安装)。

但它仍然让人感觉不舒服,因为有人可能有理由明确请求bash脚本。 Shellcheck.net 有足够多的警告,但没有关于 POSIX 不兼容的警告。

bash您能看出不以简单方式消除依赖的原因吗?

答案1

事实证明,最终还有更多的依赖项需要删除。我的最终补丁recipes-devtools/rpm/files/0001-remove-bash-dependency.patch如下所示:

--- a/scripts/rpmdb_loadcvt
+++ b/scripts/rpmdb_loadcvt
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
 
 ac=$#
 cmd=`basename $0`
--- a/scripts/pythondeps.sh
+++ b/scripts/pythondeps.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
 
 [ $# -ge 1 ] || {
     cat > /dev/null

--- a/scripts/pkgconfigdeps.sh
+++ b/scripts/pkgconfigdeps.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
 
 pkgconfig=/usr/bin/pkg-config
 test -x $pkgconfig || {

--- a/scripts/mono-find-requires
+++ b/scripts/mono-find-requires
@@ -1,1 +1,1 @@
-#!/bin/bash
+#!/bin/sh
--- a/scripts/mono-find-provides
+++ b/scripts/mono-find-provides
@@ -1,1 +1,1 @@
-#!/bin/bash
+#!/bin/sh
--- a/scripts/check-rpaths-worker
+++ b/scripts/check-rpaths-worker
@@ -1,1 +1,1 @@
-#! /bin/bash
+#!/bin/sh

--- a/scripts/find-debuginfo.sh
+++ b/scripts/find-debuginfo.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
 #find-debuginfo.sh - automagically generate debug info and file list
 #for inclusion in an rpm spec file.
 #
--- a/scripts/find-lang.sh
+++ b/scripts/find-lang.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
 #findlang - automagically generate list of language specific files
 #for inclusion in an rpm spec file.
 #This does assume that the *.mo files are under .../locale/...
--- a/scripts/fontconfig.prov
+++ b/scripts/fontconfig.prov
@@ -1,1 +1,1 @@
-#!/bin/bash
+#!/bin/sh
--- a/scripts/check-prereqs
+++ b/scripts/check-prereqs
@@ -1,1 +1,1 @@
-#!/bin/bash
+#!/bin/sh
--- a/scripts/brp-python-bytecompile
+++ b/scripts/brp-python-bytecompile
@@ -1,1 +1,1 @@
-#!/bin/bash
+#!/bin/sh

只有依赖性检查似乎真正依赖于bash功能,但无论如何,即使使用bash.不进行依赖项检查即可安装。这对我来说没关系。

但后来我发现了一些其他脚本声称使用任何/bin/sh,但充满了攻击性……

相关内容