在ubuntu下递归追索一个包的所有必要依赖项apt_dep.sh
在ubuntu下递归追索一个包的所有必要依赖项apt_dep.sh
通过apt-cache depends 可以获取debian/ubuntu下一个包的依赖项,但依赖项本身也会依赖其他包,
希望递归追索所有依赖项,且不重复,则使用如下小脚本可以达到目的
#! /bin/bash
ALL_DEBS=$1CHECKED_DEBS="libc6 $1"UNCHECK_DEBS="" functionis_check()
{for item_one in ${CHECKED_DEBS}; do if [ $item_one == $1 ]; thenreturn1 fi done;
return0}functionget_dep()
{
PACKAGE_NAME="$1"DEPS_NAME="$(apt-cache depends"$PACKAGE_NAME"| grep" 依赖:"| awk -F":"'{ print $2}' | tr -d '<>' | tr '\n' ' ')"#echo "$1, ${DEPS_NAME}" for item_two in${DEPS_NAME};dois_check $item_twoif [ $? -eq 0 ] ; thenCHECKED_DEBS="${CHECKED_DEBS}""$item_two"get_dep $item_twofi done;
}
get_dep $1 echo ${CHECKED_DEBS}