zoukankan      html  css  js  c++  java
  • apt下载deb依赖包

    方法

    首先,找包。找到依赖的包用apt-cache depends packname来获取。
    其次,下载。用apt-get install dependpackname –reinstall -d来下载所依赖的包。 -d是表示只下载。
    再次,批量安装。用shell命令组合来一键下载所有所依赖的包。

    #有些包名中有<>符号,用tr将其删除
    sudo apt-get install --reinstall -d `apt-cache depends packname | grep "依赖" | cut -d: -f2 |tr -d "<>"`
    

    注意上面命令中反引号。 即 ` 。

    示例

    比如要找到fcitx所依赖的包。


     
    这里写图片描述

    apt-cache depends 会列出3类包。如果只想安装Depends的,用grep过滤下。如果想提取出包的名字,用cut做一个分割。

    剩下的就是调用下载相应包的指令了。
    是不是感觉很简单。
    :)


    进阶,下载所依赖的包所依赖的包。。。

    比如A依赖B,B又依赖C,那如何递归呢。此时就需要一个脚本文件,用函数来实现了。
    递归3次下载所依赖包的脚本如下:

    #!/bin/bash
    
    logfile=/home/perrin/Desktop/log
    ret=""
    function getDepends()
    {
       echo "fileName is" $1>>$logfile
       # use tr to del < >
       ret=`apt-cache depends $1|grep "依赖" |cut -d: -f2 |tr -d "<>"`
       echo $ret|tee  -a $logfile
    }
    # 需要获取其所依赖包的包
    libs="gnome-shell"                  # 或者用$1,从命令行输入库名字
    
    # download libs dependen. deep in 3
    i=0
    while [ $i -lt 3 ] ;
    do
        let i++
        echo $i
        # download libs
        newlist=" "
        for j in $libs
        do
            added="$(getDepends $j)"
            newlist="$newlist $added"
            apt install $added --reinstall -d -y
        done
    
        libs=$newlist
    done


    作者:夜游上河园
    链接:https://www.jianshu.com/p/434a50c6c0ed
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    HDU 4379 水题,大水,但我WA了很多次,做了很久
    HDU 1712分组背包 考试复习安排
    所谓的二维背包Triangular Pastures POJ 1948
    ZOJ 1203 Swordfish Kruskal算法求最小生成树
    POJ 2576 Tug of War二维背包恰好装满.
    O(n*m)复杂度的多重背包coinsPOJ 1742
    拓扑排序POJ 1094
    页面右键下拉表
    gb2312 unicode转换工具
    INPUT读出URL里的变量名称
  • 原文地址:https://www.cnblogs.com/ylxtiankong/p/14514732.html
Copyright © 2011-2022 走看看