-1
私はパッケージビルドの依存関係を得るためにdebianコントロールファイルを解析する関数を書いています。以下は機能していない機能です。"control"ファイルを解析するスクリプトの問題
Debianコントロールファイルは、常にコロン(:
)が続く特定の「タイトル」(つまり、Build-Depends:
)のみで区切られています。これにより、同じ行にBuild-Depends
というタイトルがない複数の行に複数の依存関係が表示される可能性がありました(そうでなければ、すでにこれが有効になっています)。
私が見ている特定の問題は、grep行から "コマンドが見つかりません"というエラーが表示されていることです。 「コマンド」は、制御ファイルからの単語/テキストです。私のスクリプトに関する知識は限られています。私はこれをまとめて "google"を使っていたので、私は間違いなくヒントを感謝しています。変数を参照するすべての行をエスケープすることにより
function FindDep()
{
CheckVar=0
echo "Running Find Depend."
ControlPath=$TmpBuild/Deb-ConfFiles/$1/debian/control
cat $ControlPath | while read line ;
do
TempVar=`grep Build-Depends $line`
if [ "$TempVar" != "" ]; then
BuildDep=`sed s/Build-Depends://g $TempVar | sed s/Build-Depends-Indep\://g | grep -o '[a-z]*[-]*[a-z]*'`
CheckVar=1
elif [ $CheckVar == 1 ]; then
TempVar=`grep : $line`
if [ "TempVar" != "" ]; then
BuildDep="$BuildDep `sed s/Build-Depends://g $TempVar | sed s/Build-Depends-Indep\://g | grep -o '[a-z]*[-]*[a-z]*'`"
else
CheckVar=0
fi
fi
done
echo "Here is what is listed as dep for " $1 "--" $BuildDep
for y in $BuildDep; do
echo $y
IsInstalled="dpkg -s $y | grep Status"
if [ "$IsInstalled" == "" ]; then
echo "installing " $y
dpkg -i $y > /dev/null 2>&1
if [ $? -gt 0 ]; then
apt-get -f --force-yes --yes install >/dev/null 2>&1
fi
dpkg -i $y > /dev/null 2>&1
fi
done
echo "Ending Find Depend"
}
:
これが理由です提案していただきありがとうございます - 私は試してみましたが、残念ながらそれはfference。私が見なければならないものは何ですか? – nasa