RPM软件包简介

  • RPM Package Manager

由红帽公司提出,RedHat、SUSE等系列采用

建立集中数据库,记录软件包安装/卸载等变化信息,分析软件包依赖关系

http://rpmfind.net/

http://www.centos.org/

  • RPM包文件名特征
    • 软件名-版本信息.操作系统.硬件架构.rpm

firefox-52.7.0-1.el7.centos.x86_64.rpm

软件名:firefox

软件包名:firefox-52.7.0-1.el7.centos.x86_64.rpm

  • RPM包的一般安装位置(分散)

文件类别

默认安装位置

普通执行程序

/usr/bin/ 、/bin/

服务器程序、管理工具

/usr/sbin/ 、/sbin/

配置文件

/etc/ 、/etc/软件名/

日志文件

/var/log/、/var/log/软件名/

程序文档、man帮助手册

/usr/share/doc/ 、/usr/share/man/

  • 查询软件信息
  • 查询是否安装此软件(参数是软件名)

]# rpm -qa #当前系统中所有已安装的软件包

]# rpm -q firefox #查看firefox是否安装

firefox-52.7.0-1.el7.centos.x86_64

]# rpm -q httpd

未安装软件包 httpd

]# rpm -q bash

bash-4.2.46-30.el7.x86_64

]# rpm -qa | grep firefox

]# rpm -qi firefox #查询软件信息

]# rpm -ql firefox #查询软件安装了哪些内容(安装清单)

]# rpm -ql firefox | less

]# rpm -ql firefox | wc -l #统计行数

  • 查询某个目录/文件是哪个RPM包带来的
    • 格式:rpm -qf [文件路径]…
    • 即使目标文件被删除,也可以查询

[root@localhost ~]# which vim #查询命令对应的程序文件

/usr/bin/vim

[root@localhost ~]# rpm -qf /usr/bin/vim

vim-enhanced-7.4.160-4.el7.x86_64

[root@localhost ~]# rpm -q vim-enhanced

vim-enhanced-7.4.160-4.el7.x86_64

[root@localhost ~]# rpm -qf /usr/sbin/poweroff

[root@localhost ~]# rpm -qf /usr/sbin/ifconfig

  • 查询软件包(参数软件包名)

]# rpm -q vsftpd #查询vsftpd软件是否安装

未安装软件包 vsftpd

]# ls /mnt/Packages/vsftpd-3.0.2-28.el7.x86_64.rpm

查询软件包的安装清单:

]# rpm -qpl /mnt/Packages/vsftpd-3.0.2-28.el7.x86_64.rpm

查询软件包信息

]# rpm -qpi /mnt/Packages/vsftpd-3.0.2-28.el7.x86_64.rpm

  • 导入红帽签名信息(了解)

]# rpm --import /mnt/RPM-GPG-KEY-CentOS-7

查询软件包信息

]# rpm -qpi /mnt/Packages/vsftpd-3.0.2-28.el7.x86_64.rpm

rpm命令方式:不能解决依赖关系

yum命令方式:能自动解决依赖关系

  • 安装RPM软件(了解)
    • 格式:rpm -i RPM包文件...
  • 辅助选项
    • -v:显示细节信息
    • -h:以#号显示安装进度

]# rpm -q vsftpd #查询当前的系统是否安装了该软件

未安装软件包 vsftpd

]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm

]# rpm -q vsftpd #查询当前的系统是否安装了该软件

vsftpd-3.0.2-22.el7.x86_64

]# rpm -evh vsftpd #卸载软件

]# rpm -q vsftpd #查询当前的系统是否安装了该软件

未安装软件包 vsftpd

解决依赖关系(了解)

    • 先安装/卸载要求的包
    • 如果RPM包齐全但比较多,可以用通配符 *
  • 忽略依赖关系(不推荐)
    • 可能会导致软件运行异常
    • 辅助选项 --nodeps

常见依赖关系的报错:

[root@localhost ~]# rpm -ivh /mnt/Packages/bind-chroot-9.9.4-61.el7.x86_64.rpm

错误:依赖检测失败:

bind = 32:9.9.4-61.el7 被 bind-chroot-32:9.9.4-61.el7.x86_64 需要

  • 构建Yum软件包仓库

作用:自动解决依赖关系安装软件

