1. rpm包的管理
介绍:
一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中,它生成具有RPM扩展名的文件,RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,类似windows的setup.exe,这一文件格式名称虽然打上了RedHat的标志,但理念是通用的
Linux的分发版本都有采用(suse,redhat, centos 等等),可以算是公认的行业标准了
2. rpm包的简单查询指令:
查询已安装的rpm列表 rpm –qa | grep xx(q表示query,a表示查询所有,grep表示过滤)
例如:查询Linux中是否安装有firefox
rpm -qa | grep firefox
rpm包名基本格式:
一个rpm包名:firefox-45.0.1-1.el6.centos.x86_64.rpm
名称:firefox,版本号:45.0.1-1,适用操作系统: el6.centos.x86_64 表示centos6.x的64位系统
如果是i686、i386表示32位系统,noarch表示通用
rpm包的其它查询指令:
rpm -qa:查询所安装的所有rpm软件包
rpm -qa | more :查询所安装的所有rpm软件包 并且分页显示
rpm -qa | grep X [rpm -qa | grep firefox ] :查询是否安装有某个软件(火狐的软件)
rpm -q 软件包名 :查询软件包是否安装 rpm -q firefox
rpm -qi 软件包名 :查询软件包信息
rpm -ql 软件包名 :查询软件包中的文件的安装位置
rpm -qf 文件全路径名:查询文件所属的软件包 ,例如:rpm -qf /etc/passwd
3. 卸载rpm包:
基本语法 rpm -e RPM包的名称
应用案例 :删除firefox 软件包
rpm -e firefox
细节讨论:
(1) 如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息
如: $ rpm -e foo removing these packages would break dependencies:foo is needed by bar-1.0-1
(2) 如果我们就是要删除 foo这个rpm 包,可以增加参数 –nodeps ,就可以强制删除,但是一般不推荐这样做,因为依赖于该软件包的程序可能无法运行 如:$ rpm -e –nodeps foo
4. 安装rpm包
基本语法: rpm -ivh RPM包全路径名称
参数说明: i=install 安装, v=verbose 提示, h=hash 进度条。
应用实例: 安装firefox浏览器
① 先要找到安装包,需要先挂载上我们之前安装CentOS的iso文件,点击虚拟机设置使用ios文件,那么在系统中会多出一个光驱,打开命令行终端进入到/media/CentOS_6.8_final/package/
(所有的rpm包都在这里)
点击然后拷贝到/opt目录下
cp firefox( rpm包的文件名) 需要拷贝到的目录 (可以输入rpm包名字的前几个字母然后使用Tab键补全)
② 安装
切换到/opt目录下找到刚才拷贝的文件然后使用: rpm ivh + 火狐rpm软件安装包的名字就可以了
如何彻底卸载Linux系统下安装的rpm包?现以mySQL为例进行介绍:
一、使用以下命令查看mysql安装情况
rpm -qa | grep -i mysql
可以看到以下结果:
根据结果可以看出以前安装了:
MySQL-server-5.6.25-1.e16.x86_64
mySQL-client-5.6.25-1.e16.x86_64
二、停止运行MySQL,删除运行的mysql
停止运行mysql命令:service mysql stop
删除命令:rpm -e 文件名
如果提示依赖包错误,可以尝试以下命令删除:
rpm -e 文件名 –nodeps
如果提示错误:error: %preun(xxxxxx) scriptlet failed, exit status 1
则用以下命令尝试:
rpm -e –noscripts 文件名(强制删除,不建议使用)
三 、查找之前老版本mysql,并且删除老版本mysql的文件和库
命令:free / -name mysql
查看结果如下:
删除查找到的结果:
注意:卸载mysql后,配置文件不会删除,所以在这里还要删除配置文件:
命令:rm -rf /etc/my.cnf
四、查看查处后结果
输入命令:rpm -qa | grep -i mysql
没有查找到文件说明删除成功。