OS-Ubuntu-從源查詢拉取安裝包依賴-apt-cache&apt download

Theseus‘Ship發表於2024-08-08

OS-Ubuntu-從源查詢拉取安裝包依賴-apt-cache&apt download

引用:

  • Ubuntu apt-get apt-cache 命令使用
  • apt-get下載包及所有依賴

指令

  • apt-cache
    • depends
    • --no-*
      • --no-pre-depends
      • --no-suggests
      • --no-recommends
      • --no-conflicts
      • --no-breaks
      • --no-enhances
    • --recurse
  • apt-get download

安裝包快取

  1. apt-get指令會快取安裝包。
  2. 快取安裝包路徑為:/var/cache/apt/archives
  3. apt clean all:清空快取

安裝檔案位置

一般的deb包(包括新立得或者apt-get下載的)都在**/usr/share**

自己下載的壓縮包或者編譯的包,有些可以選擇安裝目錄,一般放在/usr/local/,也有在/opt的。


apt-get

  • Ubuntu apt-get apt-cache 命令使用
命令 說明
apt-get update 更新源
apt-get upgrade 更新所有已安裝的包
apt-get install 安裝軟體包多個軟體包用空格隔開
apt-get install –reinstall 重新安裝軟體包
apt-get install -f 修復安裝(破損的依賴關係)軟體
apt-get remove 刪除軟體包(不包括配置檔案)
apt-get purge 刪除軟體包(包括配置檔案)
apt-get clean 清除快取(/var/cache/apt/archives/{,partial}下) 中所有已下載的包
apt-cache stats 顯示系統軟體包的統計資訊
apt-cache search 使用關鍵字pkg搜尋軟體包
apt-cache show 顯示軟體包pkg_name的詳細資訊
apt-cache depends 檢視pkg所依賴的軟體包
apt-cache rdepends 檢視pkg被那些軟體包所依賴
apt-get build-dep 構建pkg原始碼包的編譯依賴 (這條命令很神奇,一步搞定所有編譯依賴)

apt-get命令的一般語法格式為:apt-get subcommands [ -d | -f | -m | -q| --purge | --reinstall | -b | -s | -y | -u | -h | -v ] [pkg]


比如:

  1. 更新或升級操作:
apt-get update                  # 更新源  
apt-get upgrade                 # 更新所有已安裝的包  
apt-get dist-upgrade            # 發行版升級(如,從10.10到11.04)123
  1. 安裝或重灌類操作:
apt-get install <pkg>             # 安裝軟體包<pkg>,多個軟體包用空格隔開  
apt-get install --reinstall <pkg> # 重新安裝軟體包<pkg>  
apt-get install -f <pkg>          # 修復安裝(破損的依賴關係)軟體包<pkg>  123
  1. 解除安裝類操作:
apt-get remove <pkg>          # 刪除軟體包<pkg>(不包括配置檔案)  
apt-get purge <pkg>           # 刪除軟體包<pkg>(包括配置檔案)  12
  1. 下載清除類操作:
apt-get source <pkg>              # 下載pkg包的原始碼到當前目錄  
apt-get download <pkg>            # 下載pkg包的二進位制包到當前目錄  
apt-get source -d <pkg>           # 下載完原始碼包後,編譯  
apt-get build-dep   <pkg>         # 構建pkg原始碼包的依賴環境(編譯環境?)  
apt-get clean                     # 清除快取(/var/cache/apt/archives/{,partial}下)中所有已下載的包  
apt-get autoclean                 # 類似於clean,但清除的是快取中過期的包(即已不能下載或者是無用的包)  
apt-get autoremove                # 刪除因安裝軟體自動安裝的依賴,而現在不需要的依賴包  1234567
  1. 查詢類操作:
apt-cache stats             # 顯示系統軟體包的統計資訊  
apt-cache search <pkg>            # 使用關鍵字pkg搜尋軟體包  
apt-cache show   <pkg_name>   # 顯示軟體包pkg_name的詳細資訊  
apt-cache depends <pkg>       # 檢視pkg所依賴的軟體包  
apt-cache rdepends <pkg>      # 檢視pkg被那些軟體包所依賴  

下載指定安裝包依賴

  • apt-get下載包及所有依賴
#!/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

相關文章