Linux 包管理器

RPM:前端

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

rpm 的優勢:
    一、簡化了源碼編譯的難度, 使得安裝或者卸載軟件只需一條命令便可

缺點:
    一、不可以自定義源碼編譯參數
    二、沒法自動解決依賴關係(這個缺點由 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:node

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
相關文章
相關標籤/搜索