Bash
有什麼理由不擺脫 rpm 中的 bash 依賴關係?
我不想
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 …嘆息