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