rpm與yum詳解

rpm與yum詳解

何爲rpm,何爲yum

**rpm:**RPM全稱是Red Hat Package Manager(Red Hat包管理器)。幾乎所有的Linux發行版本都使用這種形式的軟件包管理安裝、更新和卸載軟件。rpm有五種基本的操作功能:安裝、卸載、升級、查詢和驗證。但是rpm軟件包之間的依賴性問題往往會很繁瑣,尤其是軟件由多個rpm包組成時。可通過rpm -help獲取使用幫助
yum: 是一個在Fedora和RedHat以及SUSE中的Shell前端軟件包管理器。yum的宗旨是自動化地升級,安裝/移除rpm包,收集rpm包的相關信息,檢查依賴性並自動提示用戶解決。yum的關鍵之處是要有可靠的repository,即yum是軟件的倉庫,它包含rpm的header, header包括了rpm的各種信息,包括描述,功能,提供的文件,依賴性等,真是收集了這些header並加以分析,才能自動化地完成餘下地任務。(yum可以自動的處理依賴性關係,並且一次安裝所有依賴的軟件包,無須繁瑣地一次次下載、安裝)


使用rpm

獲取包的途徑
1.系統發行的光盤或發行版官方站點或官方鏡像站點(以穩定爲主,因此軟件版本相對較老)
2.程序項目官方站點(版本相對較高)
3.第三方組織 例如 Fedora-EPEL: epel https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/ 等

安裝
-i:安裝
-v: 顯示安裝過程中的詳細信息
-replacepkg:重新安裝
-test: 測試安裝,不會真正的執行安裝操作

升級
-U:如果有較舊版本程序包, 則升級安裝;否則執行安裝操作
-F : 如果有較舊版本程序包,則升級安裝;否則停止安裝操作

卸載
rpm -e file --nodeps 忽略依賴性只刪除當前的軟件

查詢
-qa: 查詢所有已經安裝的包
-qi: 顯示包的簡要信息
-ql: 顯示包裏的文件列表
-qc: 只顯示包裏的配置文件
-qd: 顯示說明文檔
-qf: 查看某個文件是由哪個包提供的(後跟文件的路徑)
-qR: 查看包的依賴關係

包來源合法性及完整性的驗證:
rpm -import PUBKEY… (導入公鑰)
rpm -K package_file…(檢測軟件包來源合法性和完整性)
rpm日常用法
安裝沒有依賴包的軟件,比如
rpm與yum詳解
查詢一個軟件的已安裝的rpm包
rpm與yum詳解
查詢已經安裝的包組
rpm與yum詳解

rpm實際應用

若意外刪除某文件,可以利用rpm2cpio來解開rpm包恢復文件

  1. 模擬文件意外丟失(刪除文件)
    rpm與yum詳解

  2. 查詢文件來自於哪一個已安裝的包
    rpm與yum詳解![]

  3. 掛載光盤
    rpm與yum詳解

  4. 複製rpm到一個臨時目錄
    rpm與yum詳解

  5. 進入臨時目錄並解開rpm包
    rpm與yum詳解
    rpm與yum詳解

  6. 從解開的目錄裏找到需要的文件並複製到相關的目錄下 rpm與yum詳解

使用yum

**
yum客戶端**
定義: 存放了衆多rpm包,以及包的相關元數據的爲文件(repodata)
配置文件:
指向倉庫的位置以及各種配置信息,每個yum客戶端可以多個可用的yum倉庫
主配置文件: /etc/yum.conf
子配置文件:/etc/yum.repos.d/*.repo
yum倉庫配置

     [repo_id] 倉庫id具有唯一性
     name=倉庫名稱  (可以不寫,默認name爲repo_id)
     baseurl= 倉庫路徑 例如:https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/ 等
     enabled=1|0 設置是否啓用倉庫,默認啓用
     gpgcheck=1|0 設置是否啓用gpg檢查,默認啓用
     gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 配置gpgcheck路徑

內置變量
$releasever 當前操作系統的發行主版本號
$arch 平臺 i486,i586,i686
$basearch 基礎平臺i386, x86_64
yum命令
列出:
repolist 列出所有的可用倉庫
list all|installed|available 列出全部/已安裝的/有效的倉庫
grouplist 列出所有可用的包組
安裝
install 安裝
reinstall 重新安裝
緩存
clean all 清除所有緩存
makecache 生成緩存
升級
checkupdate 檢查可用升級
update package_name 如果有多個版本的升級包可用,可以指定具體版本來升級
卸載
remove | earse package_name 依賴於指定程序的其他包也會被刪除
查詢
info 查詢詳細信息
search 根據關鍵字模糊查詢包名
provides 查詢文件由哪個軟件包提供
命令歷史
yum history (方便於執行undo,redo操作)
yum的日常用法
安裝(自動解決軟件的依賴問題,並且自動安裝依賴的包)

rpm與yum詳解
查看一個文件屬於哪個包,但是包並未安裝
rpm與yum詳解
查看可用的倉庫
rpm與yum詳解
安裝包組(應用yum可以成組安裝)
rpm與yum詳解rpm與yum詳解
刪除包組
rpm與yum詳解rpm與yum詳解
清除緩存
rpm與yum詳解


源碼包的安裝

rpm和yum的安裝,都是在存在rpm包的前提下,如果我們所要的安裝的軟件沒有現有的rpm包,那麼我們該如何安裝,這個時候我們需要使用源碼來安裝,以安裝httpd的源碼包爲例:

  1. 獲取源碼包
    可以通過官網下載源碼,也可以通過局域的服務器來獲取獲取了httpd的源碼包
    rpm與yum詳解
  2. 安裝Development Tools
    rpm與yum詳解
  3. ./configure 通過選項傳遞參數,指定啓用特性、安裝路徑等;執行時會參考用戶的指定以及Makefile.in文件生成Makefile,執行過程中還需要根據提示安裝apr-devel,apr-util-devel.pcre-devel三個包
    rpm與yum詳解rpm與yum詳解rpm與yum詳解
  4. make 根據Makefile文件,構建應用程序
    rpm與yum詳解rpm與yum詳解
  5. make install 複製文件到相應的路徑
    rpm與yum詳解rpm與yum詳解
  6. 安裝後的配置,將二進制目錄導入至PATH環境變量中,即將/app/apache24/bin寫入/etc/profile.d/*.sh下,然後執行。
    rpm與yum詳解rpm與yum詳解rpm與yum詳解rpm與yum詳解
  7. 啓動服務,檢查是否安裝成功
    w-1585974599115)][外鏈圖片轉存中…(img-FVuPR8vw-1585974599115)][外鏈圖片轉存中…(img-hEO4pmTA-1585974599116)][外鏈圖片轉存中…(img-MB0s5wNh-1585974599117)]
  8. 啓動服務,檢查是否安裝成功
    rpm與yum詳解rpm與yum詳解
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章