每天一点Linux-26用RPM管理RPM包
使用YUM管理RPM包
yum优点:自动解决包的依赖关系
1.查看可用仓库
[root@ecs-ea9d ~]# yum clean all //清空缓存及其它文件
[root@ecs-ea9d ~]# yum makecache //重建缓存
[root@ecs-ea9d ~]# yum repolist //查询可用的仓库
2.安装
yum -y install httpd vsftpd *vnc
yum -y reinstall httpd
yum -y update httpd
yum -y update
yum -y install /root/OpenIPMI-2.0.19-11.el7.x86_64.rpm //从本地安装
yum -y install https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
yum -y groupinstall mariadb
yum -y remove httpd
yum -y groupremove mariadb
3.查询(从本地 rpm数据库 和 yum源 中查询)
yum list httpd
yum list vnc
yum list |grep vnc
yum list installed
yum info httpd
yum group list
yum grouplist
yum groupinfo mariadb
4.卸载
[root@ecs-ea9d ~]# yum -y remove mysql-server
[root@ecs-ea9d ~]# yum -y groupremove mysql-server
5.history
yum history
yum history info 4
yum history undo 4 //撤销
扩展查询:
例1: 从包名和包描述中查找带有关键字chinese的包
yum list |grep chinese
yum list |grep piny
yum search chinese
例2:查找/etc/vsftpd/vsftpd.conf属由哪个包提供?
[root@server0 ~]# yum provides /etc/vsftpd/vsftpd.conf
Loaded plugins: langpacks
vsftpd-3.0.2-9.el7.x86_64 : Very Secure Ftp Daemon
Repo : classroom_content_rhel7.0_x86_64_dvd_
Matched from:
Filename : /etc/vsftpd/vsftpd.conf
[root@server0 ~]# yum -y install vsftpd-3.0.2-9.el7.x86_64
例3:查找vsftpd.conf属由哪个包提供?
[root@server0 ~]# yum provides */vsftpd.conf
例4:查找命令gnuplot属由哪个包提供?
[root@server0 ~]# gnuplot
bash: gnuplot: command not found…
[root@server0 ~]#
[root@server0 ~]# yum provides gnuplot
Loaded plugins: langpacks
gnuplot-4.6.2-3.el7.x86_64 : A program for plotting mathematical expressions and data
Repo : classroom_content_rhel7.0_x86_64_dvd
例5:查找命令pip属由哪个包提供?
[root@server0 ~]# pip
bash: pip: command not found…
[root@server0 ~]# yum -y install pip
使用RPM工具管理RPM包
需要手动解决包的依赖关系
1.安装
rpm -ivh local_path
rpm -ivh url_path
[root@tianyun ~]# rpm -ivh dos2unix-3.1-37.el6.x86_64.rpm 套件名
[root@tianyun ~]# rpm -ivh ntfs-3g-2010.5.22-1.el6.x86_64.rpm 套件名
[root@tianyun ~]# rpm -Uvh ntfs-3g-2011.4.12-5.el6.x86_64.rpm 套件名
[root@tianyun ~]# rpm -ivh ftp://rpmfind.net/linux/atrpms/sl6-x86_64/atrpms/stable/puppet-3.2.4-3.el6.noarch.rpm
[root@tianyun ~]# rpm -ivh rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
额外选项:
–nosignature //不检验软件包的签名
–force //强制安装软件包
–nodeps //忽略依赖关系
RPM包安装信息存储到本地RPM数据库中。。。
2.查询
(从本地的rpm数据库)
[root@tianyun ~]# rpm -q ntfs-3g //查询指定包是否安装
[root@tianyun ~]# rpm -qa |grep ntfs
[root@tianyun ~]# rpm -ql ntfs-3g //查询ntfs-3g安装的文件
[root@tianyun ~]# rpm -qf /usr/bin/ntfs-3g //查询该文件属于哪个rpm包
[root@tianyun ~]# rpm -qi ntfs-3g //查询包的information
[root@tianyun ~]# rpm -qc ntfs-3g //查询某个包安装的配置文件
[root@tianyun ~]# rpm -qd vsftpd //查安装的帮助文档
(从rpm套件中查询)
扩展知识: 针对没有安装的包,直接从套件中查询
[root@tianyun ~]# rpm -e ntfs-3g
[root@tianyun ~]# rpm -qip ntfs-3g-2011.4.12-5.el6.x86_64.rpm
[root@tianyun ~]# rpm -qlp ntfs-3g-2011.4.12-5.el6.x86_64.rpm
[root@tianyun ~]# rpm -qcp ntfs-3g-2011.4.12-5.el6.x86_64.rpm
[root@tianyun ~]# rpm -qdp ntfs-3g-2011.4.12-5.el6.x86_64.rpm
3.卸载
[root@tianyun ~]# rpm -e ntfs-3g
[root@tianyun ~]# rpm -e ntfs-3g –nodeps
案例1:安装系统光盘上的rpm包
[root@tianyun ~]# mount /dev/cdrom /media
[root@tianyun ~]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sr0 3632776 3632776 0 100% /media
案例2: 使用iso镜像文件
[root@tianyun ~]# mount -o loop /home/centos7.iso /media
案例3:安装如下软件包
vsftpd
samba
nfs-utils
httpd
dhcp
postfix
mysql-server
php
lftp
dos2unix
unix2dos
tigervnc
[root@tianyun Packages]# pwd
/media/cd/Packages
[root@tianyun Packages]# rpm -ivh samba-3.0.33-3.37.el5.i386.rpm samba-common-3.0.33-3.37.el5.i386.rpm
rpm工具管理软件包总结:
- 很难解决包依赖关系
- 如果某个文件没有,很难知道它由哪个rpm包提供,例如 semanage 或 tree 命令是由哪个包提供?
rpm是从本地rmp数据库去查询
yum是从本地rmp数据库+yum数据库查询
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2924854739@qq.com
文章标题:每天一点Linux-26用RPM管理RPM包
本文作者:DROBP
发布时间:2019-09-04, 10:15:03
最后更新:2019-09-04, 10:17:58
原始链接:https://DROBP.github.io/2019/09/04/每天一点Linux-26用RPM管理RPM包/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。