RPM软件包简介

RPM包文件名特征

软件名-版本信息.操作系统.硬件架构.rpm

firefox-91.9.0-1.el8_5.x86_64.rpm

软件名:firefox

软件包名:firefox-91.9.0-1.el8_5.x86_64.rpm

[root@nb ~]# mount   /dev/cdrom     /mnt

mount: /dev/sr0 写保护,将以只读方式挂载

[root@nb ~]# ls   /mnt

[root@nb ~]# ls   /mnt/A(Tab)/P(Tab)/a

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是否安装

]# rpm  -q   httpd     #httpd构建Web服务器软件  

未安装软件包 httpd            

]# rpm  -q   bash      #bash解释器程序软件

]# rpm  -qa  |   grep   firefox

]# rpm  -qa  |    wc   -l     #统计一共安装软件的数目

查询软件信息(参数是软件包名)

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

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

]# rpm  -ql    firefox   |   less      

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

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

]# rpm  -ql    bash   |   less      

软件程序名可能与rpm软件包名不一样 进程名也可能与程序名不同

即使目标文件被删除,也可以查询

]# which   vim  #查询命令对应的程序文件

/usr/bin/vim                

]# rpm  -qf   /usr/bin/vim

vim-enhanced-8.0.1763-16.el8_5.13.x86_64

]# rpm  -q   vim-enhanced

vim-enhanced-8.0.1763-16.el8_5.13.x86_64


]# rpm  -qf   /usr/sbin/poweroff

]# rpm  -qf   /usr/sbin/ifconfig



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

[root@nb ~]# ls  /mnt

AppStream  EFI     isolinux  media.repo

BaseOS     images  LICENSE   TRANS.TBL

[root@nb ~]#


如果没有光盘内容,可以从新挂载

[root@nb ~]# mount  /dev/cdrom  /mnt


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

]# ls   /mnt/A(Tab)/P(Tab)/v/vs(Tab)


查询软件包的安装清单:

]# rpm  -qpl   /mnt/A(Tab)/P(Tab)/v/vs(Tab)


查询软件包信息:

]# rpm  -qpi   /mnt/A(Tab)/P(Tab)/v/vs(Tab)



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

]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial



查询软件包信息(没有警告输出)

]# rpm -qpi  /mnt/AppStream/Packages/v/vsftpd-3.0.3-35.el8.x86_64.rpm



安装软件,方法一:无法解决依赖关系

]# rpm  -ivh  /mnt/AppStream/Packages/v/vsftpd-3.0.3-35.el8.x86_64.rpm    #安装软件


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

]# rpm  -ql  vsftpd     #查询安装清单


]# rpm  -evh  vsftpd    #卸载软件


]# rpm  -q vsftpd   #查询是否卸载成功

安装软件,方法二:自动解决依赖关系

思路:yum----》仓库配置文件-----》软件仓库位置

前提:必须构建软件仓库

软件仓库: 1.众多的软件 2.仓库数据文件(repodata)

完整示例:

[root@localhost /]# vim   /etc/yum.repos.d/mydvd.repo

[xixi]

name=xixi

baseurl=file:///mnt/AppStream

enabled=1

gpgcheck=1       

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial

[haha]

name=xixi

baseurl=file:///mnt/BaseOS

enabled=1

gpgcheck=1       

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial



Yum命令

排除干扰:将错误的文件进行移动

]# 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


[root@nb ~]# vim   /etc/yum.repos.d/haha.repo

[haha]                      #仓库标识

name=Rocky linux 8.6        #仓库描述信息,可以省略

baseurl=file:///mnt/AppStream  #指定软件仓库的位置

enabled=1                        #是否启用仓库,可以省略

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

[xixi]                      #仓库标识

name=Rocky linux 8.6        #仓库描述信息,可以省略

baseurl=file:///mnt/BaseOS  #指定软件仓库的位置

enabled=1                        #是否启用仓库,可以省略

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

[root@nb ~]# yum   repoinfo   #列出识别的软件仓库信息

思路:yum----》仓库配置文件-----》软件仓库位置

[root@nb ~]# yum  -y  install  httpd    #-y表示yes

[root@nb ~]# rpm  -q  httpd

[root@nb ~]# yum    remove   httpd   #卸载软件

[root@nb ~]# rpm  -q  httpd



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

1.没有挂载光驱设备

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

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


yum使用:


查询:

]# yum list  ftp  #查询仓库是否有ftp软件

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


]# yum  list  httpd

]# yum  search  ftp   #包含ftp就匹配

]# yum  provides   /usr/bin/hostname

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

]#yum provides   "guestmount"  #查询仓库中那个软件产生该程序   


]# yum  -y  install  libguestfs-tools-c

]# guestmount   --help  #查看帮助信息



重新安装(覆盖安装)

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


]# rm   -rf  /usr/bin/hostname

]# ls    /usr/bin/hostname


]# yum  provides  /usr/bin/hostname#查询仓库中那个软件,产生了此程序


]# yum   -y    reinstall   hostname#覆盖安装

]# ls   /usr/bin/hostname




清空缓存(了解)

执行流程:

yum命令--->/etc/yum.repos.d/*.repo--->baseurl=file:///mnt/AppStream


[root@localhost ~]#yum  clean   all  #清空Yum的缓存

[root@localhost ~]# yum   repoinfo#列出仓库信息




[root@localhost /]# mkdir  /mydvd

[root@localhost /]# mount  /dev/cdrom  /mydvd  

[root@localhost /]# ls  /mydvd

[root@localhost /]# rm  -rf  /etc/yum.repos.d/*

[root@localhost /]# vim     /etc/yum.repos.d/haha.repo  

[xixi]        

name=xixi      

baseurl=file:///mydvd/AppStream   

enabled=1      

gpgcheck=0      

[haha]          

name=xixi      

baseurl=file:///mydvd/BaseOS

enabled=1       

gpgcheck=0         

[root@localhost /]#  yum   repoinfo  

[root@localhost /]#  yum  -y  install    mariadb-server     

[root@localhost /]#  rpm  -q   mariadb-server         



案例:Yum软件仓库管理

1. 将光驱设备挂载到/iso/linux目录,以/iso/linux目录作为其访问点

2. 利用/iso/linux目录提供光盘内容作为软件源,构建本地Yum仓库

3. 安装软件包httpd


[root@localhost /]# mkdir  -p   /iso/linux

[root@localhost /]# mount  /dev/cdrom  /iso/linux

[root@localhost /]# ls  /iso/linux

[root@localhost /]# rm  -rf  /etc/yum.repos.d/*

[root@localhost /]# vim     /etc/yum.repos.d/haha.repo  

[xixi]        

name=xixi      

baseurl=file:///iso/linux /AppStream   

enabled=1      

gpgcheck=0      

[haha]          

name=xixi      

baseurl=file:///iso/linux/BaseOS

enabled=1       

gpgcheck=0         

[root@localhost /]#  yum   repoinfo  

[root@localhost /]#  yum  -y  install    ftp     

[root@localhost /]#  rpm  -q   ftp