溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

軟件包的管理(rpm和yum)

發(fā)布時(shí)間:2020-07-20 04:20:40 來源:網(wǎng)絡(luò) 閱讀:660 作者:AN0519 欄目:數(shù)據(jù)庫(kù)

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

軟件包管理:

    一,RPM包管理;

    二,yum包管理;


一,RPM包管理:

centos系統(tǒng)上RPM命令管理程序包:

    安裝,升級(jí),卸載,查詢,校驗(yàn),數(shù)據(jù)庫(kù)維護(hù)

    RPM命令:rpm [OPTIONS] [PACKAGE_FILE]

        安裝:-i ,--install

        升級(jí):-U,--update, -F,--freshen

        卸載: -e,--erase

        查詢: -q,--query

        校驗(yàn): -v,--verify

        數(shù)據(jù)庫(kù)維護(hù):--builddb,--initdb

(1)安轉(zhuǎn):

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

GENERAL OPTIONS:

    -v:  verbose,詳細(xì)信息

    -vv:更詳細(xì)的輸出

    [install-options]

        -h:hash marks輸出進(jìn)度條;每個(gè)#表示2%的進(jìn)度;

        --test:測(cè)試安轉(zhuǎn),檢查并報(bào)告依賴關(guān)系及沖突消息等;

        --nodeps:忽略依賴關(guān)系,不建議使用;

        --replacepkgs:重新安裝

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

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

        --noscripts:

            preinstall: 安轉(zhuǎn)過程開始之前運(yùn)行的腳本,%pre,--nopre

            postinstall:安裝過程完成之后運(yùn)行腳本,%post,--nopost

            preunintall:卸載過程真正開始執(zhí)行之前運(yùn)行的腳本,%preun,--nopreun

            postuninstall:卸載過程完成之后運(yùn)行的腳本,%postun,--nopostun

注意:rpm可以自帶腳本;


(2)升級(jí):

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

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

    -U:升級(jí)或安裝;

    -F:升級(jí)

    rpm -Uvh PACKAGE_FILE ....

    rpm -Fvh PACKAGE_FILE ....

        --oldpackage:降級(jí);

        --force:強(qiáng)制升級(jí);

注意:1,不要對(duì)內(nèi)核做升級(jí)操作;Linux支持多內(nèi)核版本并存,因此,直接安轉(zhuǎn)新版本內(nèi)核;

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


(3)卸載:

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

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

    --nodeps:忽略依賴關(guān)系

    --test:測(cè)試卸載,dry run模式


(4)查詢:

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

    [select-options]

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

        -a, --all:查詢所有已經(jīng)安裝過的包;

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

        -p, --package PACKAGE_FILE:用于實(shí)現(xiàn)對(duì)未安裝的程序包執(zhí)行查詢操作;

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

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

    [query-options]

        --changelog:查詢r(jià)pm包的changelog;

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

        -i, --info:程序包相關(guān)的信息,版本號(hào),大小,所屬的包組,等;

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

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

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

        -R, --requires:查詢指定的程序包的依賴關(guān)系;

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

用法:

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


(5)校驗(yàn):

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

包來源合法性驗(yàn)證和完整性驗(yàn)證:

    來源合法性驗(yàn)證:RSA

    完整性驗(yàn)證:SHA256

獲取并導(dǎo)入信任的包制作者的秘鑰:

    對(duì)于centos發(fā)行版來說:rpm --import / etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

驗(yàn)證:

    (1)安裝此組織簽名的程序時(shí),會(huì)自動(dòng)執(zhí)行驗(yàn)證;

    (2)手動(dòng)驗(yàn)證:rpm -k PACKAGE_FILE (來源合法性和完整性)


(6)數(shù)據(jù)庫(kù)重建:

rpm管理器數(shù)據(jù)庫(kù)路徑:/var/lib/rpm/

查詢操作:通過此處的數(shù)據(jù)庫(kù)進(jìn)行;

獲取幫助:

    centos 6:man rpm

    centos 7:man rpmdb

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

    --initdb:初始化數(shù)據(jù)庫(kù),當(dāng)前無任何數(shù)據(jù)庫(kù)可實(shí)始化創(chuàng)建一個(gè)新的;當(dāng)前有時(shí)不執(zhí)行任何操作;

    --rebuilddb:重新構(gòu)建,通過讀取當(dāng)前系統(tǒng)上所有已經(jīng)安裝過的程序包進(jìn)行重新創(chuàng)建;


二,yum包管理:

(1)yum 配置文件

