軟件包管理(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=

yum 本地源.PNG

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

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

    [CentOS7]

    name=

    baseurl=

    gpgcheck=

    enabled=

yum 網上源.PNG

(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

centos 6 本身帶有http 因此 路徑要寫自帶的前面,要不然先執行自帶的.PNG

(2)  導入庫文件路徑

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

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

    讓系統重新生成緩存:

        ldconfig [-v]

(3)  導入頭文件

    基于鏈接的方式實現:

        ln -sv

(4)  導入幫助手冊

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

        添加一個MANPATH

centos 7 上Apache的man的配置.PNG

原創文章,作者:AN0519,如若轉載,請注明出處:http://www.www58058.com/43821

(0)
AN0519AN0519
上一篇 2016-09-06 08:50
下一篇 2016-09-06 08:50

相關推薦

  • RPM軟件包管理器及前端工具yum

    目前在linux系統之上軟件安裝方式最常見的有兩種,分別是: dpkg:這個機制最早是由Debian Linux社區所開發出來的,透過dpkg的機制,Debian提供的軟件就能夠簡單的安裝起來,同時還能提供安裝后的軟件資訊,實在非常不錯。只要是衍生于Debian的其他linux發行版,大多使用dpkg這個機制來管理軟件的,包括B2D、Ubuntu等等。 RP…

    Linux干貨 2016-08-20
  • Linux文件系統管理

    Linux文件系統: ext2, ext3, ext4, xfs, btrfs, reiserfs, jfs, swap swap: 交換分區(虛擬內存) 光盤: iso9660       windows: fat32, NTFS       Unix: FFS, U…

    Linux干貨 2016-08-15
  • 正則表達式練習

    一: 1、找出ifconfig命令結果中本機的所有IPv4地址         2、查出分區空間使用率的最大百分比值 3、查出用戶UID最大值的用戶名、UID及shell類型 4、查出/tmp的權限,以數字方式顯示 二: 1、顯示/proc/meminfo文件中以大小s開頭的行;(要求:使用兩種方式) 2、顯示/etc…

    Linux干貨 2016-08-12
  • rpm&yum

    軟件包管理 軟件運行環境 軟件包基礎 Rpm包管理 Yum管理 定制yum倉庫 編譯安裝 ABI 應用程序的二進制接口,和操作系統相關,一個程序二進制編好了,想要在你的系統上跑,要符合你的操作系統的接口標準Windows:PE ?linux:ELF WINDOWS和LINUX二進制程序是不兼容的 庫級別的虛擬化 Linux:WINE 可以讓Windows程序…

    Linux干貨 2018-01-02
  • Linux的發行版和它們區別跟聯系

    linux的主要發行版有Debian,Slackware,RedHat三個大系列    Debian 最早由Ian Murdock于1993年創建。可以算是迄今為止,最遵循GNU規范的Linux系統。Debian最具特色的是apt-get / dpkg包管理方式,其實Redhat的YUM也是在模仿Debian的APT方式,但在二進制文件發…

    Linux干貨 2017-07-02
  • 系統日志和loganalyzer

    作為運維人員,熟悉系統日志是一項基本功。本文將介紹centos6的系統日志rsyslog及loganalyzer工具。 簡介 系統日志:記錄歷史事件,通常都是按時間順序將發生的事件予以記錄,linux上的日志分為syslogd(系統進程相關日志)和klogd(內核事件日志) centos5:syslog    缺點:不能進行并行數據存儲,…

    Linux干貨 2016-03-20
欧美性久久久久