Linux:RPM软件包管理以及yum软件包仓库
挂载光驱设备
RPM软件包管理
RPM软件包简介
区分软件名和软件包名
软件名:firefox
软件包名:firefox-52.7.0-1.el7.centos.x86_64.rpm
查询软件信息
查询软件(参数为软件名)
]# rpm -qa #当前系统中所有已安装的软件包
]# rpm -qa | grep firefox
]# rpm -q firefox #查看firefox是否安装
firefox-52.7.0-1.el7.centos.x86_64
]# rpm -q httpd #httpd提供web服务的软件
未安装软件包 httpd
]# rpm -q bash
bash-4.2.46-30.el7.x86_64]# rpm -qi firefox #查询软件信息(查询已安装)
]# rpm -ql firefox #查询软件安装了哪些内容(安装清单)
]# rpm -ql firefox | less
查询某个目录或文件是哪个RPM包带来的
• 查询某个目录或文件是哪个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 /etc/passwd
[root@localhost ~]# rpm -qf /usr/bin/firefox
which查询命令对应的程序文件位置
查询软件包(参数为软件包名)
查询软件包(参数为软件包名)
]# rpm -q vsftpd #查询vsftpd软件是否安装
未安装软件包 vsftpd
]# ls /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm查询软件包的安装清单:
]# rpm -qpl /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
查询软件包信息
]# rpm -qpi /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
注:使用ql查询已安装的软件,参数是软件名;qpl的参数是软件包名,用于查询软件包的信息。
导入红帽签名信息
Yum软件包管理
解决依赖关系
解决依赖关系
– 先安装/卸载要求的包
– 如果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软件包仓库
作用:自动解决依赖关系安装软件
服务:自动解决依赖关系安装软件
yum机制概述
服务端(本机): 1.众多的软件 2.仓库数据文件(repodata) 3.FTP协议 或 http协议
本地Yum仓库:服务端需要有光盘内容即可客户端(本机):指定服务端位置
– 仓库配置:/etc/yum.repos.d/*.repo
– 错误的文件会影响正确的文件
服务端(光盘挂载即可)
客户端:配置yum仓库信息
有一个.repo文件写错,会影响其他正确的.repo文件
客户端文件配置内容:
– [源名称] :自定义名称,具有唯一性
– name:仓库的描述信息
– baseurl:指定YUM服务端的位置
– enabled:是否启用
– gpgcheck:是否验证红帽签名
– gpgkey:用于RPM软件包验证的密钥文件完整示例:
]# vim /etc/yum.repos.d/mydvd.repo
[test01]
name=test00000001
baseurl=file:///mnt
enabled=1
gpgcheck=1
gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-7]# yum repolist #列出仓库信息
常见错误:
1.没有挂载光驱设备 ls /mnt #查看挂载点是否有光盘内容
2.错误的文件会影响 ls /etc/yum.repos.d/
3.写错了 总结:本地Yum仓库构建方法(自己为自己提供服务)
1.服务端:显示光盘的内容,挂载光驱设备
2.客户端:书写客户端配置文件,指定服务端位置
3.执行流程: yum命令--->/etc/yum.repos.d/*.repo--->baseurl=file:///mnt
yum使用
[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
安装软件
查看版本
示例:安装xorg-x11-apps
卸载软件
查询
安装软件和卸载软件使用yum,查询软件使用rpm
[root@localhost ~]# yum list ftp #查询仓库是否有ftp软件
可安装的软件包 #表示当前系统没有安装该软件
ftp.x86_64 0.17-67.el7 nsd2010[root@localhost ~]# yum list httpd
[root@localhost ~]# yum search ftp #包含ftp就匹配仓库中哪个软件包产生该文件:
]# yum provides /usr/bin/hostname
]# yum provides /etc/passwd
覆盖安装
]# which hostname
/usr/bin/hostname
]# rm -rf /usr/bin/hostname
]# hostname
bash: hostname: 未找到命令...]# yum provides /usr/bin/hostname
]# yum -y reinstall hostname #重新安装hostname软件
]# ls /usr/bin/hostname
]# hostname
清空缓存
[root@localhost ~]# yum clean all
[root@localhost ~]# yum repolist
[root@localhost ~]# yum repolist