Bash

有什麼理由不擺脫 rpm 中的 bash 依賴關係?

  • November 3, 2021

我不想bash在我的 yocto 圖像中,但它包含在幾個依賴項中。我能夠擺脫其中的大多數,現在只剩rpm下(我需要的)。

追踪它,我發現只有兩個腳本

#!/bin/bash沒有明顯的原因有一個shebang。編寫一個bbappend更新檔來修補這兩個腳本的解釋器行並RDEPEND成功刪除 encybitbake是一個可以工作的圖像(包括 rpm 數據包安裝)。

但這仍然讓人感到不舒服,因為有人可能有理由明確要求bash腳本。Shellcheck.net 有足夠的警告,但沒有關於 POSIX 不兼容的警告。

你能看到不以bash這種簡單的方式消除依賴的原因嗎?

事實證明,最終需要刪除更多依賴項。我的最終更新檔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. 沒有依賴檢查的安裝工作。這對我來說沒關係。

但後來我發現了其他幾個聲稱使用 any 的腳本/bin/sh,但充滿了 bashisms …嘆息

引用自:https://unix.stackexchange.com/questions/673820