11  
查询码: 00000067
apt-get下载包及所有依赖
作者: 柳玉明 于 2024年11月22日 ,于 2025年05月14日 编辑

思路就是利用apt-get的depend选项,这会列出所给包的依赖,但是只是直接依赖,间接依赖需要递归。

可以手动递归,也可以用--recurse选项来递归。

下面采用--recurse递归,并用awk来过滤出需要的包名 。

同时,通过--no-*系列选项关闭了所有不必要的。

最后,用apt-get download XXX或者apt download XXX来依次下载每个包。

————————————————

#!/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


笔记



天数智芯知识库系统 -V 5.2.6 -wcp