在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;
return
0}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}

 

标签: none

添加新评论