내 yocto 이미지에는 원하지 않지만 bash
여러 종속성에 포함되어 있습니다. 그 중 대부분을 없앨 수 있었고 이제 rpm
(필요한 것)만 남았습니다.
추적해 보니 스크립트가 두 개뿐인 것으로 나타났습니다.
#!/bin/bash
뚜렷한 이유 없이 Shebang. bbappend
이 두 스크립트의 인터프리터 라인을 패치하고 작동하는 RDEPEND
유효한 이미지를 성공적으로 제거하기 위한 패치가 작성되었습니다 (rpm 패키지 설치 포함).bitbake
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
그런데 any 를 사용한다고 주장 하지만 공격성이 가득한 다른 스크립트를 발견했습니다 ...한숨을 쉬다