1. 程式人生 > >Linux 包管理器

Linux 包管理器

RPM:

rpm(Red-Hat Package Manager) 為 Redhat 提出的包管理器, 用於在 Redhat 及其衍生版本中安裝 rpm 格式的軟體包

rpm 的優點:
    1、簡化了原始碼編譯的難度, 使得安裝或者解除安裝軟體只需一條命令即可

缺點:
    1、不能夠自定義原始碼編譯引數
    2、無法自動解決依賴關係(這個缺點由 yum 工具解決)

RPM 包命名格式:
    httpd-2.4.6-67.el7.centos.x86_64.rpm
    httpd 軟體包名稱  2.4.6-67 軟體包版本   el7 系統版本    centos 系統髮型版   x86_64 CPU架構  


RPM 依賴關係:
    樹形依賴關係: A 依賴 B, B 依賴 C                A-B-C
    環形依賴關係: A 依賴 B, B 依賴 C, C  依賴 A      A-B-C-A


RPM 常用命令:
    # 檢視當前系統中是否存在以 RPM 方式安裝的 httpd
    rpm -q httpd

    # 和 rpm -q httpd 相同
    rpm -qa httpd

    # 列出當前系統中所有以 RPM 方式安裝的軟體包
    rpm -qa

    # 查詢已安裝的 httpd 的詳細資訊
    rpm -qi httpd

    # 檢視安裝 httpd 生成的所有檔案
    rpm -ql httpd

    # 檢視 passwd 是由那個安裝包提供
    rpm -qf /bin/passwd

    # 檢視 httpd 生成的配置檔案
    rpm -qc httpd

    # 安裝 httpd (可能由於依賴關係而安裝失敗)
    wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/httpd-2.4.6-88.el7.centos.x86_64.rpm
    rpm -ivh httpd-2.4.6-88.el7.centos.x86_64.rpm
    或
    rpm -ivh https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/httpd-2.4.6-88.el7.centos.x86_64.rpm

    # 解除安裝 httpd
    rpm -e httpd

RPM 選項:
    -i              安裝指定 RPM 包
    -e              解除安裝指定 RPM 包
    -v              顯示安裝時的詳細資訊
    -vv             顯示更詳細的資訊
    -h              顯示安裝時的進度
    -U              升級指定 RMP 包, 如果當前系統沒有安裝該 RPM 包, 則安裝
    -F              升級指定 RMP 包, 若果當前系統沒有安裝該 RPM 包, 則退出
    -K              校驗指定軟體包
    --nodeps        不檢查依賴關係(多用於解除安裝)
    --force         強行安裝(多用於老版本替換新版本)
    --import        匯入祕鑰檔案

重建 RPM 資料庫:
    RPM 資料庫維護系統的 RPM 資訊, 如果 RPM 資料庫損壞則 rpm 或者 yum 命令都不可使用, 這是需要對 RPM 資料庫進行重建, 重建的時間取決於當前系統上 RPM 包的數量

    # 重建 RPM 資料庫
    rpm  --rebuilddb

  

YUM:

yum 是 rpm 的前端工具, 使用 python 開發, 用於自動解決 RPM 之間的依賴關係
要使用 yum 必須給定配置檔案, 配置檔案統一存放在 /etc/yum.repos.d/ 下, 必須以 .repo
配置檔案格式:
    [base]
    name=CentOS-$releasever - Base         
    mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
    #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    
    [base]          # yum 的唯一 id, 必須全域性唯一
    name            # 描述資訊
    mirrorlist      # 伺服器映象地址
    baseurl         # 伺服器映象地址(mirrorlist 和 baseurl 只能配置一個)
    gpgcheck        # 是否驗證 KEY
    gpgkey          # key 的存放路徑
    enabled         # 是否啟用這個配置塊


yum 源的分類:
    base               # 常用的安裝包, base 源裡面的包通常和安裝映象的包相同
    extras             # 常用的擴充套件包
    updates            # 執行 yum update 使用的源
    epel               # 通過 epel 認證的源(需要自己安裝)


yum 常用命令:
    # 顯示所有的 yum 倉庫, status 列為 enabled 表示啟用, disabled 表示禁用
    yum repolist all

    # 顯示所有 status 為 enabled 的 yum 倉庫
    yum repolist enabled

    # 顯示所有 status 為 disabled 的 yum 倉庫
    yum repolist disabled

    # 列出所有 yum 倉庫中的 rpm 包
    yum list

    # 顯示所有以 http 開頭的包(yum 支援萬用字元)
    yum list http*

    # 在所有 yum 倉庫中搜索 httpd 關鍵字
    yum search httpd

    # 安裝 httpd (會提示是否確認安裝)
    yum install httpd

    # 自動回答為 yes, -y 在需要鍵入 yes 或者 no 時自動回答為 yes
    yum -y install nginx

    # 重新安裝 httpd
    yum -y reinstall httpd

    # 更新 httpd
    yum -y update httpd

    # 解除安裝 httpd(不會解除安裝其自動安裝的依賴包)
    yum -y remove httpd

    # 解除安裝 nginx 將會解除安裝其所安裝的所有包
    yum -y autoremove nginx

    # 檢視 openssh 包的詳細資訊
    yum info openssh
    
    # 安裝指定檔案有那個程式包提供
    yum provides /bin/passwd

    # 檢視 ifconfig 有那個程式包提供
    yum provides */ifconfig

    # 清除快取
    yum clean all 

    # 清除外掛快取
    yum clean plugins

    # 構建快取
    yum makecache

    # 檢視 lsof 的依賴
    yum deplist lsof

    # yum 操作歷史記錄
    yum history

    # 安裝 epel 源
    yum -y install epel-release


    包組相關的命令:
        #列出所有可用的包組列表
        yum grouplist

        # 安裝 GNOME Desktop(GNOME 桌面) 包組
        yum groupinstall GNOME Desktop

        # 解除安裝 GNOME Desktop 包組
        yum groupremove GNOME Desktop

        # 檢視指定包組資訊
        yum groupinfo GNOME Desktop

        # 更新指定包組
        yum groupupdate GNOME Desktop