軟件包的管理(rpm和yum)

    軟件包在系統管理中,軟件包的管理是最重要的,是系統管理的基礎的基礎;只有我們學會軟件包的管理才能談得上其它的應用;本文以目錄式的文檔格式,列出新手弟兄所面對的軟件包的安裝、更新、查詢相對的文檔,以及幾個常用的軟件包管理工具。

軟件包管理:

    一,RPM包管理;

    二,yum包管理;


一,RPM包管理:

centos系統上RPM命令管理程序包:

    安裝,升級,卸載,查詢,校驗,數據庫維護

    RPM命令:rpm [OPTIONS] [PACKAGE_FILE]

        安裝:-i ,--install

        升級:-U,--update, -F,--freshen

        卸載: -e,--erase

        查詢: -q,--query

        校驗: -v,--verify

        數據庫維護:--builddb,--initdb

(1)安轉:

rpm{-i | --install}[install-options] PACKAGE_FILE ...

GENERAL OPTIONS:

    -v:  verbose,詳細信息

    -vv:更詳細的輸出

    [install-options]

        -h:hash marks輸出進度條;每個#表示2%的進度;

        --test:測試安轉,檢查並報告依賴關係及衝突消息等;

        --nodeps:忽略依賴關係,不建議使用;

        --replacepkgs:重新安裝

        --nosignature:不檢查包簽名信息,不檢查來源合法性;

        --nodigest:不檢查包完整性信息;

        --noscripts:

            preinstall: 安轉過程開始之前運行的腳本,%pre,--nopre

            postinstall:安裝過程完成之後運行腳本,%post,--nopost

            preunintall:卸載過程真正開始執行之前運行的腳本,%preun,--nopreun

            postuninstall:卸載過程完成之後運行的腳本,%postun,--nopostun

注意:rpm可以自帶腳本;


(2)升級:

rpm {-U | --upgrade} [install-options] PACKAGE_FILE ....

rpm {-F | --freshen} [install-options] PACKAGE_FILE ....

    -U:升級或安裝;

    -F:升級

    rpm -Uvh PACKAGE_FILE ....

    rpm -Fvh PACKAGE_FILE ....

        --oldpackage:降級;

        --force:強制升級;

注意:1,不要對內核做升級操作;Linux支持多內核版本並存,因此,直接安轉新版本內核;

2,如果某原程序包的配置文件安裝後曾被修改過,升級時,新版本的程序提供的同一個配置文件不會覆蓋原有版本的配置文件,而是把新版本的配置文件重命名(FILENAME.rpmnew) 後保留;


(3)卸載:

rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ..

    --allmatches:卸載所有匹配指定名稱的程序包的各版本;

    --nodeps:忽略依賴關係

    --test:測試卸載,dry run模式


(4)查詢:

rpm {-q|--query} [select-options] [query-options]

    [select-options]

        PACKAGE_NAME:查詢指定的程序包是否已經安裝,及其版本;

        -a, --all:查詢所有已經安裝過的包;

        -f, --file FILE:查詢所有指定的文件有那個程序包安裝生成;

        -p, --package PACKAGE_FILE:用於實現對未安裝的程序包執行查詢操作;

        --whatprovides CAPABILITY:查詢指定的 CAPABILITY 由那個程序包提供;

        --whatrequires CAPABILITY:查詢指定的 CAPABILITY 由那個包依賴;

    [query-options]

        --changelog:查詢rpm包的changelog;

        -l, --list:程序安裝生成的所有文件列表;

        -i, --info:程序包相關的信息,版本號,大小,所屬的包組,等;

        -c, --configfiles:查詢指定的程序包提供的配置文件;

        -d, --docfiles:查詢指定的程序包提供的文檔;

        --provides:列出指定的程序包提供的所有的CAPABILITY;

        -R, --requires:查詢指定的程序包的依賴關係;

        --scripts:查看程序包自帶的腳本片段;

用法:

    -qi PACKAG, -qf FILE, -qc PACKAG, -ql PACKAG, -qd PACKAG,-qpl PACKAG_FILE


(5)校驗:

rpm {-V|--verify} [select-options] [verify-options]

    S file Size differs

    M Mode differs (includes permissions and file type)

    5 digest (formerly MD5 sum) differs

    D Device major/minor number mismatch

    L readLink(2) path mismatch

    U User ownership differs

    G Group ownership differs

    T mTime differs

    P caPabilities differ

包來源合法性驗證和完整性驗證:

    來源合法性驗證:RSA

    完整性驗證:SHA256

獲取並導入信任的包製作者的祕鑰:

    對於centos發行版來說:rpm --import / etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

驗證:

    (1)安裝此組織簽名的程序時,會自動執行驗證;

    (2)手動驗證:rpm -k PACKAGE_FILE (來源合法性和完整性)


(6)數據庫重建:

rpm管理器數據庫路徑:/var/lib/rpm/

查詢操作:通過此處的數據庫進行;

獲取幫助:

    centos 6:man rpm

    centos 7:man rpmdb

rpm {--initdb|--rebuilddb} [--dbpath DIRECTORY] [--root DIREC‐TORY]

    --initdb:初始化數據庫,當前無任何數據庫可實始化創建一個新的;當前有時不執行任何操作;

    --rebuilddb:重新構建,通過讀取當前系統上所有已經安裝過的程序包進行重新創建;


