Linux 套件管理 ( Package Manager )

Loading

系統套件管理

傳統的 Linux 使用 rpm , dpkg 來管理套件,但使用者需要手動管理套件之間的相依性,為解決套件的相依性,目前漸漸都改成為 yum (RedHat 或是 CentOS) 或是 apt-get (Ubuntu) .

  • RPM

    可以參考 RPM 套件管理 – https://benjr.tw/187 或是 Soruce RPM – https://benjr.tw/190,以及圖形介面的 system-config-packages – https://benjr.tw/2663

    關於 Repository 設定請參考 https://benjr.tw/23636

    • 安裝:# rpm -ivh 套件名稱
    • 移除:# rpm -e 套件名稱
    • 升級:# rpm -Uvh 套件名稱 或是 # rpm -Fvh 套件名稱
    • 查詢:# rpm -q 套件名稱
  • YUM

    可以參考 yum 的詳細說明 https://benjr.tw/96145

    • 更新:#yum update 套件名稱
    • 安裝:#yum install 套件名稱
    • 移除:#yum remove 套件名稱
    • 搜尋:#yum search 套件名稱
    • 清除:#yum clean
      清除 /var/cache/yum 下載的暫存套件檔,使用 #yum clean all 可以一次就給他清乾淨.
    • 更新:#yum list updates
      列出所有可供更新的套件.
    • 已安裝:#yum list installed
      列出所有已經安裝的套件.
    • 已安裝:#yum whatprovides “*command”
      查詢未安裝的程式是由哪一個套件裡提供的,請參考 https://benjr.tw/95041
    • yum grouplist & yum groups install 套件名稱
      要額外安裝桌面系統會很麻煩.這時候可以透過 group install 的方式.請參考 https://benjr.tw/96155
    • yum history
      用來檢視目前 yum 的狀歷史態,請參考 https://benjr.tw/103542 .

    yum-utils

    • yum-builddep
      編譯 src.rpm (RPM Source) 需要在編譯前要把所有需要的工具先安裝好,編譯的時候才不會出錯,這時候我們可以透過 yum-builddep 這隻工具幫我們做前置作業. 可以參考 yum-builddep 的詳細說明 https://benjr.tw/95425
    • package-cleanup
      用來檢視系統已安裝的套件哪些是有重複或是孤立的,請參考 https://benjr.tw/103553
  • dnf

    Fedora 22 改成 DNF : Dandified Yum (#dnf) 為預設的套件管理工具.可以參考 https://benjr.tw/96160 Dandified Yum (#dnf) 套件管理.

  • APT, APT-GET

    可以參考 apt 的詳細說明 https://benjr.tw/95601 ,或是 apt-get 的說明 https://benjr.tw/93967

    • 更新:#apt-get update
      更新 /etc/apt/sources.list 套件清單內容
    • 升級:#apt-get upgrade
      系統會依據 /etc/apt/sources.list 內容是更新套件 (需要透過 #apt-get update 來更新清單內容) ,但不執行套件移除 或是 更新沒有安裝過的套件.如果會影響到其它套件的相依性該套件也不會更新.
    • 升級:#apt-get dist-upgrade
      系統會依據 /etc/apt/sources.list 內容是更新套件 (需要透過 #apt-get update 來更新清單內容) ,與 upgrade 不同的是 他會處理套件相依性的問題,系統如果有重要更新套件 (未安裝過的) 也會一併安裝,也有可能會移除一些套件.
    • 安裝:#apt-get install
      不用考慮到相依性的問題,系統會自行處理相依性問題.
    • 移除:#apt-get remove
      不用考慮到相依性的問題,系統會自行處理相依性問題.
    • 移除:#apt-get purge
      除了移除程式連設定檔會一併移除掉.
    • 清除:#apt-get clean
      清除位於 /var/cache/apt/archives 的下載暫存套件檔案.
    • 搜尋:#apt-cache search
    • 檢視套件:#apt-cache show
      可以顯示套件資訊,類似 #rpm -qi 的方式
    • 檢視套件:#apt-cache showpkg
      showpkg 跟 show 的作用有點像,在 man page 裡面可以看到這兩個的定義.
      showpkg – Show some general information for a single package
      show – Show a readable record for the package
      其實都是顯示套件內容但顯示會不一樣.都可以試著讀讀看.

    如果你是要透過 Http-proxy 使用 apt-get 請參考 https://benjr.tw/91047
    關於 apt-get update , upgrade , dist-upgrade , do-release-upgrade 的區別,請參考 https://benjr.tw/95594

  • dpkg

    下面列的幾個是常用的 dpkg 參數,更多的參數請參考 https://benjr.tw/94000

    • 安裝套件(等同 #rpm -i)
      # dpkg -i | –install < .deb file name>
    • 刪除套件,但保留設定檔(等同 #rpm -e)
      # dpkg -r|–remove < package >
    • 列出系統中所有已經安裝的套件(等同 #rpm -qa)
      # dpkg -l|–list [< pattern > …]
      後面可以加 pattern 來查詢單一套件,如果不確定套件名稱可以配合 grep 來查套件關鍵字查.
  • git

    使用 git 下載原始碼 (source code) 的檔案.

  • Dynamical Link Libs

    Linux 上大部分的程式是採用 Dynamical Link 方式來編譯,我們可以透過 ldconfig 或是 ldd 來觀察 dynamically linked (uses shared libs) 的狀態 – https://benjr.tw/23423

程式語言套件管理

Linux 下的程式語言也使用類似的方式來管理程式語言模組.

  • Perl

    Perl Modules 模組安裝,更新可以透過 Source Code, CPAN, CPANM, CPANP 等方式,請參考 https://benjr.tw/16053 .

  • Python

    Python Modules 模組安裝,更新可以透過 pip ,請參考 https://benjr.tw/14925 .

沒有解決問題,試試搜尋本站其他內容

2 thoughts on “Linux 套件管理 ( Package Manager )

  1. 自動引用通知: Linux – File | Benjr.tw

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料