1. 程式人生 > >rpm與yum詳解

rpm與yum詳解

cfa 環境變量 一次 幫助 cto 倉庫配置 ever rep 清除

何為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包
技術分享圖片
查詢已經安裝的包組
技術分享圖片

rpm實際應用

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

  1. 模擬文件意外丟失(刪除文件)
    技術分享圖片
  2. 查詢文件來自於哪一個已安裝的包
    技術分享圖片![]
  3. 掛載光盤
    技術分享圖片
  4. 復制rpm到一個臨時目錄
    技術分享圖片
  5. 進入臨時目錄並解開rpm包
    技術分享圖片
    技術分享圖片
  6. 從解開的目錄裏找到需要的文件並復制到相關的目錄下
    技術分享圖片

使用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的日常用法
安裝(自動解決軟件的依賴問題,並且自動安裝依賴的包)

技術分享圖片
查看一個文件屬於哪個包,但是包並未安裝
技術分享圖片
查看可用的倉庫
技術分享圖片
安裝包組(應用yum可以成組安裝)
技術分享圖片技術分享圖片
刪除包組
技術分享圖片技術分享圖片
清除緩存
技術分享圖片


源碼包的安裝

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

  1. 獲取源碼包
    可以通過官網下載源碼,也可以通過局域的服務器來獲取獲取了httpd的源碼包
    技術分享圖片
  2. 安裝Development Tools
    技術分享圖片
  3. ./configure 通過選項傳遞參數,指定啟用特性、安裝路徑等;執行時會參考用戶的指定以及Makefile.in文件生成Makefile,執行過程中還需要根據提示安裝apr-devel,apr-util-devel.pcre-devel三個包
    技術分享圖片技術分享圖片技術分享圖片

  4. make 根據Makefile文件,構建應用程序
    技術分享圖片技術分享圖片
  5. make install 復制文件到相應的路徑
    技術分享圖片技術分享圖片

  6. 安裝後的配置,將二進制目錄導入至PATH環境變量中,即將/app/apache24/bin寫入/etc/profile.d/*.sh下,然後執行。
    技術分享圖片技術分享圖片技術分享圖片技術分享圖片

  7. 啟動服務,檢查是否安裝成功
    技術分享圖片技術分享圖片

rpm與yum詳解