apt-get下载包及所有依赖

思路就是利用apt-getdepend选项,这会列出所给包的依赖,但是只是直接依赖,间接依赖需要递归。可以手动递归,也可以用--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版权协议,转载请附上原文出处链接和本声明。