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
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM