千家信息网

软件包的管理(rpm和yum)

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,软件包在系统管理中,软件包的管理是最重要的,是系统管理的基础的基础;只有我们学会软件包的管理才能谈得上其它的应用;本文以目录式的文档格式,列出新手弟兄所面对的软件包的安装、更新、查询相对的文档,以及几
千家信息网最后更新 2026年11月01日软件包的管理(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=

3,如何使用网络源做yum仓库:

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

[CentOS7]

name=

baseurl=

gpgcheck=

enabled=


(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

(2) 导入库文件路径

编辑/etc/ld.so.conf.d/NAME.conf

添加新的库文件所在目录至此文件中

让系统重新生成缓存:

ldconfig [-v]

(3) 导入头文件

基于链接的方式实现:

ln -sv

(4) 导入帮助手册

编辑/etc/man.config|man_db.conf 文件

添加一个MANPATH



程序 文件 查询 管理 升级 配置 仓库 信息 数据 数据库 脚本 验证 软件 软件包 命令 开发 检查 版本 目录 系统 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技平台互联网 疫情对互联网科技公司影响 上海万想互联网科技 西藏七维空间互联网科技有限公司 新华互联网科技2019 欧洲十大科技互联网公司 南山科技园互联网公司有哪些 世界互联网科技公司市值排名 和信科技工业互联网 深圳市优智互联网科技有限公司 互联网科技人工智能实验室 华夏恒生互联网科技013171 佛山市翊博互联网络科技有限公司 徐州市互联网科技有限公司 卡尔迅互联网科技有限公司 广州燕处互联网科技有限公司 上海万顺科技互联网有限公司招聘 科技互联网公司两年变化 上海旺乐尼互联网科技有限公司 互联网大会出现的黑科技 互联网科技企业 美国互联网黑科技 互联网科技咨询 甘肃拓世互联网科技有限公司 汽车互联网创新科技园 互联网公司科技股 搜狐科技互联网 本届互联网博览会上的黑科技 科技和互联网行业的特点 互联网科技对化妆品行业
0