1,yum 客戶端配置文件:

    /etc/yum.conf :為所有倉(cāng)庫(kù)提供公共配置

    /etc/yum.repos.d/*.repo :為倉(cāng)庫(kù)的指向提供配置

倉(cāng)庫(kù)指向的定義:

    [repositoryID](倉(cāng)庫(kù)ID)

    name=Some name for this repository  (倉(cāng)庫(kù)名)

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

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

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

    gpgkey=URL

文件服務(wù)器(URL):

    ftp://

    http://

    file:///

2,如何使用光盤當(dāng)作本地yum 倉(cāng)庫(kù):

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

    # mount /dev/cdrom /media/cdrom

創(chuàng)建配置文件,vim /etc/yum.repos.d/centos-local.repo

    [CentOS7]

    name=

    baseurl=

    gpgcheck=

    enabled=

軟件包的管理(rpm和yum)

3,如何使用網(wǎng)絡(luò)源做yum倉(cāng)庫(kù):

創(chuàng)建配置文件,vim /etc/yum.repos.d/bash.repo

    [CentOS7]

    name=

    baseurl=

    gpgcheck=

    enabled=

軟件包的管理(rpm和yum)


(2)yum的命令管理:

yum 的命令行選項(xiàng):

    -y:  自動(dòng)回答為“yes”

    -q :靜默模式

    --nogpgcheck :禁止進(jìn)行g(shù)pg check

    --disablerepo=repoidglob :臨時(shí)禁用此處指定的repo

    --enablerepo=repoidglob :臨時(shí)啟用此處指定的repo

    --noplugins :禁用所有插件

顯示倉(cāng)庫(kù)列表:

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

顯示程序包:

    yum list

    yum list [all ]

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

安裝程序包:

    yum install package1

    yum reinstall package1  ( 重新安裝)

升級(jí)程序包:

    yum update package1

    yum downgrade package1 ( 降級(jí))

檢查可用升級(jí):

    yum check-update

卸載程序包:

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

查看包的詳細(xì)信息

    yum info package

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

    yum provides  feature1

清理本地緩存:

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

    [程序包 | 元數(shù)據(jù) | 過期的緩存 | rpmdb | 插件 | 全部的]

構(gòu)建緩存:

    yum makecache

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

    yum search string1

查看yum 事務(wù)歷史:

    yum history

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

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

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

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

安裝及升級(jí)本地程序包:

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

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

包組管理的相關(guān)命令:

    yum grouplist   (查看包組)

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

    yum groupinstall group   (安裝包組)

    yum groupupdate group  (升級(jí)包組)

    yum groupremove group  (卸載包組)


(3)編譯安裝:

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

編譯C源代碼:

    準(zhǔn)備: 提供開發(fā)工具及開發(fā)環(huán)境

        開發(fā)工具:make, gcc等

        開發(fā)環(huán)境:開發(fā)庫(kù),頭文件

        glibc :標(biāo)準(zhǔn)庫(kù)

    實(shí)現(xiàn):通過 “包組”提供開發(fā)組件

        CentOS 6:

            Development Tools

            Server Platform Development

        CentOS 7:

            Development Tools

            Development and Creative Workstation

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

第一步:./configure 腳本

    選項(xiàng):指定安裝位置、指定啟用的特性--help:  獲取其支持使用的選項(xiàng)

選項(xiàng)分類:

    安裝路徑設(shè)定:

        --prefix=/PATH:  指定默認(rèn)安裝位置, 默認(rèn)為/usr/local/

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

        System types: 支持交叉編譯

        Optional Features:  可選特性

        --disable-FEATURE

        --enable-FEATURE[=ARG]

        Optional Packages:  可選包,

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

        --without-PACKAGE, 禁用依賴關(guān)系

第二步:make:根據(jù)makefile 文件,構(gòu)建應(yīng)用程序

第三步:make install : 復(fù)制文件到相應(yīng)路徑

安裝后的配置:

    (1)  二進(jìn)制程序目錄導(dǎo)入至PATH 環(huán)境變量中;

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

        PATH=/PATH/TO/BIN:$PATH

軟件包的管理(rpm和yum)

(2)  導(dǎo)入庫(kù)文件路徑

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

        添加新的庫(kù)文件所在目錄至此文件中

    讓系統(tǒng)重新生成緩存:

        ldconfig [-v]

(3)  導(dǎo)入頭文件

    基于鏈接的方式實(shí)現(xiàn):

        ln -sv

(4)  導(dǎo)入幫助手冊(cè)

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

        添加一個(gè)MANPATH

軟件包的管理(rpm和yum)



向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI