思路就是利用apt-get
的depend
选项,这会列出所给包的依赖,但是只是直接依赖,间接依赖需要递归。可以手动递归,也可以用--recurse
选项来递归。
这里通过--no-*
系列选项关闭了所有不必要的。
脚本
#!/bin/bash
#$1 pkg
get_all_depends()
{
apt-cache depends --no-pre-depends --no-suggests --no-recommends \
--no-conflicts --no-breaks --no-enhances\
--no-replaces --recurse $1 | awk '{print $2}'| tr -d '<>' | sort --unique
}
for pkg in $*
do
all_depends=$(get_all_depends $pkg)
echo -e "所有依赖共计"$(echo $all_depends | wc -w)"个"
echo $all_depends
i=0
for depend in $all_depends
do
i=$((i+1))
echo -e "\033[1;32m正在下载第$i个依赖:"$depend "\033[0m"
apt-get download $depend
done
done
效果
漏洞
对于一些包,比如wine,依赖中有一些在下载时会提示无候选版本可下载(似乎是架构相关),暂时不知道什么意思,以后弄懂了再改它。
版权声明:本文为qq_51470638原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。