二,yum包管理:

(1)yum 配置文件

1,yum 客戶端配置文件:

    /etc/yum.conf :爲所有倉庫提供公共配置

    /etc/yum.repos.d/*.repo :爲倉庫的指向提供配置

倉庫指向的定義:

    [repositoryID](倉庫ID)

    name=Some name for this repository  (倉庫名)

    baseurl=url://path/to/repository/   (地址)

    enabled={1|0}  (是否啓用)

    gpgcheck={1|0}  (是否檢查)

    gpgkey=URL

文件服務器(URL):

    ftp://

    http://

    file:///

2,如何使用光盤當作本地yum 倉庫:

掛載光盤至某目錄,例如/media/cdrom

    # mount /dev/cdrom /media/cdrom

創建配置文件,vim /etc/yum.repos.d/centos-local.repo

    [CentOS7]

    name=

    baseurl=

    gpgcheck=

    enabled=

wKioL1fILNux37wsAAAJ7cE3Dzs705.png-wh_50

3,如何使用網絡源做yum倉庫:

創建配置文件,vim /etc/yum.repos.d/bash.repo

    [CentOS7]

    name=

    baseurl=

    gpgcheck=

    enabled=

wKioL1fILPrDDsqDAAAOgYs-NkA123.png-wh_50


(2)yum的命令管理:

yum 的命令行選項:

    -y:  自動回答爲“yes”

    -q :靜默模式

    --nogpgcheck :禁止進行gpg check

    --disablerepo=repoidglob :臨時禁用此處指定的repo

    --enablerepo=repoidglob :臨時啓用此處指定的repo

    --noplugins :禁用所有插件

顯示倉庫列表:

    yum repolist [ all | enabled | disabled ]  [全部 | 啓用 | 禁止]

顯示程序包:

    yum list

    yum list [all ]

    yum list [available | installed | updates]  [可用的 | 安裝過的 | 升級的]

安裝程序包:

    yum install package1

    yum reinstall package1  ( 重新安裝)

升級程序包:

    yum update package1

    yum downgrade package1 ( 降級)

檢查可用升級:

    yum check-update

卸載程序包:

    yum [remove | erase] package1   [卸載 | 抹除]

查看包的詳細信息

    yum info package

查看指定的特性( 可以是某文件) 是由哪個程序包所提供:

    yum provides  feature1

清理本地緩存:

    yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

    [程序包 | 元數據 | 過期的緩存 | rpmdb | 插件 | 全部的]

構建緩存:

    yum makecache

搜索:以指定的關鍵字搜索程序包名及summary(簡要) 信息

    yum search string1

查看yum 事務歷史:

    yum history

    yum history list #     (可以顯示某個處理過程)

    yum history info #  (可以顯示某個歷史安裝包的詳細信息)

    yum history redo #  (可以重新安裝某個歷史的所有安裝包)

    yum history undo #  (可以撤銷某個歷史的所有安裝包,類同卸載  (不適用包組))

安裝及升級本地程序包:

    yum install rpmfile  (安裝本地程序包)

    yum update rpmfile  (升級本地程序包)

包組管理的相關命令:

    yum grouplist   (查看包組)

    yum groupinfo group   (查看包組的詳細信息)

    yum groupinstall group   (安裝包組)

    yum groupupdate group  (升級包組)

    yum groupremove group  (卸載包組)


(3)編譯安裝:

c/c++ 編譯器: gcc (GNU C Complier)

編譯C源代碼:

    準備: 提供開發工具及開發環境

        開發工具:make, gcc等

        開發環境:開發庫,頭文件

        glibc :標準庫

    實現:通過 “包組”提供開發組件

        CentOS 6:

            Development Tools

            Server Platform Development

        CentOS 7:

            Development Tools

            Development and Creative Workstation

( get命令 是把目錄或文件放到桌面 )

第一步:./configure 腳本

    選項:指定安裝位置、指定啓用的特性--help:  獲取其支持使用的選項

選項分類:

    安裝路徑設定:

        --prefix=/PATH:  指定默認安裝位置, 默認爲/usr/local/

        --sysconfdir=/PATH :配置文件安裝位置

        System types: 支持交叉編譯

        Optional Features:  可選特性

        --disable-FEATURE

        --enable-FEATURE[=ARG]

        Optional Packages:  可選包,

        --with-PACKAGE[=ARG], 依賴包

        --without-PACKAGE, 禁用依賴關係

第二步:make:根據makefile 文件,構建應用程序

第三步:make install : 複製文件到相應路徑

安裝後的配置:

    (1)  二進制程序目錄導入至PATH 環境變量中;

        編輯文件/etc/profile.d/NAME.sh

        PATH=/PATH/TO/BIN:$PATH

wKioL1fILhaQc3q8AAAG1Br5m0Y971.png-wh_50

(2)  導入庫文件路徑

    編輯/etc/ld.so.conf.d/NAME.conf

        添加新的庫文件所在目錄至此文件中

    讓系統重新生成緩存:

        ldconfig [-v]

(3)  導入頭文件

    基於鏈接的方式實現:

        ln -sv

(4)  導入幫助手冊

    編輯/etc/man.config|man_db.conf 文件

        添加一個MANPATH

wKiom1fILj6xX_huAAAyO3OzSG4231.png-wh_50



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章