服务:自动解决依赖关系安装软件

服务端(本机): 1.众多的软件 2.仓库数据文件(repodata)

本地Yum仓库:服务端需要有光盘内容即可

客户端(本机):指定服务端位置

    • 仓库配置文件/etc/yum.repos.d/*.repo
    • 错误的文件会影响正确的文件

yum命令执行流程:

yum命令---》读取/etc/yum.repos.d/*.repo配置文件内容---》从而找到仓库的具体位置

客户端文件配置内容:

    • [源名称] :自定义名称,具有唯一性
    • name:本软件源的描述字串
    • baseurl:指定YUM服务端的URL地址
    • enabled:是否启用此频道
    • gpgcheck:是否验证待安装的RPM包
    • gpgkey:用于RPM软件包验证的密钥文件

完整示例:

]# vim /etc/yum.repos.d/mydvd.repo

[nsd20]

name=hahaxixi

baseurl=file:///mnt

enabled=1

gpgcheck=1

gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-7

]# ls /etc/yum.repos.d/

]# mkdir /etc/yum.repos.d/bak

]# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak

]# ls /etc/yum.repos.d/

]# ls /etc/yum.repos.d/bak

]# vim /etc/yum.repos.d/mydvd.repo

[nsd20] #仓库的名称

name=hahaxixi #仓库描述信息

baseurl=file:///mnt #指定服务端位置file://表示本地为服务端

enabled=1 #本文件启用

gpgcheck=0 #不检测红帽签名信息

]# yum repolist #列出仓库信息

]# yum -y install httpd #安装软件包测试

]# rpm -q httpd #查询是否安装成功

  • 总结:本地Yum仓库构建方法

1.显示光盘的内容,挂载光驱设备 mount /dev/cdrom /mnt

2.书写仓库配置文件,指定仓库位置

3.执行流程: yum命令--->/etc/yum.repos.d/*.repo--->baseurl=file:///mnt

  • 总结:本地Yum仓库排除错误

1.没有挂载光驱设备

2./etc/yum.repos.d目录下的配置文件内容

3./etc/yum.repos.d目录下,错误的配置文件影响

  • 安装软件

[root@localhost ~]# yum -y install httpd

[root@localhost ~]# rpm -q httpd #检测是否安装成功

[root@localhost ~]# yum -y install bind-chroot

[root@localhost ~]# rpm -q bind-chroot

[root@localhost ~]# yum -y install sssd

[root@localhost ~]# rpm -q sssd

[root@localhost ~]# yum -y install gcc

[root@localhost ~]# rpm -q gcc

[root@localhost ~]# yum -y install xorg-x11-apps

[root@localhost ~]# rpm -q xorg-x11-apps

[root@localhost ~]# rpm -ql xorg-x11-apps | grep bin

[root@localhost ~]# xeyes

  • 卸载软件

[root@localhost ~]# yum remove gcc

[root@localhost ~]# yum remove httpd

[root@localhost ~]# rpm -q gcc

[root@localhost ~]# rpm -q httpd

  • 查询

[root@localhost ~]# yum list ftp #查询仓库是否有ftp软件

可安装的软件包 #表示当前系统没有安装该软件

ftp.x86_64 0.17-67.el7 nsd20

[root@localhost ~]# yum list httpd

[root@localhost ~]# yum search ftp #包含ftp就匹配

]# yum provides /usr/bin/hostname

]# yum provides /etc/passwd #仓库中那个软件包产生该文件

  • 删除/usr/bin/zip程序,然后通过yum工具进行恢复

[root@svr1 ~]# rm -rf /usr/bin/zip

[root@svr1 ~]# ls /usr/bin/zip

ls: 无法访问/usr/bin/zip: 没有那个文件或目录

[root@svr1 ~]# yum provides /usr/bin/zip #查询仓库中那个软件产生了此程序

[root@svr1 ~]# yum -y reinstall zip #覆盖安装

[root@svr1 ~]# ls /usr/bin/zip

/usr/bin/zip

  • 清空缓存(了解)

执行流程: yum命令--->/etc/yum.repos.d/*.repo--->baseurl=file:///mnt

[root@localhost ~]# yum clean all

[root@localhost ~]# yum repolist

[root@localhost ~]# yum repolist

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值